diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 0000000..2190055
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,22 @@
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+version: 2
+updates:
+  - package-ecosystem: "github-actions" # Necessary to update action hashes	
+    directory: "/"
+    schedule:
+      interval: "weekly"
+    # Allow up to 3 opened pull requests for github-actions versions
+    open-pull-requests-limit: 3
diff --git a/.github/workflows/continuous_deployment.yml b/.github/workflows/continuous_deployment.yml
index 6425a04..4c24a17 100644
--- a/.github/workflows/continuous_deployment.yml
+++ b/.github/workflows/continuous_deployment.yml
@@ -1,9 +1,3 @@
-# NOTE: This workflow was ported from Travis.
-# Travis was using Ubuntu 14.04. Ubuntu 14.04 is not supportted by GitHub workflows. Ubuntu 20.04 is recommended.
-# Travis was using Clang 3.6. The earliest version support by Ubuntu 20.04 is Clang 6.0.
-# Travis was caching the clang package. APT package caching is not natively supported by GitHub actions/cache.
-# Travis was using Mac OS X 10.13.6 / Xcode 9.4.1 / LLVM 9.1.0
-
 # NOTE: The following documentation may be useful to maintainers of this workflow.
 # Github actions: https://docs.github.com/en/actions
 # Github github-script action: https://github.com/actions/github-script
@@ -47,29 +41,16 @@
                 compiler: [{cc: clang, cxx: clang++}, {cc: gcc, cxx: g++}]
                 cmake_build_type: [Debug, Release]
         steps:
-            - uses: actions/checkout@v3
-            - uses: actions/setup-python@v4
+            - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+            - uses: lukka/get-cmake@23a189c2ed38ec264f5026ce2303e5b7a664345c # v3.28.2
+            - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0
               with:
                   python-version: '3.7'
             - name: Install Ubuntu Package Dependencies
               run: |
                   sudo apt-get -qq update
                   sudo apt-get install -y clang-6.0
-            - name: Install GoogleTest
-              run: |
-                  # check out pre-breakage version of googletest; can be deleted when
-                  # issue 3128 is fixed
-                  # git clone --depth=1 https://github.com/google/googletest.git External/googletest
-                  mkdir -p External/googletest
-                  cd External/googletest
-                  git init
-                  git remote add origin https://github.com/google/googletest.git
-                  git fetch --depth 1 origin 0c400f67fcf305869c5fb113dd296eca266c9725
-                  git reset --hard FETCH_HEAD
-                  cd ../..
-            - name: Update Glslang Sources
-              run: |
-                  ./update_glslang_sources.py
+            - run: ./update_glslang_sources.py
             - name: Build
               env:
                   CC: ${{matrix.compiler.cc}}
@@ -90,15 +71,14 @@
               run: |
                   cd build/install
                   zip ${ARCHIVE} \
+                      bin/glslang \
                       bin/glslangValidator \
                       include/glslang/* \
                       include/glslang/**/* \
                       lib/libGenericCodeGen.a \
                       lib/libglslang.a \
                       lib/libglslang-default-resource-limits.a \
-                      lib/libHLSL.a \
                       lib/libMachineIndependent.a \
-                      lib/libOGLCompiler.a \
                       lib/libOSDependent.a \
                       lib/libSPIRV.a \
                       lib/libSPVRemapper.a \
@@ -108,7 +88,7 @@
               if: ${{ matrix.compiler.cc == 'clang' }}
               env:
                   ARCHIVE: glslang-main-${{matrix.os.family}}-${{matrix.cmake_build_type}}.zip
-              uses: actions/github-script@v6
+              uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
               with:
                   script: |
                       const script = require('.github/workflows/deploy.js')
@@ -125,25 +105,12 @@
                 compiler: [{cc: clang, cxx: clang++}]
                 cmake_build_type: [Debug, Release]
         steps:
-            - uses: actions/checkout@v3
-            - uses: actions/setup-python@v4
+            - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+            - uses: lukka/get-cmake@23a189c2ed38ec264f5026ce2303e5b7a664345c # v3.28.2
+            - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0
               with:
                   python-version: '3.7'
-            - name: Install GoogleTest
-              run: |
-                  # check out pre-breakage version of googletest; can be deleted when
-                  # issue 3128 is fixed
-                  # git clone --depth=1 https://github.com/google/googletest.git External/googletest
-                  mkdir -p External/googletest
-                  cd External/googletest
-                  git init
-                  git remote add origin https://github.com/google/googletest.git
-                  git fetch --depth 1 origin 0c400f67fcf305869c5fb113dd296eca266c9725
-                  git reset --hard FETCH_HEAD
-                  cd ../..
-            - name: Update Glslang Sources
-              run: |
-                  ./update_glslang_sources.py
+            - run: ./update_glslang_sources.py
             - name: Build
               env:
                   CC: ${{matrix.compiler.cc}}
@@ -163,15 +130,14 @@
               run: |
                   cd build/install
                   zip ${ARCHIVE} \
+                      bin/glslang \
                       bin/glslangValidator \
                       include/glslang/* \
                       include/glslang/**/* \
                       lib/libGenericCodeGen.a \
                       lib/libglslang.a \
                       lib/libglslang-default-resource-limits.a \
-                      lib/libHLSL.a \
                       lib/libMachineIndependent.a \
-                      lib/libOGLCompiler.a \
                       lib/libOSDependent.a \
                       lib/libSPIRV.a \
                       lib/libSPVRemapper.a \
@@ -180,7 +146,7 @@
             - name: Deploy
               env:
                   ARCHIVE: glslang-main-${{matrix.os.family}}-${{matrix.cmake_build_type}}.zip
-              uses: actions/github-script@v6
+              uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
               with:
                   script: |
                       const script = require('.github/workflows/deploy.js')
@@ -196,25 +162,12 @@
                 os: [{genus: windows-2019, family: windows}]
                 cmake_build_type: [Debug, Release]
         steps:
-            - uses: actions/checkout@v3
-            - uses: actions/setup-python@v4
+            - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+            - uses: lukka/get-cmake@23a189c2ed38ec264f5026ce2303e5b7a664345c # v3.28.2
+            - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0
               with:
                   python-version: '3.7'
-            - name: Install GoogleTest
-              run: |
-                  # check out pre-breakage version of googletest; can be deleted when
-                  # issue 3128 is fixed
-                  # git clone --depth=1 https://github.com/google/googletest.git External/googletest
-                  mkdir -p External/googletest
-                  cd External/googletest
-                  git init
-                  git remote add origin https://github.com/google/googletest.git
-                  git fetch --depth 1 origin 0c400f67fcf305869c5fb113dd296eca266c9725
-                  git reset --hard FETCH_HEAD
-                  cd ../..
-            - name: Update Glslang Sources
-              run: |
-                  python update_glslang_sources.py
+            - run: python update_glslang_sources.py
             - name: Build
               run: |
                   cmake -S. -Bbuild -G "Visual Studio 16 2019" -A x64 -DCMAKE_INSTALL_PREFIX="$PWD/build/install"
@@ -231,15 +184,14 @@
               run: |
                   cd build/install
                   7z a ${{env.ARCHIVE}} `
+                      bin/glslang.exe `
                       bin/glslangValidator.exe `
                       bin/spirv-remap.exe `
                       include/glslang/* `
                       lib/GenericCodeGend.lib `
                       lib/glslangd.lib `
                       lib/glslang-default-resource-limitsd.lib `
-                      lib/HLSLd.lib `
                       lib/MachineIndependentd.lib `
-                      lib/OGLCompilerd.lib `
                       lib/OSDependentd.lib `
                       lib/SPIRVd.lib `
                       lib/SPVRemapperd.lib `
@@ -252,15 +204,14 @@
               run: |
                   cd build/install
                   7z a ${{env.ARCHIVE}} `
+                      bin/glslang.exe `
                       bin/glslangValidator.exe `
                       bin/spirv-remap.exe `
                       include/glslang/* `
                       lib/GenericCodeGen.lib `
                       lib/glslang.lib `
                       lib/glslang-default-resource-limits.lib `
-                      lib/HLSL.lib `
                       lib/MachineIndependent.lib `
-                      lib/OGLCompiler.lib `
                       lib/OSDependent.lib `
                       lib/SPIRV.lib `
                       lib/SPVRemapper.lib `
@@ -269,7 +220,7 @@
             - name: Deploy
               env:
                   ARCHIVE: glslang-master-${{matrix.os.family}}-${{matrix.cmake_build_type}}.zip
-              uses: actions/github-script@v6
+              uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
               with:
                   script: |
                       const script = require('.github/workflows/deploy.js')
diff --git a/.github/workflows/continuous_integration.yml b/.github/workflows/continuous_integration.yml
index 6ca8607..d0343b4 100644
--- a/.github/workflows/continuous_integration.yml
+++ b/.github/workflows/continuous_integration.yml
@@ -1,199 +1,239 @@
-# NOTE: This workflow was ported from Travis.
-# Travis was using Ubuntu 14.04. Ubuntu 14.04 is not supportted by GitHub workflows. Ubuntu 20.04 is recommended.
-# Travis was using Clang 3.6. The earliest version support by Ubuntu 20.04 is Clang 6.0.
-# Travis was caching the clang package. APT package caching is not natively supported by GitHub actions/cache.
-# Travis was using Mac OS X 10.13.6 / Xcode 9.4.1 / LLVM 9.1.0
-#
 name: Continuous Integration
 
 on:
-    workflow_dispatch:
-    pull_request:
-        branches:
-            - main
+  workflow_dispatch:
+  pull_request:
+    branches:
+      - main
 
 permissions: read-all
 
 jobs:
-    linux:
-        runs-on: ${{matrix.os}}
-        strategy:
-            fail-fast: false
-            matrix:
-                os: [ubuntu-20.04]
-                compiler: [{cc: clang, cxx: clang++}, {cc: gcc, cxx: g++}]
-                cmake_build_type: [Debug, Release]
-        steps:
-            - uses: actions/checkout@v2
-            - uses: actions/setup-python@v2
-              with:
-                  python-version: '3.7'
-            - name: Install Ubuntu Package Dependencies
-              run: |
-                  sudo apt-get -qq update
-                  sudo apt-get install -y clang-6.0
-            - name: Install GoogleTest
-              run: |
-                  # check out pre-breakage version of googletest; can be deleted when
-                  # issue 3128 is fixed
-                  # git clone --depth=1 https://github.com/google/googletest.git External/googletest
-                  mkdir -p External/googletest
-                  cd External/googletest
-                  git init
-                  git remote add origin https://github.com/google/googletest.git
-                  git fetch --depth 1 origin 0c400f67fcf305869c5fb113dd296eca266c9725
-                  git reset --hard FETCH_HEAD
-                  cd ../..
-            - name: Update Glslang Sources
-              run: |
-                  ./update_glslang_sources.py
-            - name: Build
-              env:
-                  CC: ${{matrix.compiler.cc}}
-                  CXX: ${{matrix.compiler.cxx}}
-              run: |
-                  mkdir build && cd build
-                  cmake -DCMAKE_BUILD_TYPE=${{matrix.cmake_build_type}} -DCMAKE_INSTALL_PREFIX=`pwd`/install ..
-                  make -j4 install
-            - name: Test
-              run: |
-                  cd build
-                  ctest --output-on-failure &&
-                  cd ../Test && ./runtests
+  linux:
+    runs-on: ubuntu-22.04
+    strategy:
+      fail-fast: false
+      matrix:
+        compiler: [{cc: clang, cxx: clang++}, {cc: gcc, cxx: g++}]
+        cmake_build_type: [Debug, Release]
+    steps:
+      - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+      - uses: lukka/get-cmake@23a189c2ed38ec264f5026ce2303e5b7a664345c # v3.28.2
+      - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0
+        with:
+          python-version: '3.7'
+      - name: Setup ccache
+        uses: hendrikmuhs/ccache-action@faf867a11c028c0b483fb2ae72b6fc8f7d842714 # v1.2.12
+        with:
+          key: ubuntu-22-${{ matrix.cmake_build_type }}-${{ matrix.compiler.cc }}-${{matrix.compiler.cxx}}
+      - run: ./update_glslang_sources.py
+      - name: Configure
+        run: cmake -S . -B build -D CMAKE_BUILD_TYPE=${{ matrix.cmake_build_type }} -DBUILD_WERROR=ON -D GLSLANG_TESTS=ON
+        env:
+          CC: ${{matrix.compiler.cc}}
+          CXX: ${{matrix.compiler.cxx}}
+          CMAKE_GENERATOR: Ninja
+          CMAKE_C_COMPILER_LAUNCHER: ccache
+          CMAKE_CXX_COMPILER_LAUNCHER: ccache
+      - name: Build
+        run: cmake --build build
+      - name: Install
+        run: cmake --install build --prefix build/install
+      - name: Test
+        run: ctest --output-on-failure --test-dir build
+      - name: Test (standalone)
+        run: cd Test && ./runtests
 
-    macos:
-        runs-on: ${{matrix.os}}
-        strategy:
-            fail-fast: false
-            matrix:
-                os: [macos-11, macos-12]
-                compiler: [{cc: clang, cxx: clang++}, {cc: gcc, cxx: g++}]
-                cmake_build_type: [Debug, Release]
-        steps:
-            - uses: actions/checkout@v3
-            - uses: actions/setup-python@v3
-              with:
-                  python-version: '3.7'
-            - uses: lukka/get-cmake@latest
-            - name: Install GoogleTest
-              run: |
-                  # check out pre-breakage version of googletest; can be deleted when
-                  # issue 3128 is fixed
-                  # git clone --depth=1 https://github.com/google/googletest.git External/googletest
-                  mkdir -p External/googletest
-                  cd External/googletest
-                  git init
-                  git remote add origin https://github.com/google/googletest.git
-                  git fetch --depth 1 origin 0c400f67fcf305869c5fb113dd296eca266c9725
-                  git reset --hard FETCH_HEAD
-                  cd ../..
-            - name: Update Glslang Sources
-              run: ./update_glslang_sources.py
-            - name: Configure
-              run: cmake -S . -B build -D CMAKE_BUILD_TYPE=${{matrix.cmake_build_type}} -G "Ninja"
-              env:
-                  CC: ${{matrix.compiler.cc}}
-                  CXX: ${{matrix.compiler.cxx}}
-            - name: Build
-              run: cmake --build build
-            - name: Install
-              run: cmake --install build --prefix build/install
-            - name: Test
-              run: |
-                  cd build
-                  ctest --output-on-failure &&
-                  cd ../Test && ./runtests
+  linux-asan:
+    runs-on: ubuntu-22.04
+    strategy:
+      fail-fast: false
+      matrix:
+        compiler: [{cc: gcc, cxx: g++}]
+        cmake_build_type: [Debug]
+        flags: ['-fsanitize=address', '-fsanitize=thread']
+    steps:
+      - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+      - uses: lukka/get-cmake@23a189c2ed38ec264f5026ce2303e5b7a664345c # v3.28.2
+      - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0
+        with:
+          python-version: '3.7'
+      - name: Setup ccache
+        uses: hendrikmuhs/ccache-action@faf867a11c028c0b483fb2ae72b6fc8f7d842714 # v1.2.12
+        with:
+          key: ubuntu-22-${{ matrix.cmake_build_type }}-${{ matrix.compiler.cc }}-${{matrix.compiler.cxx}}-${{matrix.flags}}
+      - run: ./update_glslang_sources.py
+      - name: Configure
+        run: cmake -S . -B build -D CMAKE_BUILD_TYPE=${{ matrix.cmake_build_type }} -D GLSLANG_TESTS=ON
+        env:
+          CC: ${{matrix.compiler.cc}}
+          CXX: ${{matrix.compiler.cxx}}
+          CMAKE_GENERATOR: Ninja
+          CMAKE_C_COMPILER_LAUNCHER: ccache
+          CMAKE_CXX_COMPILER_LAUNCHER: ccache
+          CFLAGS: ${{matrix.flags}}
+          CXXFLAGS: ${{matrix.flags}}
+          LDFLAGS: ${{matrix.flags}}
+      - name: Build
+        run: cmake --build build
+      - name: Install
+        run: cmake --install build --prefix build/install
+      - name: Test
+        run: ctest --output-on-failure --test-dir build
+      - name: Test (standalone)
+        run: cd Test && ./runtests
 
-    windows:
-        runs-on: ${{matrix.os.genus}}
-        permissions:
-            contents: write
-        strategy:
-            fail-fast: false
-            matrix:
-                os: [{genus: windows-2019, family: windows}]
-                cmake_build_type: [Debug, Release]
-        steps:
-            - uses: actions/checkout@v3
-            - uses: actions/setup-python@v4
-              with:
-                  python-version: '3.7'
-            - name: Install GoogleTest
-              run: |
-                  # check out pre-breakage version of googletest; can be deleted when
-                  # issue 3128 is fixed
-                  # git clone --depth=1 https://github.com/google/googletest.git External/googletest
-                  mkdir -p External/googletest
-                  cd External/googletest
-                  git init
-                  git remote add origin https://github.com/google/googletest.git
-                  git fetch --depth 1 origin 0c400f67fcf305869c5fb113dd296eca266c9725
-                  git reset --hard FETCH_HEAD
-                  cd ../..
-            - name: Update Glslang Sources
-              run: |
-                  python update_glslang_sources.py
-            - name: Build
-              run: |
-                  cmake -S. -Bbuild -G "Visual Studio 16 2019" -A x64 -DCMAKE_INSTALL_PREFIX="$PWD/build/install"
-                  cmake --build build --config ${{matrix.cmake_build_type}} --target install
-            - name: Test
-              run: |
-                  cd build
-                  ctest -C ${{matrix.cmake_build_type}} --output-on-failure
-                  cd ../Test && bash runtests
+  # Ensure we can compile/run on an older distro
+  linux_min:
+    name: Linux Backcompat
+    runs-on: ubuntu-20.04
+    steps:
+      - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+      - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0
+        with:
+          python-version: '3.7'
+      - uses: lukka/get-cmake@23a189c2ed38ec264f5026ce2303e5b7a664345c # v3.28.2
+        with:
+          cmakeVersion: 3.17.2
+      - name: Setup ccache
+        uses: hendrikmuhs/ccache-action@faf867a11c028c0b483fb2ae72b6fc8f7d842714 # v1.2.12
+        with:
+          key: linux_backcompat
+      - run: ./update_glslang_sources.py
+      - name: Configure
+        run: cmake -S . -B build -D CMAKE_BUILD_TYPE=Release -D GLSLANG_TESTS=ON
+        env:
+          CMAKE_C_COMPILER_LAUNCHER: ccache
+          CMAKE_CXX_COMPILER_LAUNCHER: ccache
+      - name: Build
+        run: cmake --build build
+      - name: Install
+        run: cmake --install build --prefix build/install
+      - name: Test
+        run: ctest --output-on-failure --test-dir build
+      - name: Test (standalone)
+        run: cd Test && ./runtests
 
-    android:
-        runs-on: ${{matrix.os}}
-        strategy:
-            fail-fast: false
-            matrix:
-                os: [ubuntu-20.04]
-                compiler: [{cc: clang, cxx: clang++}]
-                cmake_build_type: [Release]
-        steps:
-            - uses: actions/checkout@v2
-            - uses: actions/setup-python@v2
-              with:
-                  python-version: '3.7'
-            - name: Install Ubuntu Package Dependencies
-              if: ${{matrix.os == 'ubuntu-20.04'}}
-              run: |
-                  sudo apt-get -qq update
-                  sudo apt-get install -y clang-6.0
-            - name: Install Android NDK
-              run: |
-                  export ANDROID_NDK=$HOME/android-ndk
-                  git init $ANDROID_NDK
-                  pushd $ANDROID_NDK
-                  git remote add dneto0 https://github.com/dneto0/android-ndk.git
-                  git fetch --depth=1 dneto0 r17b-strip
-                  git checkout FETCH_HEAD
-                  popd
-            - name: Install GoogleTest
-              run: |
-                  # check out pre-breakage version of googletest; can be deleted when
-                  # issue 3128 is fixed
-                  # git clone --depth=1 https://github.com/google/googletest.git External/googletest
-                  mkdir -p External/googletest
-                  cd External/googletest
-                  git init
-                  git remote add origin https://github.com/google/googletest.git
-                  git fetch --depth 1 origin 0c400f67fcf305869c5fb113dd296eca266c9725
-                  git reset --hard FETCH_HEAD
-                  cd ../..
-            - name: Update Glslang Sources
-              run: |
-                  ./update_glslang_sources.py
-            - name: Build
-              env:
-                  CC: ${{matrix.compiler.cc}}
-                  CXX: ${{matrix.compiler.cxx}}
-              run: |
-                  export ANDROID_NDK=$HOME/android-ndk
-                  export TOOLCHAIN_PATH=$ANDROID_NDK/build/cmake/android.toolchain.cmake
-                  echo $ANDROID_NDK
-                  echo $TOOLCHAIN_PATH
-                  mkdir build && cd build
-                  cmake -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_PATH} -DANDROID_NATIVE_API_LEVEL=android-14 -DCMAKE_BUILD_TYPE=${{matrix.cmake_build_type}} -DANDROID_ABI="armeabi-v7a with NEON" -DBUILD_TESTING=OFF ..
-                  make -j4
+  macos:
+    runs-on: ${{matrix.os}}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [macos-12, macos-13]
+        compiler: [{cc: clang, cxx: clang++}, {cc: gcc, cxx: g++}]
+        cmake_build_type: [Debug, Release]
+    steps:
+      - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+      - uses: lukka/get-cmake@23a189c2ed38ec264f5026ce2303e5b7a664345c # v3.28.2
+      - run: ./update_glslang_sources.py
+      - run: cmake -S . -B build -D CMAKE_BUILD_TYPE=${{matrix.cmake_build_type}} -G Ninja -DBUILD_WERROR=ON -D GLSLANG_TESTS=ON
+        env:
+          CC: ${{matrix.compiler.cc}}
+          CXX: ${{matrix.compiler.cxx}}
+      - run: cmake --build build
+      - run: cmake --install build --prefix build/install
+      - run: ctest --output-on-failure --test-dir build
+      - name: Test Script (standalone)
+        run: ./runtests
+        working-directory: Test
+
+  windows:
+    runs-on: ${{matrix.os.genus}}
+    permissions:
+      contents: write
+    strategy:
+      fail-fast: false
+      matrix:
+          os: [{genus: windows-2019, family: windows}]
+          cmake_build_type: [Debug, Release]
+    steps:
+      - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+      - uses: lukka/get-cmake@23a189c2ed38ec264f5026ce2303e5b7a664345c # v3.28.2
+      - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0
+        with:
+          python-version: '3.7'
+      - run: python update_glslang_sources.py
+      - name: Build
+        run: |
+          cmake -S. -Bbuild -G "Visual Studio 16 2019" -A x64 -DCMAKE_INSTALL_PREFIX="$PWD/build/install" -DBUILD_WERROR=ON -D GLSLANG_TESTS=ON
+          cmake --build build --config ${{matrix.cmake_build_type}} --target install
+      - name: Test
+        run: ctest -C ${{matrix.cmake_build_type}} --output-on-failure --test-dir build
+      - name: Test (standalone)
+        run: bash -c 'cd ./Test && ./runtests'
+
+  iOS:
+    runs-on: macos-13
+    steps:
+      - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+      - uses: lukka/get-cmake@23a189c2ed38ec264f5026ce2303e5b7a664345c # v3.28.2
+      - name: Setup ccache
+        uses: hendrikmuhs/ccache-action@faf867a11c028c0b483fb2ae72b6fc8f7d842714 # v1.2.12
+        with:
+          key: IOS
+      - run: ./update_glslang_sources.py
+      # NOTE: The MacOS SDK ships universal binaries. CI should reflect this.
+      - name: Configure Universal Binary for iOS
+        run: |
+          cmake -S . -B build \
+          -D CMAKE_BUILD_TYPE=Debug \
+          -D CMAKE_SYSTEM_NAME=iOS \
+          "-D CMAKE_OSX_ARCHITECTURES=arm64;x86_64" \
+          -G Ninja
+        env:
+          CMAKE_C_COMPILER_LAUNCHER: ccache
+          CMAKE_CXX_COMPILER_LAUNCHER: ccache
+      - run: cmake --build build
+      - run: cmake --install build --prefix /tmp
+
+  android:
+    runs-on: ubuntu-22.04
+    strategy:
+      matrix:
+        # Android NDK currently offers 2 different toolchains.
+        # Test both to ensure we are compatible with either approach.
+        LEGACY: [ON, OFF]
+    steps:
+      - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+      - uses: lukka/get-cmake@23a189c2ed38ec264f5026ce2303e5b7a664345c # v3.28.2
+      - name: Setup ccache
+        uses: hendrikmuhs/ccache-action@faf867a11c028c0b483fb2ae72b6fc8f7d842714 # v1.2.12
+        with:
+          key: android-${{ matrix.LEGACY }}
+      - run: ./update_glslang_sources.py
+      - name: Configure for Android
+        run: |
+          cmake -S . -B build/ --toolchain $ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake \
+          -D CMAKE_BUILD_TYPE=Release \
+          -D ANDROID_ABI=armeabi-v7a \
+          -D ANDROID_USE_LEGACY_TOOLCHAIN_FILE=${{ matrix.LEGACY }} \
+          -G Ninja
+        env:
+          CMAKE_C_COMPILER_LAUNCHER: ccache
+          CMAKE_CXX_COMPILER_LAUNCHER: ccache
+      - run: cmake --build build/
+      - run: cmake --install build/ --prefix /tmp
+
+  emscripten:
+    runs-on: ubuntu-22.04
+    steps:
+      - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+      - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0
+        with:
+          python-version: '3.7'
+      - uses: lukka/get-cmake@23a189c2ed38ec264f5026ce2303e5b7a664345c # v3.28.2
+      - name: Setup ccache
+        uses: hendrikmuhs/ccache-action@faf867a11c028c0b483fb2ae72b6fc8f7d842714 # v1.2.12
+        with:
+          key: ubuntu-emscripten
+      - uses: mymindstorm/setup-emsdk@6ab9eb1bda2574c4ddb79809fc9247783eaf9021 # v14
+      - name: Update Glslang Sources
+        run: ./update_glslang_sources.py
+      - name: Configure
+        run: emcmake cmake -GNinja -Bbuild/web -DCMAKE_BUILD_TYPE=Release -DENABLE_GLSLANG_JS=ON -DENABLE_OPT=OFF
+        env:
+          CMAKE_GENERATOR: Ninja
+          CMAKE_C_COMPILER_LAUNCHER: ccache
+          CMAKE_CXX_COMPILER_LAUNCHER: ccache
+      - name: Build
+        run: cmake --build build/web
diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml
new file mode 100644
index 0000000..a324919
--- /dev/null
+++ b/.github/workflows/scorecard.yml
@@ -0,0 +1,53 @@
+name: Scorecard supply-chain security
+on:
+  # For Branch-Protection check. Only the default branch is supported. See
+  # https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection
+  branch_protection_rule:
+  # To guarantee Maintained check is occasionally updated. See
+  # https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained
+  schedule:
+    - cron: '36 17 * * 5'
+  push:
+    branches: [ "main" ]
+
+# Declare default permissions as read only.
+permissions: read-all
+
+jobs:
+  analysis:
+    name: Scorecard analysis
+    runs-on: ubuntu-latest
+    permissions:
+      security-events: write # to upload the results to code-scanning dashboard
+      id-token: write # to publish results and get a badge
+
+    steps:
+      - name: "Checkout code"
+        uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+        with:
+          persist-credentials: false
+
+      - name: "Run analysis"
+        uses: ossf/scorecard-action@0864cf19026789058feabb7e87baa5f140aac736 # v2.3.1
+        with:
+          results_file: results.sarif
+          results_format: sarif
+          # To enable Branch-Protection uncomment the `repo_token` line below
+          # To create the Fine-grained PAT, follow the steps in https://github.com/ossf/scorecard-action#authentication-with-fine-grained-pat-optional.
+          # repo_token: ${{ secrets.SCORECARD_TOKEN }}
+          publish_results: true # allows the repo to include the Scorecard badge
+
+      # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
+      # format to the repository Actions tab.
+      - name: "Upload artifact"
+        uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0
+        with:
+          name: SARIF file
+          path: results.sarif
+          retention-days: 5
+
+      # Upload the results to GitHub's code scanning dashboard.
+      - name: "Upload to code-scanning"
+        uses: github/codeql-action/upload-sarif@e8893c57a1f3a2b659b6b55564fdfdbbd2982911 # v3.24.0
+        with:
+          sarif_file: results.sarif
diff --git a/.gitignore b/.gitignore
index 333fb76..732b345 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,6 +11,7 @@
 External/googletest
 External/spirv-tools
 out/
+CMakeUserPresets.json
 
 # GN generated files
 .cipd/
diff --git a/Android.bp b/Android.bp
index 9452df6..f41468b 100644
--- a/Android.bp
+++ b/Android.bp
@@ -5,7 +5,6 @@
 //
 // dEQP depends on:
 // - glslang
-//   - OGLCompiler
 //   - OSDependent
 //   - MachineIndependent
 //     - OGLCompiler
@@ -101,19 +100,6 @@
 }
 
 cc_library_static {
-    name: "deqp_glslang_OGLCompiler",
-    defaults: [
-        "deqp_glslang_defaults",
-    ],
-    export_include_dirs: [
-        "OGLCompilersDLL",
-    ],
-    srcs: [
-        "OGLCompilersDLL/InitializeDll.cpp",
-    ],
-}
-
-cc_library_static {
     name: "deqp_glslang_MachineIndependent",
     defaults: [
         "deqp_glslang_defaults",
@@ -163,7 +149,6 @@
         "glslang/HLSL/hlslParseables.cpp",
     ],
     static_libs: [
-        "deqp_glslang_OGLCompiler",
         "deqp_glslang_OSDependent",
         "deqp_glslang_GenericCodeGen",
     ],
@@ -181,7 +166,6 @@
         "glslang/CInterface/glslang_c_interface.cpp"
     ],
     static_libs: [
-        "deqp_glslang_OGLCompiler",
         "deqp_glslang_OSDependent",
         "deqp_glslang_MachineIndependent",
     ],
diff --git a/BUILD.gn b/BUILD.gn
index 85a4bed..6384de0 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -117,13 +117,12 @@
     }
 
     sources = [
-      "OGLCompilersDLL/InitializeDll.cpp",
-      "OGLCompilersDLL/InitializeDll.h",
       "SPIRV/GLSL.ext.AMD.h",
       "SPIRV/GLSL.ext.EXT.h",
       "SPIRV/GLSL.ext.KHR.h",
       "SPIRV/GLSL.ext.NV.h",
       "SPIRV/GLSL.ext.ARM.h",
+      "SPIRV/GLSL.ext.QCOM.h",
       "SPIRV/GLSL.std.450.h",
       "SPIRV/GlslangToSpv.cpp",
       "SPIRV/GlslangToSpv.h",
diff --git a/CHANGES.md b/CHANGES.md
index 4372a3c..71db4e8 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -3,6 +3,71 @@
 All notable changes to this project will be documented in this file.
 This project adheres to [Semantic Versioning](https://semver.org/).
 
+## 14.0.0 2023-12-21
+
+### Breaking changes
+* The legacy libraries named HLSL and OGLCompiler have been removed. To avoid future disruptions, please use cmake's find_package mechanism rather than hardcoding library dependencies.
+* Only the headers that are part of glslang's public interface are included in the install target.
+* Remove OVERRIDE_MSVCCRT cmake option.
+
+### Other changes
+* Fix spv_options initialization
+* Fix line number for OpDebugFunction and OpDebugScope for function
+* Fix SPV_KHR_cooperative_matrix enumerants
+* Fix nullptr crash
+* Fix GL_ARB_shader_storage_buffer_object version
+* Fix interpolant ES error
+* Generate DebugValue for constant arguments
+* Overflow/underflow out-of-range floats to infinity/0.0 respectively
+* Support SV_ViewID keywords for HLSL
+* Implement relaxed rule for opaque struct members
+* Add BUILD_WERROR cmake option
+* Add GLSLANG_TESTS cmake option
+* Always generate OpDebugBasicType for bool type
+* Fix GLSL parsing of '#' when not preceded by space or tab
+* Fix GL_ARB_bindless_texture availability
+* Support GL_EXT_draw_instanced extension
+* Support GL_EXT_texture_array extension
+* Fix conversion of 64-bit unsigned integer constants to bool
+* Output 8-bit and 16-bit capabilities when appropriate for OpSpecConstant
+
+## 13.1.1 2023-10-16
+* Initialize compile_only field in C interface
+
+## 13.1.0 2023-10-13
+* Support GL_EXT_texture_shadow_lod
+* Support GL_NV_displacement_micromap
+* Fix ByteAddressBuffer when used a function parameter
+* Add more verbose messages if SPIRV-Tools is not found
+* Fix names for explicitly sized types when emitting nonsemantic debug info
+* Emit error for r-value arguments in atomic memory operations
+* Add --no-link option
+* Beautify preprocessor output format
+* Fix race condition in glslangValidator
+* Only set LocalSizeId mode when necessary
+* Don't emit invalid debug info for buffer references
+
+## 13.0.0 2023-08-23
+
+### Breaking changes
+* Simplify PoolAlloc via thread_local
+  * Remove InitializeDLL functions
+  * Remove OSDependent TLS functions
+* Remove GLSLANG_WEB and GLSLANG_WEB_DEVEL code paths
+
+### Other changes
+* Raise CMAKE minimum to 3.17.2
+* Support GL_KHR_cooperative_matrix 
+* Support GL_QCOM_image_processing_support
+* Support outputting each module to a filename with spirv-remap
+* Generate an error when gl_PrimitiveShaderRateEXT is used without enabling the extension
+* Improve layout checking when GL_EXT_spirv_intrinsics is enabled
+
+## 12.3.1 2023-07-20
+
+### Other changes
+* Improve backward compatibility for glslangValidator rename on Windows
+
 ## 12.3.0 2023-07-19
 
 ### Other changes
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 72f5f88..1191bc4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2020 The Khronos Group Inc.
+# Copyright (C) 2020-2023 The Khronos Group Inc.
 #
 # All rights reserved.
 #
@@ -30,9 +30,14 @@
 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 # POSSIBILITY OF SUCH DAMAGE.
-cmake_minimum_required(VERSION 3.14.0)
+cmake_minimum_required(VERSION 3.17.2)
 project(glslang)
 
+if (CMAKE_VERSION VERSION_LESS "3.21")
+    # https://cmake.org/cmake/help/latest/variable/PROJECT_IS_TOP_LEVEL.html
+    string(COMPARE EQUAL ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR} PROJECT_IS_TOP_LEVEL)
+endif()
+
 set_property(GLOBAL PROPERTY USE_FOLDERS ON)
 
 # Adhere to GNU filesystem layout conventions
@@ -42,8 +47,9 @@
 # Needed for CMAKE_DEPENDENT_OPTION macro
 include(CMakeDependentOption)
 
-option(BUILD_SHARED_LIBS "Build Shared Libraries" OFF)
+option(BUILD_SHARED_LIBS "Build Shared Libraries")
 option(BUILD_EXTERNAL "Build external dependencies in /External" ON)
+option(BUILD_WERROR "Enable warnings as errors (default is OFF)" OFF)
 
 set(LIB_TYPE STATIC)
 
@@ -59,24 +65,24 @@
     set(CMAKE_BUILD_TYPE "Debug")
 endif()
 
-option(SKIP_GLSLANG_INSTALL "Skip installation" ${SKIP_GLSLANG_INSTALL})
-if(NOT ${SKIP_GLSLANG_INSTALL})
-  set(ENABLE_GLSLANG_INSTALL ON)
+# Currently iOS and Android are very similar.
+# They both have their own packaging (APP/APK).
+# Which makes regular executables/testing problematic.
+#
+# Currently the only deliverables for these platforms are
+# libraries (either STATIC or SHARED).
+#
+# Furthermore testing is equally problematic.
+if (IOS OR ANDROID)
+    set(ENABLE_GLSLANG_BINARIES OFF)
+    set(GLSLANG_TESTS OFF)
 endif()
+
 option(ENABLE_SPVREMAPPER "Enables building of SPVRemapper" ON)
 
 option(ENABLE_GLSLANG_BINARIES "Builds glslang and spirv-remap" ON)
 
-option(ENABLE_GLSLANG_JS
-    "If using Emscripten, build glslang.js. Otherwise, builds a sample executable for binary-size testing." OFF)
-CMAKE_DEPENDENT_OPTION(ENABLE_GLSLANG_WEBMIN
-    "Reduces glslang to minimum needed for web use"
-    OFF "ENABLE_GLSLANG_JS"
-    OFF)
-CMAKE_DEPENDENT_OPTION(ENABLE_GLSLANG_WEBMIN_DEVEL
-    "For ENABLE_GLSLANG_WEBMIN builds, enables compilation error messages"
-    OFF "ENABLE_GLSLANG_WEBMIN"
-    OFF)
+option(ENABLE_GLSLANG_JS "If using Emscripten, build glslang.js. Otherwise, builds a sample executable for binary-size testing.")
 CMAKE_DEPENDENT_OPTION(ENABLE_EMSCRIPTEN_SINGLE_FILE
     "If using Emscripten, enables SINGLE_FILE build"
     OFF "ENABLE_GLSLANG_JS AND EMSCRIPTEN"
@@ -86,45 +92,26 @@
     OFF "ENABLE_GLSLANG_JS AND EMSCRIPTEN"
     OFF)
 
-CMAKE_DEPENDENT_OPTION(ENABLE_HLSL
-    "Enables HLSL input support"
-    ON "NOT ENABLE_GLSLANG_WEBMIN"
-    OFF)
-
-option(ENABLE_RTTI "Enables RTTI" OFF)
-option(ENABLE_EXCEPTIONS "Enables Exceptions" OFF)
+option(ENABLE_HLSL "Enables HLSL input support" ON)
+option(ENABLE_RTTI "Enables RTTI")
+option(ENABLE_EXCEPTIONS "Enables Exceptions")
 option(ENABLE_OPT "Enables spirv-opt capability if present" ON)
 
-if(MINGW OR (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND ${CMAKE_CXX_COMPILER_ID} MATCHES "GNU"))
+if(MINGW OR (APPLE AND ${CMAKE_CXX_COMPILER_ID} MATCHES "GNU"))
     # Workaround for CMake behavior on Mac OS with gcc, cmake generates -Xarch_* arguments
     # which gcc rejects
-    option(ENABLE_PCH "Enables Precompiled header" OFF)
-else()
-    option(ENABLE_PCH "Enables Precompiled header" ON)
+    set(ENABLE_PCH OFF)
+    message(NOTICE "Disabling PCH")
 endif()
-option(ENABLE_CTEST "Enables testing" ON)
 
-if(ENABLE_CTEST)
-    include(CTest)
-endif()
+option(ENABLE_PCH "Enables Precompiled header" ON)
 
 if(ENABLE_HLSL)
-    add_definitions(-DENABLE_HLSL)
-endif()
-
-if(ENABLE_GLSLANG_WEBMIN)
-    add_definitions(-DGLSLANG_WEB)
-    if(ENABLE_GLSLANG_WEBMIN_DEVEL)
-        add_definitions(-DGLSLANG_WEB_DEVEL)
-    endif()
+    add_compile_definitions(ENABLE_HLSL)
 endif()
 
 if(WIN32)
     set(CMAKE_DEBUG_POSTFIX "d")
-    option(OVERRIDE_MSVCCRT "Overrides runtime of MSVC " ON)
-    if(MSVC AND OVERRIDE_MSVCCRT)
-        include(ChooseMSVCCRT.cmake)
-    endif()
     add_definitions(-DGLSLANG_OSINCLUDE_WIN32)
 elseif(UNIX OR ANDROID)
     add_definitions(-DGLSLANG_OSINCLUDE_UNIX)
@@ -145,9 +132,11 @@
         add_compile_options(-Werror=deprecated-copy)
     endif()
 
-    if(NOT CMAKE_SYSTEM_NAME STREQUAL "OpenBSD" AND NOT CMAKE_SYSTEM_NAME STREQUAL "Darwin")
-        # Error if there's symbols that are not found at link time.
-        add_link_options("-Wl,--no-undefined")
+    if(NOT (CMAKE_SYSTEM_NAME STREQUAL "OpenBSD"))
+        if (NOT APPLE)
+            # Error if there's symbols that are not found at link time.
+            add_link_options("-Wl,--no-undefined")
+        endif()
     endif()
 elseif(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang" AND NOT MSVC)
     add_compile_options(-Wall -Wuninitialized -Wunused -Wunused-local-typedefs
@@ -159,11 +148,9 @@
         add_compile_options(-fno-exceptions)
     endif()
 
-    if(NOT CMAKE_SYSTEM_NAME STREQUAL "OpenBSD")
-        # Error if there's symbols that are not found at link time.
-        if (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
-            add_link_options("-Wl,-undefined,error")
-        elseif(NOT APPLE)
+    if(NOT (CMAKE_SYSTEM_NAME MATCHES "OpenBSD|Emscripten"))
+        # Error if there's symbols that are not found at link time. Some linkers do not support this flag.
+        if(NOT APPLE)
             add_link_options("-Wl,--no-undefined")
         endif()
     endif()
@@ -184,6 +171,15 @@
     endif()
 endif()
 
+# NOTE we could potentially replace this logic with COMPILE_WARNING_AS_ERROR if cmake minimum is bumped to >= 3.24
+if (BUILD_WERROR)
+    if (NOT MSVC)
+        add_compile_options(-Werror)
+    else()
+        add_compile_options(/WX)
+    endif()
+endif()
+
 if(ENABLE_GLSLANG_JS)
     if(MSVC)
         add_compile_options(/Os /GR-)
@@ -211,12 +207,6 @@
     endif()
 endfunction(glslang_set_link_args)
 
-if(NOT COMMAND find_host_package)
-    macro(find_host_package)
-        find_package(${ARGN})
-    endmacro()
-endif()
-
 # Root directory for build-time generated include files
 set(GLSLANG_GENERATED_INCLUDEDIR "${CMAKE_BINARY_DIR}/include")
 
@@ -253,10 +243,9 @@
 function(glslang_only_export_explicit_symbols target)
     if(BUILD_SHARED_LIBS)
         target_compile_definitions(${target} PUBLIC "GLSLANG_IS_SHARED_LIBRARY=1")
+        set_target_properties(${target} PROPERTIES CMAKE_CXX_VISIBILITY_PRESET hidden)
         if(WIN32)
             target_compile_definitions(${target} PRIVATE "GLSLANG_EXPORTING=1")
-        else()
-            target_compile_options(${target} PRIVATE "-fvisibility=hidden")
         endif()
     endif()
 endfunction()
@@ -264,27 +253,35 @@
 # glslang_pch() adds precompiled header rules to <target> for the pre-compiled
 # header file <pch>. As target_precompile_headers() was added in CMake 3.16,
 # this is a no-op if called on earlier versions of CMake.
-if(NOT CMAKE_VERSION VERSION_LESS "3.16" AND ENABLE_PCH)
-    function(glslang_pch target pch)
-        target_precompile_headers(${target} PRIVATE ${pch})
-    endfunction()
-else()
-    function(glslang_pch target pch)
-    endfunction()
+function(glslang_pch target pch)
     if(ENABLE_PCH)
-        message("Your CMake version is ${CMAKE_VERSION}. Update to at least 3.16 to enable precompiled headers to speed up incremental builds")
+        target_precompile_headers(${target} PRIVATE ${pch})
     endif()
-endif()
+endfunction()
 
 if(BUILD_EXTERNAL AND IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/External)
-    find_host_package(Python3 REQUIRED)
-
     # We depend on these for later projects, so they should come first.
     add_subdirectory(External)
 endif()
 
+option(ALLOW_EXTERNAL_SPIRV_TOOLS "Allows to build against installed SPIRV-Tools-opt")
 if(NOT TARGET SPIRV-Tools-opt)
-    set(ENABLE_OPT OFF)
+    if(ALLOW_EXTERNAL_SPIRV_TOOLS)
+        # Look for external SPIR-V Tools build, if not building in-tree
+        message(STATUS "Trying to find local SPIR-V tools")
+        find_package(SPIRV-Tools-opt)
+        if(NOT TARGET SPIRV-Tools-opt)
+            if(ENABLE_OPT)
+                message(WARNING "ENABLE_OPT set but SPIR-V tools not found! Disabling SPIR-V optimization.")
+            endif()
+            set(ENABLE_OPT OFF)
+        endif()
+    else()
+        if(ENABLE_OPT)
+            message(SEND_ERROR "ENABLE_OPT set but SPIR-V tools not found. Please run update_glslang_sources.py, "
+                "set the ALLOW_EXTERNAL_SPIRV_TOOLS option to use a local install of SPIRV-Tools, or set ENABLE_OPT=0.")
+        endif()
+    endif()
 endif()
 
 if(ENABLE_OPT)
@@ -298,44 +295,49 @@
 endif()
 
 add_subdirectory(glslang)
-add_subdirectory(OGLCompilersDLL)
 if(ENABLE_GLSLANG_BINARIES)
     add_subdirectory(StandAlone)
 endif()
 add_subdirectory(SPIRV)
-if(ENABLE_HLSL)
-    add_subdirectory(hlsl)
-endif()
-if(ENABLE_CTEST)
-    add_subdirectory(gtests)
-endif()
 
-if(ENABLE_CTEST AND BUILD_TESTING)
-    # glslang-testsuite runs a bash script on Windows.
-    # Make sure to use '-o igncr' flag to ignore carriage returns (\r).
-    set(IGNORE_CR_FLAG "")
-    if(WIN32)
-        set(IGNORE_CR_FLAG -o igncr)
+# Testing / installation only makes sense when the project is top level.
+#
+# Otherwise add_subdirectory users have a harder time consuming the library.
+# Since glslang will pollute the installation and add undesirable testing.
+if(PROJECT_IS_TOP_LEVEL)
+    option(GLSLANG_TESTS "Enable glslang testing")
+    if(GLSLANG_TESTS)
+        enable_testing()
+        add_subdirectory(gtests)
+
+        # glslang-testsuite runs a bash script on Windows.
+        # Make sure to use '-o igncr' flag to ignore carriage returns (\r).
+        set(IGNORE_CR_FLAG "")
+        if(WIN32)
+            set(IGNORE_CR_FLAG -o igncr)
+        endif()
+
+        if (CMAKE_CONFIGURATION_TYPES)
+            set(RESULTS_PATH ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/localResults)
+            set(VALIDATOR_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/$<CONFIG>/glslang)
+            set(REMAP_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/$<CONFIG>/spirv-remap)
+        else()
+            set(RESULTS_PATH ${CMAKE_CURRENT_BINARY_DIR}/localResults)
+            set(VALIDATOR_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/glslang)
+            set(REMAP_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/spirv-remap)
+        endif()
+
+        add_test(NAME glslang-testsuite
+            COMMAND bash ${IGNORE_CR_FLAG} runtests ${RESULTS_PATH} ${VALIDATOR_PATH} ${REMAP_PATH}
+            WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Test/)
     endif()
 
-    if (CMAKE_CONFIGURATION_TYPES)
-        set(RESULTS_PATH ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/localResults)
-        set(VALIDATOR_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/$<CONFIG>/glslang)
-        set(REMAP_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/$<CONFIG>/spirv-remap)
-    else()
-        set(RESULTS_PATH ${CMAKE_CURRENT_BINARY_DIR}/localResults)
-        set(VALIDATOR_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/glslang)
-        set(REMAP_PATH ${CMAKE_CURRENT_BINARY_DIR}/StandAlone/spirv-remap)
-    endif()
-
-    add_test(NAME glslang-testsuite
-        COMMAND bash ${IGNORE_CR_FLAG} runtests ${RESULTS_PATH} ${VALIDATOR_PATH} ${REMAP_PATH}
-        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Test/)
-endif()
-
-if(ENABLE_GLSLANG_INSTALL)
     file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/glslang-config.cmake.in" [=[
         @PACKAGE_INIT@
+        include(CMakeFindDependencyMacro)
+        if(@ENABLE_OPT@)
+            find_dependency(SPIRV-Tools-opt)
+        endif()
         @INSTALL_CONFIG_UNIX@
         include("@PACKAGE_PATH_EXPORT_TARGETS@")
     ]=])
@@ -343,9 +345,8 @@
     set(PATH_EXPORT_TARGETS "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake")
     if(UNIX OR "${CMAKE_SYSTEM_NAME}" STREQUAL "Fuchsia")
         set(INSTALL_CONFIG_UNIX [=[
-            include(CMakeFindDependencyMacro)
             set(THREADS_PREFER_PTHREAD_FLAG ON)
-            find_dependency(Threads REQUIRED)
+            find_dependency(Threads)
         ]=])
     endif()
     configure_package_config_file(
@@ -355,18 +356,18 @@
             PATH_EXPORT_TARGETS
         INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
     )
-    
+
     write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/glslang-config-version.cmake"
         VERSION ${GLSLANG_VERSION}
         COMPATIBILITY SameMajorVersion
     )
-    
+
     install(
         EXPORT      glslang-targets
         NAMESPACE   "glslang::"
         DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
     )
-    
+
     install(
         FILES
             "${CMAKE_CURRENT_BINARY_DIR}/glslang-config.cmake"
diff --git a/ChooseMSVCCRT.cmake b/ChooseMSVCCRT.cmake
deleted file mode 100644
index b156126..0000000
--- a/ChooseMSVCCRT.cmake
+++ /dev/null
@@ -1,138 +0,0 @@
-# Copyright (C) 2020 The Khronos Group Inc.
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-#    Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-#
-#    Redistributions in binary form must reproduce the above
-#    copyright notice, this list of conditions and the following
-#    disclaimer in the documentation and/or other materials provided
-#    with the distribution.
-#
-#    Neither the name of The Khronos Group Inc. nor the names of its
-#    contributors may be used to endorse or promote products derived
-#    from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-# COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-# The macro choose_msvc_crt() takes a list of possible
-# C runtimes to choose from, in the form of compiler flags,
-# to present to the user. (MTd for /MTd, etc)
-#
-# The macro is invoked at the end of the file.
-#
-# CMake already sets CRT flags in the CMAKE_CXX_FLAGS_* and
-# CMAKE_C_FLAGS_* variables by default. To let the user
-# override that for each build type:
-# 1. Detect which CRT is already selected, and reflect this in
-# LLVM_USE_CRT_* so the user can have a better idea of what
-# changes they're making.
-# 2. Replace the flags in both variables with the new flag via a regex.
-# 3. set() the variables back into the cache so the changes
-# are user-visible.
-
-### Helper macros: ###
-macro(make_crt_regex regex crts)
-  set(${regex} "")
-  foreach(crt ${${crts}})
-    # Trying to match the beginning or end of the string with stuff
-    # like [ ^]+ didn't work, so use a bunch of parentheses instead.
-    set(${regex} "${${regex}}|(^| +)/${crt}($| +)")
-  endforeach(crt)
-  string(REGEX REPLACE "^\\|" "" ${regex} "${${regex}}")
-endmacro(make_crt_regex)
-
-macro(get_current_crt crt_current regex flagsvar)
-  # Find the selected-by-CMake CRT for each build type, if any.
-  # Strip off the leading slash and any whitespace.
-  string(REGEX MATCH "${${regex}}" ${crt_current} "${${flagsvar}}")
-  string(REPLACE "/" " " ${crt_current} "${${crt_current}}")
-  string(STRIP "${${crt_current}}" ${crt_current})
-endmacro(get_current_crt)
-
-# Replaces or adds a flag to a variable.
-# Expects 'flag' to be padded with spaces.
-macro(set_flag_in_var flagsvar regex flag)
-  string(REGEX MATCH "${${regex}}" current_flag "${${flagsvar}}")
-  if("${current_flag}" STREQUAL "")
-    set(${flagsvar} "${${flagsvar}}${${flag}}")
-  else()
-    string(REGEX REPLACE "${${regex}}" "${${flag}}" ${flagsvar} "${${flagsvar}}")
-  endif()
-  string(STRIP "${${flagsvar}}" ${flagsvar})
-  # Make sure this change gets reflected in the cache/gui.
-  # CMake requires the docstring parameter whenever set() touches the cache,
-  # so get the existing docstring and re-use that.
-  get_property(flagsvar_docs CACHE ${flagsvar} PROPERTY HELPSTRING)
-  set(${flagsvar} "${${flagsvar}}" CACHE STRING "${flagsvar_docs}" FORCE)
-endmacro(set_flag_in_var)
-
-
-macro(choose_msvc_crt MSVC_CRT)
-  if(LLVM_USE_CRT)
-    message(FATAL_ERROR
-      "LLVM_USE_CRT is deprecated. Use the CMAKE_BUILD_TYPE-specific
-variables (LLVM_USE_CRT_DEBUG, etc) instead.")
-  endif()
-
-  make_crt_regex(MSVC_CRT_REGEX ${MSVC_CRT})
-
-  foreach(build_type ${CMAKE_CONFIGURATION_TYPES} ${CMAKE_BUILD_TYPE})
-    string(TOUPPER "${build_type}" build)
-    if (NOT LLVM_USE_CRT_${build})
-      get_current_crt(LLVM_USE_CRT_${build}
-        MSVC_CRT_REGEX
-        CMAKE_CXX_FLAGS_${build})
-      set(LLVM_USE_CRT_${build}
-        "${LLVM_USE_CRT_${build}}"
-        CACHE STRING "Specify VC++ CRT to use for ${build_type} configurations."
-        FORCE)
-      set_property(CACHE LLVM_USE_CRT_${build}
-        PROPERTY STRINGS ;${${MSVC_CRT}})
-    endif(NOT LLVM_USE_CRT_${build})
-  endforeach(build_type)
-
-  foreach(build_type ${CMAKE_CONFIGURATION_TYPES} ${CMAKE_BUILD_TYPE})
-    string(TOUPPER "${build_type}" build)
-    if ("${LLVM_USE_CRT_${build}}" STREQUAL "")
-      set(flag_string " ")
-    else()
-      set(flag_string " /${LLVM_USE_CRT_${build}} ")
-      list(FIND ${MSVC_CRT} ${LLVM_USE_CRT_${build}} idx)
-      if (idx LESS 0)
-        message(FATAL_ERROR
-          "Invalid value for LLVM_USE_CRT_${build}: ${LLVM_USE_CRT_${build}}. Valid options are one of: ${${MSVC_CRT}}")
-      endif (idx LESS 0)
-      message(STATUS "Using ${build_type} VC++ CRT: ${LLVM_USE_CRT_${build}}")
-    endif()
-    foreach(lang C CXX)
-      set_flag_in_var(CMAKE_${lang}_FLAGS_${build} MSVC_CRT_REGEX flag_string)
-    endforeach(lang)
-  endforeach(build_type)
-endmacro(choose_msvc_crt MSVC_CRT)
-
-
-# List of valid CRTs for MSVC
-set(MSVC_CRT
-  MD
-  MDd
-  MT
-  MTd)
-
-choose_msvc_crt(MSVC_CRT)
diff --git a/External/CMakeLists.txt b/External/CMakeLists.txt
index cbabd2e..46284fd 100644
--- a/External/CMakeLists.txt
+++ b/External/CMakeLists.txt
@@ -34,7 +34,7 @@
 # Suppress all warnings from external projects.
 set_property(DIRECTORY APPEND PROPERTY COMPILE_OPTIONS -w)
 
-if(BUILD_TESTING)
+if(GLSLANG_TESTS)
     if(TARGET gmock)
         message(STATUS "Google Mock already configured - use it")
     elseif(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/googletest)
@@ -71,7 +71,7 @@
 if(ENABLE_OPT AND NOT TARGET SPIRV-Tools-opt)
     if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/spirv-tools)
         set(SPIRV_SKIP_TESTS ON CACHE BOOL "Skip building SPIRV-Tools tests")
-        add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/spirv-tools spirv-tools)
+        add_subdirectory(spirv-tools)
     endif()
 endif()
 
diff --git a/OGLCompilersDLL/CMakeLists.txt b/OGLCompilersDLL/CMakeLists.txt
deleted file mode 100644
index 71a5675..0000000
--- a/OGLCompilersDLL/CMakeLists.txt
+++ /dev/null
@@ -1,59 +0,0 @@
-# Copyright (C) 2020 The Khronos Group Inc.
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-#    Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-#
-#    Redistributions in binary form must reproduce the above
-#    copyright notice, this list of conditions and the following
-#    disclaimer in the documentation and/or other materials provided
-#    with the distribution.
-#
-#    Neither the name of The Khronos Group Inc. nor the names of its
-#    contributors may be used to endorse or promote products derived
-#    from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-# COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-set(SOURCES InitializeDll.cpp InitializeDll.h)
-
-add_library(OGLCompiler STATIC ${SOURCES})
-set_property(TARGET OGLCompiler PROPERTY FOLDER glslang)
-set_property(TARGET OGLCompiler PROPERTY POSITION_INDEPENDENT_CODE ON)
-
-if(WIN32)
-    source_group("Source" FILES ${SOURCES})
-endif(WIN32)
-
-if(ENABLE_GLSLANG_INSTALL AND NOT BUILD_SHARED_LIBS)
-    install(TARGETS OGLCompiler EXPORT glslang-targets)
-
-    # Backward compatibility
-    file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/OGLCompilerTargets.cmake" "
-        message(WARNING \"Using `OGLCompilerTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\")
-
-        if (NOT TARGET glslang::OGLCompiler)
-            include(\"${CMAKE_INSTALL_FULL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\")
-        endif()
-
-        add_library(OGLCompiler ALIAS glslang::OGLCompiler)
-    ")
-    install(FILES "${CMAKE_CURRENT_BINARY_DIR}/OGLCompilerTargets.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake)
-
-endif()
diff --git a/OGLCompilersDLL/InitializeDll.cpp b/OGLCompilersDLL/InitializeDll.cpp
deleted file mode 100644
index 9d81f57..0000000
--- a/OGLCompilersDLL/InitializeDll.cpp
+++ /dev/null
@@ -1,165 +0,0 @@
-//
-// Copyright (C) 2002-2005  3Dlabs Inc. Ltd.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions
-// are met:
-//
-//    Redistributions of source code must retain the above copyright
-//    notice, this list of conditions and the following disclaimer.
-//
-//    Redistributions in binary form must reproduce the above
-//    copyright notice, this list of conditions and the following
-//    disclaimer in the documentation and/or other materials provided
-//    with the distribution.
-//
-//    Neither the name of 3Dlabs Inc. Ltd. nor the names of its
-//    contributors may be used to endorse or promote products derived
-//    from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#define SH_EXPORTING
-
-#include <cassert>
-
-#include "InitializeDll.h"
-#include "../glslang/Include/InitializeGlobals.h"
-#include "../glslang/Public/ShaderLang.h"
-#include "../glslang/Include/PoolAlloc.h"
-
-namespace glslang {
-
-OS_TLSIndex ThreadInitializeIndex = OS_INVALID_TLS_INDEX;
-
-// Per-process initialization.
-// Needs to be called at least once before parsing, etc. is done.
-// Will also do thread initialization for the calling thread; other
-// threads will need to do that explicitly.
-bool InitProcess()
-{
-    glslang::GetGlobalLock();
-
-    if (ThreadInitializeIndex != OS_INVALID_TLS_INDEX) {
-        //
-        // Function is re-entrant.
-        //
-
-        glslang::ReleaseGlobalLock();
-        return true;
-    }
-
-    ThreadInitializeIndex = OS_AllocTLSIndex();
-
-    if (ThreadInitializeIndex == OS_INVALID_TLS_INDEX) {
-        assert(0 && "InitProcess(): Failed to allocate TLS area for init flag");
-
-        glslang::ReleaseGlobalLock();
-        return false;
-    }
-
-    if (! InitializePoolIndex()) {
-        assert(0 && "InitProcess(): Failed to initialize global pool");
-
-        glslang::ReleaseGlobalLock();
-        return false;
-    }
-
-    if (! InitThread()) {
-        assert(0 && "InitProcess(): Failed to initialize thread");
-
-        glslang::ReleaseGlobalLock();
-        return false;
-    }
-
-    glslang::ReleaseGlobalLock();
-    return true;
-}
-
-// Per-thread scoped initialization.
-// Must be called at least once by each new thread sharing the
-// symbol tables, etc., needed to parse.
-bool InitThread()
-{
-    //
-    // This function is re-entrant
-    //
-    if (ThreadInitializeIndex == OS_INVALID_TLS_INDEX) {
-        assert(0 && "InitThread(): Process hasn't been initalised.");
-        return false;
-    }
-
-    if (OS_GetTLSValue(ThreadInitializeIndex) != nullptr)
-        return true;
-
-    if (! OS_SetTLSValue(ThreadInitializeIndex, (void *)1)) {
-        assert(0 && "InitThread(): Unable to set init flag.");
-        return false;
-    }
-
-    glslang::SetThreadPoolAllocator(nullptr);
-
-    return true;
-}
-
-// Not necessary to call this: InitThread() is reentrant, and the need
-// to do per thread tear down has been removed.
-//
-// This is kept, with memory management removed, to satisfy any exiting
-// calls to it that rely on it.
-bool DetachThread()
-{
-    bool success = true;
-
-    if (ThreadInitializeIndex == OS_INVALID_TLS_INDEX)
-        return true;
-
-    //
-    // Function is re-entrant and this thread may not have been initialized.
-    //
-    if (OS_GetTLSValue(ThreadInitializeIndex) != nullptr) {
-        if (!OS_SetTLSValue(ThreadInitializeIndex, nullptr)) {
-            assert(0 && "DetachThread(): Unable to clear init flag.");
-            success = false;
-        }
-    }
-
-    return success;
-}
-
-// Not necessary to call this: InitProcess() is reentrant.
-//
-// This is kept, with memory management removed, to satisfy any exiting
-// calls to it that rely on it.
-//
-// Users of glslang should call shFinalize() or glslang::FinalizeProcess() for
-// process-scoped memory tear down.
-bool DetachProcess()
-{
-    bool success = true;
-
-    if (ThreadInitializeIndex == OS_INVALID_TLS_INDEX)
-        return true;
-
-    success = DetachThread();
-
-    OS_FreeTLSIndex(ThreadInitializeIndex);
-    ThreadInitializeIndex = OS_INVALID_TLS_INDEX;
-
-    return success;
-}
-
-} // end namespace glslang
diff --git a/OGLCompilersDLL/InitializeDll.h b/OGLCompilersDLL/InitializeDll.h
deleted file mode 100644
index 661cee4..0000000
--- a/OGLCompilersDLL/InitializeDll.h
+++ /dev/null
@@ -1,49 +0,0 @@
-//
-// Copyright (C) 2002-2005  3Dlabs Inc. Ltd.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions
-// are met:
-//
-//    Redistributions of source code must retain the above copyright
-//    notice, this list of conditions and the following disclaimer.
-//
-//    Redistributions in binary form must reproduce the above
-//    copyright notice, this list of conditions and the following
-//    disclaimer in the documentation and/or other materials provided
-//    with the distribution.
-//
-//    Neither the name of 3Dlabs Inc. Ltd. nor the names of its
-//    contributors may be used to endorse or promote products derived
-//    from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-#ifndef __INITIALIZEDLL_H
-#define __INITIALIZEDLL_H
-
-#include "../glslang/OSDependent/osinclude.h"
-
-namespace glslang {
-
-bool InitProcess();
-bool InitThread();
-bool DetachThread();  // not called from standalone, perhaps other tools rely on parts of it
-bool DetachProcess(); // not called from standalone, perhaps other tools rely on parts of it
-
-} // end namespace glslang
-
-#endif // __INITIALIZEDLL_H
-
diff --git a/README.md b/README.md
index 8ebf940..4438810 100644
--- a/README.md
+++ b/README.md
@@ -1,18 +1,14 @@
+![Continuous Integration](https://github.com/KhronosGroup/glslang/actions/workflows/continuous_integration.yml/badge.svg)
+![Continuous Deployment](https://github.com/KhronosGroup/glslang/actions/workflows/continuous_deployment.yml/badge.svg)
+[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/KhronosGroup/glslang/badge)](https://securityscorecards.dev/viewer/?uri=github.com/KhronosGroup/glslang)
+
 # News
 
-1. [As discussed in #3107](https://github.com/KhronosGroup/glslang/issues/3107), the default branch of this repository is now 'main'. This change should be transparent to repository users, since github rewrites many references to the old 'master' branch to 'main'. However, if you have a checked-out local clone, you may wish to take the following steps as recommended by github:
+1. `OGLCompiler` and `HLSL` stub libraries have been fully removed from the build.
 
-```sh
-git branch -m master main
-git fetch origin
-git branch -u origin/main main
-git remote set-head origin -a
-```
+2. `OVERRIDE_MSVCCRT` has been removed in favor of `CMAKE_MSVC_RUNTIME_LIBRARY`
 
-2. C++17 (all platforms) and Visual Studio 2019 (Windows) are now required. This change was driven by the external dependency on SPIRV-Tools.
-
-[![appveyor status](https://ci.appveyor.com/api/projects/status/q6fi9cb0qnhkla68/branch/main?svg=true)](https://ci.appveyor.com/project/Khronoswebmaster/glslang/branch/main)
-![Continuous Deployment](https://github.com/KhronosGroup/glslang/actions/workflows/continuous_deployment.yml/badge.svg)
+Users are encouraged to utilize the standard approach via [CMAKE_MSVC_RUNTIME_LIBRARY](https://cmake.org/cmake/help/latest/variable/CMAKE_MSVC_RUNTIME_LIBRARY.html).
 
 # Glslang Components and Status
 
@@ -121,24 +117,6 @@
 #### 2) Check-Out External Projects
 
 ```bash
-cd <the directory glslang was cloned to, "External" will be a subdirectory>
-git clone https://github.com/google/googletest.git External/googletest
-```
-
-TEMPORARY NOTICE: additionally perform the following to avoid a current
-breakage in googletest:
-
-```bash
-cd External/googletest
-git checkout 0c400f67fcf305869c5fb113dd296eca266c9725
-cd ../..
-```
-
-If you wish to assure that SPIR-V generated from HLSL is legal for Vulkan,
-wish to invoke -Os to reduce SPIR-V size from HLSL or GLSL, or wish to run the
-integrated test suite, install spirv-tools with this:
-
-```bash
 ./update_glslang_sources.py
 ```
 
@@ -193,6 +171,10 @@
 If using MSVC, after running CMake to configure, use the
 Configuration Manager to check the `INSTALL` project.
 
+If you want to enable testing via CMake set `GLSLANG_TESTS=ON` when configuring the build.
+
+`GLSLANG_TESTS` is off by default to streamline the packaging / Vulkan SDK process.
+
 ### Building (GN)
 
 glslang can also be built with the [GN build system](https://gn.googlesource.com/gn/).
@@ -234,16 +216,13 @@
 The command to rebuild is:
 
 ```bash
-m4 -P MachineIndependent/glslang.m4 > MachineIndependent/glslang.y
 bison --defines=MachineIndependent/glslang_tab.cpp.h
       -t MachineIndependent/glslang.y
       -o MachineIndependent/glslang_tab.cpp
 ```
 
-The above commands are also available in the bash script in `updateGrammar`,
+The above command is also available in the bash script in `updateGrammar`,
 when executed from the glslang subdirectory of the glslang repository.
-With no arguments it builds the full grammar, and with a "web" argument,
-the web grammar subset (see more about the web subset in the next section).
 
 ### Building to WASM for the Web and Node
 ### Building a standalone JS/WASM library for the Web and Node
@@ -253,15 +232,9 @@
   Bash-like environments:
   + [Instructions located here](https://emscripten.org/docs/getting_started/downloads.html#sdk-download-and-install)
 * Wrap cmake call: `emcmake cmake`
-* Set `-DBUILD_TESTING=OFF -DENABLE_OPT=OFF -DINSTALL_GTEST=OFF`.
+* Set `-DENABLE_OPT=OFF`.
 * Set `-DENABLE_HLSL=OFF` if HLSL is not needed.
 * For a standalone JS/WASM library, turn on `-DENABLE_GLSLANG_JS=ON`.
-* For building a minimum-size web subset of core glslang:
-  + turn on `-DENABLE_GLSLANG_WEBMIN=ON` (disables HLSL)
-  + execute `updateGrammar web` from the glslang subdirectory
-    (or if using your own scripts, `m4` needs a `-DGLSLANG_WEB` argument)
-  + optionally, for GLSL compilation error messages, turn on
-    `-DENABLE_GLSLANG_WEBMIN_DEVEL=ON`
 * To get a fully minimized build, make sure to use `brotli` to compress the .js
   and .wasm files
 
@@ -269,7 +242,7 @@
 
 ```sh
 emcmake cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_GLSLANG_JS=ON \
-    -DENABLE_HLSL=OFF -DBUILD_TESTING=OFF -DENABLE_OPT=OFF -DINSTALL_GTEST=OFF ..
+    -DENABLE_HLSL=OFF -DENABLE_OPT=OFF ..
 ```
 
 ## Building glslang - Using vcpkg
diff --git a/SPIRV/CInterface/spirv_c_interface.cpp b/SPIRV/CInterface/spirv_c_interface.cpp
index d56ad46..f421ea5 100644
--- a/SPIRV/CInterface/spirv_c_interface.cpp
+++ b/SPIRV/CInterface/spirv_c_interface.cpp
@@ -83,14 +83,8 @@
 
 GLSLANG_EXPORT void glslang_program_SPIRV_generate(glslang_program_t* program, glslang_stage_t stage)
 {
-    glslang_spv_options_t spv_options;
-    spv_options.generate_debug_info = false;
-    spv_options.strip_debug_info = false;
-    spv_options.emit_nonsemantic_shader_debug_info = false;
-    spv_options.emit_nonsemantic_shader_debug_source = false;
+    glslang_spv_options_t spv_options {};
     spv_options.disable_optimizer = true;
-    spv_options.optimize_size = false;
-    spv_options.disassemble = false;
     spv_options.validate = true;
 
     glslang_program_SPIRV_generate_with_options(program, stage, &spv_options);
diff --git a/SPIRV/CMakeLists.txt b/SPIRV/CMakeLists.txt
index a80e74e..808473b 100644
--- a/SPIRV/CMakeLists.txt
+++ b/SPIRV/CMakeLists.txt
@@ -70,6 +70,13 @@
     SPVRemapper.h
     doc.h)
 
+set(PUBLIC_HEADERS
+    GlslangToSpv.h
+    disassemble.h
+    Logger.h
+    spirv.hpp
+    SPVRemapper.h)
+
 add_library(SPIRV ${LIB_TYPE} ${SOURCES} ${HEADERS})
 set_target_properties(SPIRV PROPERTIES
     FOLDER glslang
@@ -99,14 +106,9 @@
 endif()
 
 if(ENABLE_OPT)
-    target_include_directories(SPIRV
-        PRIVATE ${spirv-tools_SOURCE_DIR}/include
-        PRIVATE ${spirv-tools_SOURCE_DIR}/source
-    )
-    target_link_libraries(SPIRV PRIVATE MachineIndependent SPIRV-Tools-opt)
+    target_link_libraries(SPIRV PRIVATE MachineIndependent PUBLIC SPIRV-Tools-opt)
     target_include_directories(SPIRV PUBLIC
-        $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../External>
-        $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/External>)
+        $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../External>)
 else()
     target_link_libraries(SPIRV PRIVATE MachineIndependent)
 endif()
@@ -116,37 +118,12 @@
     source_group("Source" FILES ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS})
 endif()
 
-if(ENABLE_GLSLANG_INSTALL)
+if(PROJECT_IS_TOP_LEVEL)
     if (ENABLE_SPVREMAPPER)
         install(TARGETS SPVRemapper EXPORT glslang-targets)
     endif()
 
     install(TARGETS SPIRV EXPORT glslang-targets)
 
-    # Backward compatibility
-    if (ENABLE_SPVREMAPPER)
-        file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/SPVRemapperTargets.cmake" "
-            message(WARNING \"Using `SPVRemapperTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\")
-
-            if (NOT TARGET glslang::SPVRemapper)
-                include(\"${CMAKE_INSTALL_FULL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\")
-            endif()
-
-            add_library(SPVRemapper ALIAS glslang::SPVRemapper)
-        ")
-        install(FILES "${CMAKE_CURRENT_BINARY_DIR}/SPVRemapperTargets.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake)
-    endif()
-
-    file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/SPIRVTargets.cmake" "
-        message(WARNING \"Using `SPIRVTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\")
-
-        if (NOT TARGET glslang::SPIRV)
-            include(\"${CMAKE_INSTALL_FULL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\")
-        endif()
-
-        add_library(SPIRV ALIAS glslang::SPIRV)
-    ")
-    install(FILES "${CMAKE_CURRENT_BINARY_DIR}/SPIRVTargets.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake)
-
-    install(FILES ${HEADERS} ${SPVREMAP_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/glslang/SPIRV/)
+    install(FILES ${PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/glslang/SPIRV/)
 endif()
diff --git a/SPIRV/GLSL.ext.KHR.h b/SPIRV/GLSL.ext.KHR.h
index 45549c1..b72aeaf 100644
--- a/SPIRV/GLSL.ext.KHR.h
+++ b/SPIRV/GLSL.ext.KHR.h
@@ -1,5 +1,6 @@
 /*
 ** Copyright (c) 2014-2020 The Khronos Group Inc.
+** Copyright (C) 2022-2024 Arm Limited.
 ** Modifications Copyright (C) 2020 Advanced Micro Devices, Inc. All rights reserved.
 **
 ** Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -53,7 +54,11 @@
 static const char* const E_SPV_KHR_workgroup_memory_explicit_layout = "SPV_KHR_workgroup_memory_explicit_layout";
 static const char* const E_SPV_KHR_subgroup_uniform_control_flow = "SPV_KHR_subgroup_uniform_control_flow";
 static const char* const E_SPV_KHR_fragment_shader_barycentric = "SPV_KHR_fragment_shader_barycentric";
+static const char* const E_SPV_KHR_quad_control                = "SPV_KHR_quad_control";
 static const char* const E_SPV_AMD_shader_early_and_late_fragment_tests = "SPV_AMD_shader_early_and_late_fragment_tests";
 static const char* const E_SPV_KHR_ray_tracing_position_fetch   = "SPV_KHR_ray_tracing_position_fetch";
+static const char* const E_SPV_KHR_cooperative_matrix           = "SPV_KHR_cooperative_matrix";
+static const char* const E_SPV_KHR_maximal_reconvergence        = "SPV_KHR_maximal_reconvergence";
+static const char* const E_SPV_KHR_subgroup_rotate              = "SPV_KHR_subgroup_rotate";
 
 #endif  // #ifndef GLSLextKHR_H
diff --git a/SPIRV/GLSL.ext.NV.h b/SPIRV/GLSL.ext.NV.h
index 5b0f7eb..9889bc9 100644
--- a/SPIRV/GLSL.ext.NV.h
+++ b/SPIRV/GLSL.ext.NV.h
@@ -84,4 +84,7 @@
 //SPV_NV_shader_execution_reorder
 const char* const E_SPV_NV_shader_invocation_reorder = "SPV_NV_shader_invocation_reorder";
 
+//SPV_NV_displacement_micromap
+const char* const E_SPV_NV_displacement_micromap = "SPV_NV_displacement_micromap";
+
 #endif  // #ifndef GLSLextNV_H
diff --git a/SPIRV/GLSL.ext.QCOM.h b/SPIRV/GLSL.ext.QCOM.h
new file mode 100644
index 0000000..f13bb69
--- /dev/null
+++ b/SPIRV/GLSL.ext.QCOM.h
@@ -0,0 +1,41 @@
+/*
+** Copyright (c) 2021 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a copy
+** of this software and/or associated documentation files (the "Materials"),
+** to deal in the Materials without restriction, including without limitation
+** the rights to use, copy, modify, merge, publish, distribute, sublicense,
+** and/or sell copies of the Materials, and to permit persons to whom the
+** Materials are furnished to do so, subject to the following conditions:
+**
+** The above copyright notice and this permission notice shall be included in
+** all copies or substantial portions of the Materials.
+**
+** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+** IN THE MATERIALS.
+*/
+
+#ifndef GLSLextQCOM_H
+#define GLSLextQCOM_H
+
+enum BuiltIn;
+enum Decoration;
+enum Op;
+enum Capability;
+
+static const int GLSLextQCOMVersion = 100;
+static const int GLSLextQCOMRevision = 1;
+
+//SPV_QCOM_image_processing
+const char* const E_SPV_QCOM_image_processing = "SPV_QCOM_image_processing";
+
+#endif  // #ifndef GLSLextQCOM_H
diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp
index 9a66363..b53c519 100755
--- a/SPIRV/GlslangToSpv.cpp
+++ b/SPIRV/GlslangToSpv.cpp
@@ -1,7 +1,7 @@
 //
 // Copyright (C) 2014-2016 LunarG, Inc.
 // Copyright (C) 2015-2020 Google, Inc.
-// Copyright (C) 2017 ARM Limited.
+// Copyright (C) 2017, 2022-2024 Arm Limited.
 // Modifications Copyright (C) 2020 Advanced Micro Devices, Inc. All rights reserved.
 //
 // All rights reserved.
@@ -43,6 +43,7 @@
 #include "spirv.hpp"
 #include "GlslangToSpv.h"
 #include "SpvBuilder.h"
+#include "SpvTools.h"
 namespace spv {
     #include "GLSL.std.450.h"
     #include "GLSL.ext.KHR.h"
@@ -50,6 +51,7 @@
     #include "GLSL.ext.AMD.h"
     #include "GLSL.ext.NV.h"
     #include "GLSL.ext.ARM.h"
+    #include "GLSL.ext.QCOM.h"
     #include "NonSemanticDebugPrintf.h"
 }
 
@@ -65,6 +67,7 @@
 #include <iomanip>
 #include <list>
 #include <map>
+#include <optional>
 #include <stack>
 #include <string>
 #include <vector>
@@ -95,26 +98,18 @@
     public:
         OpDecorations(spv::Decoration precision, spv::Decoration noContraction, spv::Decoration nonUniform) :
             precision(precision)
-#ifndef GLSLANG_WEB
             ,
             noContraction(noContraction),
             nonUniform(nonUniform)
-#endif
         { }
 
     spv::Decoration precision;
 
-#ifdef GLSLANG_WEB
-        void addNoContraction(spv::Builder&, spv::Id) const { }
-        void addNonUniform(spv::Builder&, spv::Id) const { }
-#else
         void addNoContraction(spv::Builder& builder, spv::Id t) { builder.addDecoration(t, noContraction); }
         void addNonUniform(spv::Builder& builder, spv::Id t)  { builder.addDecoration(t, nonUniform); }
     protected:
         spv::Decoration noContraction;
         spv::Decoration nonUniform;
-#endif
-
 };
 
 } // namespace
@@ -140,7 +135,7 @@
     bool visitLoop(glslang::TVisit, glslang::TIntermLoop*);
     bool visitBranch(glslang::TVisit visit, glslang::TIntermBranch*);
 
-    void finishSpv();
+    void finishSpv(bool compileOnly);
     void dumpSpv(std::vector<unsigned int>& out);
 
 protected:
@@ -171,12 +166,14 @@
     spv::Id convertGlslangToSpvType(const glslang::TType& type, bool forwardReferenceOnly = false);
     spv::Id convertGlslangToSpvType(const glslang::TType& type, glslang::TLayoutPacking, const glslang::TQualifier&,
         bool lastBufferBlockMember, bool forwardReferenceOnly = false);
+    void applySpirvDecorate(const glslang::TType& type, spv::Id id, std::optional<int> member);
     bool filterMember(const glslang::TType& member);
     spv::Id convertGlslangStructToSpvType(const glslang::TType&, const glslang::TTypeList* glslangStruct,
                                           glslang::TLayoutPacking, const glslang::TQualifier&);
+    spv::LinkageType convertGlslangLinkageToSpv(glslang::TLinkType glslangLinkType);
     void decorateStructType(const glslang::TType&, const glslang::TTypeList* glslangStruct, glslang::TLayoutPacking,
                             const glslang::TQualifier&, spv::Id, const std::vector<spv::Id>& spvMembers);
-    spv::Id makeArraySizeId(const glslang::TArraySizes&, int dim);
+    spv::Id makeArraySizeId(const glslang::TArraySizes&, int dim, bool allowZero = false);
     spv::Id accessChainLoad(const glslang::TType& type);
     void    accessChainStore(const glslang::TType& type, spv::Id rvalue);
     void multiTypeStore(const glslang::TType&, spv::Id rValue);
@@ -212,7 +209,7 @@
                                        glslang::TBasicType typeProxy);
     spv::Id createConversion(glslang::TOperator op, OpDecorations&, spv::Id destTypeId, spv::Id operand,
                              glslang::TBasicType typeProxy);
-    spv::Id createIntWidthConversion(glslang::TOperator op, spv::Id operand, int vectorSize);
+    spv::Id createIntWidthConversion(glslang::TOperator op, spv::Id operand, int vectorSize, spv::Id destType);
     spv::Id makeSmearedConstant(spv::Id constant, int vectorSize);
     spv::Id createAtomicOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId,
         std::vector<spv::Id>& operands, glslang::TBasicType typeProxy,
@@ -228,6 +225,7 @@
     spv::Id createNoArgOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId);
     spv::Id getSymbolId(const glslang::TIntermSymbol* node);
     void addMeshNVDecoration(spv::Id id, int member, const glslang::TQualifier & qualifier);
+    void addImageProcessingQCOMDecoration(spv::Id id, spv::Decoration decor);
     spv::Id createSpvConstant(const glslang::TIntermTyped&);
     spv::Id createSpvConstantFromConstUnionArray(const glslang::TType& type, const glslang::TConstUnionArray&,
         int& nextConst, bool specConstant);
@@ -291,10 +289,6 @@
 // Translate glslang profile to SPIR-V source language.
 spv::SourceLanguage TranslateSourceLanguage(glslang::EShSource source, EProfile profile)
 {
-#ifdef GLSLANG_WEB
-    return spv::SourceLanguageESSL;
-#endif
-
     switch (source) {
     case glslang::EShSourceGlsl:
         switch (profile) {
@@ -321,7 +315,6 @@
     case EShLangVertex:           return spv::ExecutionModelVertex;
     case EShLangFragment:         return spv::ExecutionModelFragment;
     case EShLangCompute:          return spv::ExecutionModelGLCompute;
-#ifndef GLSLANG_WEB
     case EShLangTessControl:      return spv::ExecutionModelTessellationControl;
     case EShLangTessEvaluation:   return spv::ExecutionModelTessellationEvaluation;
     case EShLangGeometry:         return spv::ExecutionModelGeometry;
@@ -333,7 +326,6 @@
     case EShLangCallable:         return spv::ExecutionModelCallableKHR;
     case EShLangTask:             return (isMeshShaderEXT)? spv::ExecutionModelTaskEXT : spv::ExecutionModelTaskNV;
     case EShLangMesh:             return (isMeshShaderEXT)? spv::ExecutionModelMeshEXT: spv::ExecutionModelMeshNV;
-#endif
     default:
         assert(0);
         return spv::ExecutionModelFragment;
@@ -384,14 +376,12 @@
     case glslang::EvqVaryingIn:    return spv::DecorationBlock;
     case glslang::EvqVaryingOut:   return spv::DecorationBlock;
     case glslang::EvqShared:       return spv::DecorationBlock;
-#ifndef GLSLANG_WEB
     case glslang::EvqPayload:      return spv::DecorationBlock;
     case glslang::EvqPayloadIn:    return spv::DecorationBlock;
     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);
         break;
@@ -461,7 +451,6 @@
                     assert(type.getQualifier().layoutPacking == glslang::ElpNone);
                 }
                 return spv::DecorationMax;
-#ifndef GLSLANG_WEB
             case glslang::EvqPayload:
             case glslang::EvqPayloadIn:
             case glslang::EvqHitAttr:
@@ -469,7 +458,6 @@
             case glslang::EvqCallableDataIn:
             case glslang::EvqHitObjectAttrNV:
                 return spv::DecorationMax;
-#endif
             default:
                 assert(0);
                 return spv::DecorationMax;
@@ -505,14 +493,12 @@
 {
     if (qualifier.centroid)
         return spv::DecorationCentroid;
-#ifndef GLSLANG_WEB
     else if (qualifier.patch)
         return spv::DecorationPatch;
     else if (qualifier.sample) {
         builder.addCapability(spv::CapabilitySampleRateShading);
         return spv::DecorationSample;
     }
-#endif
 
     return spv::DecorationMax;
 }
@@ -529,24 +515,20 @@
 // If glslang type is noContraction, return SPIR-V NoContraction decoration.
 spv::Decoration TranslateNoContractionDecoration(const glslang::TQualifier& qualifier)
 {
-#ifndef GLSLANG_WEB
     if (qualifier.isNoContraction())
         return spv::DecorationNoContraction;
     else
-#endif
         return spv::DecorationMax;
 }
 
 // If glslang type is nonUniform, return SPIR-V NonUniform decoration.
 spv::Decoration TGlslangToSpvTraverser::TranslateNonUniformDecoration(const glslang::TQualifier& qualifier)
 {
-#ifndef GLSLANG_WEB
     if (qualifier.isNonUniform()) {
         builder.addIncorporatedExtension("SPV_EXT_descriptor_indexing", spv::Spv_1_5);
         builder.addCapability(spv::CapabilityShaderNonUniformEXT);
         return spv::DecorationNonUniformEXT;
     } else
-#endif
         return spv::DecorationMax;
 }
 
@@ -554,13 +536,11 @@
 spv::Decoration TGlslangToSpvTraverser::TranslateNonUniformDecoration(
     const spv::Builder::AccessChain::CoherentFlags& coherentFlags)
 {
-#ifndef GLSLANG_WEB
     if (coherentFlags.isNonUniform()) {
         builder.addIncorporatedExtension("SPV_EXT_descriptor_indexing", spv::Spv_1_5);
         builder.addCapability(spv::CapabilityShaderNonUniformEXT);
         return spv::DecorationNonUniformEXT;
     } else
-#endif
         return spv::DecorationMax;
 }
 
@@ -569,7 +549,6 @@
 {
     spv::MemoryAccessMask mask = spv::MemoryAccessMaskNone;
 
-#ifndef GLSLANG_WEB
     if (!glslangIntermediate->usingVulkanMemoryModel() || coherentFlags.isImage)
         return mask;
 
@@ -587,7 +566,6 @@
     if (mask != spv::MemoryAccessMaskNone) {
         builder.addCapability(spv::CapabilityVulkanMemoryModelKHR);
     }
-#endif
 
     return mask;
 }
@@ -597,7 +575,6 @@
 {
     spv::ImageOperandsMask mask = spv::ImageOperandsMaskNone;
 
-#ifndef GLSLANG_WEB
     if (!glslangIntermediate->usingVulkanMemoryModel())
         return mask;
 
@@ -615,7 +592,6 @@
     if (mask != spv::ImageOperandsMaskNone) {
         builder.addCapability(spv::CapabilityVulkanMemoryModelKHR);
     }
-#endif
 
     return mask;
 }
@@ -623,7 +599,6 @@
 spv::Builder::AccessChain::CoherentFlags TGlslangToSpvTraverser::TranslateCoherent(const glslang::TType& type)
 {
     spv::Builder::AccessChain::CoherentFlags flags = {};
-#ifndef GLSLANG_WEB
     flags.coherent = type.getQualifier().coherent;
     flags.devicecoherent = type.getQualifier().devicecoherent;
     flags.queuefamilycoherent = type.getQualifier().queuefamilycoherent;
@@ -638,7 +613,6 @@
                        flags.anyCoherent() ||
                        flags.volatil;
     flags.isImage = type.getBasicType() == glslang::EbtSampler;
-#endif
     flags.nonUniform = type.getQualifier().nonUniform;
     return flags;
 }
@@ -648,7 +622,6 @@
 {
     spv::Scope scope = spv::ScopeMax;
 
-#ifndef GLSLANG_WEB
     if (coherentFlags.volatil || coherentFlags.coherent) {
         // coherent defaults to Device scope in the old model, QueueFamilyKHR scope in the new model
         scope = glslangIntermediate->usingVulkanMemoryModel() ? spv::ScopeQueueFamilyKHR : spv::ScopeDevice;
@@ -666,7 +639,6 @@
     if (glslangIntermediate->usingVulkanMemoryModel() && scope == spv::ScopeDevice) {
         builder.addCapability(spv::CapabilityVulkanMemoryModelDeviceScopeKHR);
     }
-#endif
 
     return scope;
 }
@@ -681,7 +653,6 @@
 {
     switch (builtIn) {
     case glslang::EbvPointSize:
-#ifndef GLSLANG_WEB
         // Defer adding the capability until the built-in is actually used.
         if (! memberDeclaration) {
             switch (glslangIntermediate->getStage()) {
@@ -696,7 +667,6 @@
                 break;
             }
         }
-#endif
         return spv::BuiltInPointSize;
 
     case glslang::EbvPosition:             return spv::BuiltInPosition;
@@ -717,7 +687,6 @@
     case glslang::EbvLocalInvocationIndex: return spv::BuiltInLocalInvocationIndex;
     case glslang::EbvGlobalInvocationId:   return spv::BuiltInGlobalInvocationId;
 
-#ifndef GLSLANG_WEB
     // These *Distance capabilities logically belong here, but if the member is declared and
     // then never used, consumers of SPIR-V prefer the capability not be declared.
     // They are now generated when used, rather than here when declared.
@@ -1043,6 +1012,22 @@
         builder.addExtension(spv::E_SPV_NV_ray_tracing_motion_blur);
         builder.addCapability(spv::CapabilityRayTracingMotionBlurNV);
         return spv::BuiltInCurrentRayTimeNV;
+    case glslang::EbvMicroTrianglePositionNV:
+        builder.addCapability(spv::CapabilityRayTracingDisplacementMicromapNV);
+        builder.addExtension("SPV_NV_displacement_micromap");
+        return spv::BuiltInHitMicroTriangleVertexPositionsNV;
+    case glslang::EbvMicroTriangleBaryNV:
+        builder.addCapability(spv::CapabilityRayTracingDisplacementMicromapNV);
+        builder.addExtension("SPV_NV_displacement_micromap");
+        return spv::BuiltInHitMicroTriangleVertexBarycentricsNV;
+    case glslang::EbvHitKindFrontFacingMicroTriangleNV:
+        builder.addCapability(spv::CapabilityRayTracingDisplacementMicromapNV);
+        builder.addExtension("SPV_NV_displacement_micromap");
+        return spv::BuiltInHitKindFrontFacingMicroTriangleNV;
+    case glslang::EbvHitKindBackFacingMicroTriangleNV:
+        builder.addCapability(spv::CapabilityRayTracingDisplacementMicromapNV);
+        builder.addExtension("SPV_NV_displacement_micromap");
+        return spv::BuiltInHitKindBackFacingMicroTriangleNV;
 
     // barycentrics
     case glslang::EbvBaryCoordNV:
@@ -1130,7 +1115,6 @@
         builder.addExtension(spv::E_SPV_ARM_core_builtins);
         builder.addCapability(spv::CapabilityCoreBuiltinsARM);
         return spv::BuiltInWarpMaxIDARM;
-#endif
 
     default:
         return spv::BuiltInMax;
@@ -1142,10 +1126,6 @@
 {
     assert(type.getBasicType() == glslang::EbtSampler);
 
-#ifdef GLSLANG_WEB
-    return spv::ImageFormatUnknown;
-#endif
-
     // Check for capabilities
     switch (type.getQualifier().getFormat()) {
     case glslang::ElfRg32f:
@@ -1302,12 +1282,10 @@
 {
     if (type.getBasicType() == glslang::EbtRayQuery || type.getBasicType() == glslang::EbtHitObjectNV)
         return spv::StorageClassPrivate;
-#ifndef GLSLANG_WEB
     if (type.getQualifier().isSpirvByReference()) {
         if (type.getQualifier().isParamInput() || type.getQualifier().isParamOutput())
             return spv::StorageClassFunction;
     }
-#endif
     if (type.getQualifier().isPipeInput())
         return spv::StorageClassInput;
     if (type.getQualifier().isPipeOutput())
@@ -1355,7 +1333,6 @@
     case glslang::EvqConstReadOnly: return spv::StorageClassFunction;
     case glslang::EvqTemporary:     return spv::StorageClassFunction;
     case glslang::EvqShared:           return spv::StorageClassWorkgroup;
-#ifndef GLSLANG_WEB
     case glslang::EvqPayload:        return spv::StorageClassRayPayloadKHR;
     case glslang::EvqPayloadIn:      return spv::StorageClassIncomingRayPayloadKHR;
     case glslang::EvqHitAttr:        return spv::StorageClassHitAttributeKHR;
@@ -1364,7 +1341,6 @@
     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:
         assert(0);
         break;
@@ -1425,7 +1401,6 @@
 void TGlslangToSpvTraverser::addIndirectionIndexCapabilities(const glslang::TType& baseType,
                                                              const glslang::TType& indexType)
 {
-#ifndef GLSLANG_WEB
     if (indexType.getQualifier().isNonUniform()) {
         // deal with an asserted non-uniform index
         // SPV_EXT_descriptor_indexing already added in TranslateNonUniformDecoration
@@ -1461,7 +1436,6 @@
             }
         }
     }
-#endif
 }
 
 // Return whether or not the given type is something that should be tied to a
@@ -1497,7 +1471,6 @@
         child.flat = true;
     if (parent.centroid)
         child.centroid = true;
-#ifndef GLSLANG_WEB
     if (parent.nopersp)
         child.nopersp = true;
     if (parent.explicitInterp)
@@ -1536,7 +1509,6 @@
         child.readonly = true;
     if (parent.writeonly)
         child.writeonly = true;
-#endif
     if (parent.nonUniform)
         child.nonUniform = true;
 }
@@ -1636,8 +1608,12 @@
         builder.addCapability(spv::CapabilityVariablePointers);
     }
 
-    shaderEntry = builder.makeEntryPoint(glslangIntermediate->getEntryPointName().c_str());
-    entryPoint = builder.addEntryPoint(executionModel, shaderEntry, glslangIntermediate->getEntryPointName().c_str());
+    // If not linking, there is no entry point
+    if (!options.compileOnly) {
+        shaderEntry = builder.makeEntryPoint(glslangIntermediate->getEntryPointName().c_str());
+        entryPoint =
+            builder.addEntryPoint(executionModel, shaderEntry, glslangIntermediate->getEntryPointName().c_str());
+    }
 
     // Add the source extensions
     const auto& sourceExtensions = glslangIntermediate->getRequestedExtensions();
@@ -1655,12 +1631,28 @@
         builder.addCapability(spv::CapabilityRayTraversalPrimitiveCullingKHR);
     }
 
-#ifndef GLSLANG_WEB
     if (glslangIntermediate->getSubgroupUniformControlFlow()) {
         builder.addExtension(spv::E_SPV_KHR_subgroup_uniform_control_flow);
         builder.addExecutionMode(shaderEntry, spv::ExecutionModeSubgroupUniformControlFlowKHR);
     }
-#endif
+    if (glslangIntermediate->getMaximallyReconverges()) {
+        builder.addExtension(spv::E_SPV_KHR_maximal_reconvergence);
+        builder.addExecutionMode(shaderEntry, spv::ExecutionModeMaximallyReconvergesKHR);
+    }
+
+    if (glslangIntermediate->getQuadDerivMode())
+    {
+        builder.addCapability(spv::CapabilityQuadControlKHR);
+        builder.addExtension(spv::E_SPV_KHR_quad_control);
+        builder.addExecutionMode(shaderEntry, spv::ExecutionModeQuadDerivativesKHR);
+    }
+
+    if (glslangIntermediate->getReqFullQuadsMode())
+    {
+        builder.addCapability(spv::CapabilityQuadControlKHR);
+        builder.addExtension(spv::E_SPV_KHR_quad_control);
+        builder.addExecutionMode(shaderEntry, spv::ExecutionModeRequireFullQuadsKHR);
+    }
 
     unsigned int mode;
     switch (glslangIntermediate->getStage()) {
@@ -1717,8 +1709,6 @@
         if (glslangIntermediate->isStencilReplacing())
             builder.addExecutionMode(shaderEntry, spv::ExecutionModeStencilRefReplacingEXT);
 
-#ifndef GLSLANG_WEB
-
         switch(glslangIntermediate->getDepth()) {
         case glslang::EldGreater:   mode = spv::ExecutionModeDepthGreater;   break;
         case glslang::EldLess:      mode = spv::ExecutionModeDepthLess;      break;
@@ -1770,26 +1760,33 @@
             }
             builder.addExtension(spv::E_SPV_EXT_fragment_shader_interlock);
         }
-#endif
     break;
 
-    case EShLangCompute:
+    case EShLangCompute: {
         builder.addCapability(spv::CapabilityShader);
-        if (glslangIntermediate->getSpv().spv >= glslang::EShTargetSpv_1_6) {
-          std::vector<spv::Id> dimConstId;
-          for (int dim = 0; dim < 3; ++dim) {
-            bool specConst = (glslangIntermediate->getLocalSizeSpecId(dim) != glslang::TQualifier::layoutNotSet);
-            dimConstId.push_back(builder.makeUintConstant(glslangIntermediate->getLocalSize(dim), specConst));
-            if (specConst) {
-                builder.addDecoration(dimConstId.back(), spv::DecorationSpecId,
-                                      glslangIntermediate->getLocalSizeSpecId(dim));
+        bool needSizeId = false;
+        for (int dim = 0; dim < 3; ++dim) {
+            if ((glslangIntermediate->getLocalSizeSpecId(dim) != glslang::TQualifier::layoutNotSet)) {
+                needSizeId = true;
+                break;
             }
-          }
-          builder.addExecutionModeId(shaderEntry, spv::ExecutionModeLocalSizeId, dimConstId);
+        }
+        if (glslangIntermediate->getSpv().spv >= glslang::EShTargetSpv_1_6 && needSizeId) {
+            std::vector<spv::Id> dimConstId;
+            for (int dim = 0; dim < 3; ++dim) {
+                bool specConst = (glslangIntermediate->getLocalSizeSpecId(dim) != glslang::TQualifier::layoutNotSet);
+                dimConstId.push_back(builder.makeUintConstant(glslangIntermediate->getLocalSize(dim), specConst));
+                if (specConst) {
+                    builder.addDecoration(dimConstId.back(), spv::DecorationSpecId,
+                                          glslangIntermediate->getLocalSizeSpecId(dim));
+                    needSizeId = true;
+                }
+            }
+            builder.addExecutionModeId(shaderEntry, spv::ExecutionModeLocalSizeId, dimConstId);
         } else {
-          builder.addExecutionMode(shaderEntry, spv::ExecutionModeLocalSize, glslangIntermediate->getLocalSize(0),
-                                                                             glslangIntermediate->getLocalSize(1),
-                                                                             glslangIntermediate->getLocalSize(2));
+            builder.addExecutionMode(shaderEntry, spv::ExecutionModeLocalSize, glslangIntermediate->getLocalSize(0),
+                                                                               glslangIntermediate->getLocalSize(1),
+                                                                               glslangIntermediate->getLocalSize(2));
         }
         if (glslangIntermediate->getLayoutDerivativeModeNone() == glslang::LayoutDerivativeGroupQuads) {
             builder.addCapability(spv::CapabilityComputeDerivativeGroupQuadsNV);
@@ -1801,7 +1798,7 @@
             builder.addExtension(spv::E_SPV_NV_compute_shader_derivatives);
         }
         break;
-#ifndef GLSLANG_WEB
+    }
     case EShLangTessEvaluation:
     case EShLangTessControl:
         builder.addCapability(spv::CapabilityTessellation);
@@ -1941,13 +1938,11 @@
                 builder.addExecutionMode(shaderEntry, (spv::ExecutionMode)mode);
         }
         break;
-#endif
 
     default:
         break;
     }
 
-#ifndef GLSLANG_WEB
     //
     // Add SPIR-V requirements (GL_EXT_spirv_intrinsics)
     //
@@ -1992,27 +1987,29 @@
             builder.addExecutionModeId(shaderEntry, static_cast<spv::ExecutionMode>(modeId.first), operandIds);
         }
     }
-#endif
 }
 
 // Finish creating SPV, after the traversal is complete.
-void TGlslangToSpvTraverser::finishSpv()
+void TGlslangToSpvTraverser::finishSpv(bool compileOnly)
 {
-    // Finish the entry point function
-    if (! entryPointTerminated) {
-        builder.setBuildPoint(shaderEntry->getLastBlock());
-        builder.leaveFunction();
-    }
+    // If not linking, an entry point is not expected
+    if (!compileOnly) {
+        // Finish the entry point function
+        if (!entryPointTerminated) {
+            builder.setBuildPoint(shaderEntry->getLastBlock());
+            builder.leaveFunction();
+        }
 
-    // finish off the entry-point SPV instruction by adding the Input/Output <id>
-    for (auto it = iOSet.cbegin(); it != iOSet.cend(); ++it)
-        entryPoint->addIdOperand(*it);
+        // finish off the entry-point SPV instruction by adding the Input/Output <id>
+        for (auto it = iOSet.cbegin(); it != iOSet.cend(); ++it)
+            entryPoint->addIdOperand(*it);
+    }
 
     // Add capabilities, extensions, remove unneeded decorations, etc.,
     // based on the resulting SPIR-V.
     // Note: WebGPU code generation must have the opportunity to aggressively
     // prune unreachable merge blocks and continue targets.
-    builder.postProcess();
+    builder.postProcess(compileOnly);
 }
 
 // Write the SPV into 'out'.
@@ -2071,7 +2068,7 @@
                 spv::StorageClass sc = builder.getStorageClass(id);
                 // Before SPIR-V 1.4, we only want to include Input and Output.
                 // Starting with SPIR-V 1.4, we want all globals.
-                if ((glslangIntermediate->getSpv().spv >= glslang::EShTargetSpv_1_4 && builder.isGlobalStorage(id)) ||
+                if ((glslangIntermediate->getSpv().spv >= glslang::EShTargetSpv_1_4 && builder.isGlobalVariable(id)) ||
                     (sc == spv::StorageClassInput || sc == spv::StorageClassOutput)) {
                     iOSet.insert(id);
                 }
@@ -2560,12 +2557,15 @@
 
         spv::Id length;
         if (node->getOperand()->getType().isCoopMat()) {
-            spec_constant_op_mode_setter.turnOnSpecConstantOpMode();
-
             spv::Id typeId = convertGlslangToSpvType(node->getOperand()->getType());
             assert(builder.isCooperativeMatrixType(typeId));
 
-            length = builder.createCooperativeMatrixLength(typeId);
+            if (node->getOperand()->getType().isCoopMatKHR()) {
+                length = builder.createCooperativeMatrixLengthKHR(typeId);
+            } else {
+                spec_constant_op_mode_setter.turnOnSpecConstantOpMode();
+                length = builder.createCooperativeMatrixLengthNV(typeId);
+            }
         } else {
             glslang::TIntermTyped* block = node->getOperand()->getAsBinaryNode()->getLeft();
             block->traverse(this);
@@ -2651,7 +2651,6 @@
         }
     };
 
-#ifndef GLSLANG_WEB
     if (node->getOp() == glslang::EOpAtomicCounterIncrement ||
         node->getOp() == glslang::EOpAtomicCounterDecrement ||
         node->getOp() == glslang::EOpAtomicCounter          ||
@@ -2673,9 +2672,7 @@
     } else if (operandNode->getAsTyped()->getQualifier().isSpirvLiteral()) {
         // Will be translated to a literal value, make a placeholder here
         operand = spv::NoResult;
-    } else
-#endif
-    {
+    } else {
         operand = accessChainLoad(node->getOperand()->getType());
     }
 
@@ -2693,7 +2690,6 @@
         result = createUnaryOperation(node->getOp(), decorations, resultType(), operand,
             node->getOperand()->getBasicType(), lvalueCoherentFlags);
 
-#ifndef GLSLANG_WEB
     // it could be attached to a SPIR-V intruction
     if (!result) {
         if (node->getOp() == glslang::EOpSpirvInst) {
@@ -2723,7 +2719,6 @@
                 return false; // done with this node
         }
     }
-#endif
 
     if (result) {
         if (invertedType) {
@@ -2748,7 +2743,6 @@
             spv::Id one = 0;
             if (node->getBasicType() == glslang::EbtFloat)
                 one = builder.makeFloatConstant(1.0F);
-#ifndef GLSLANG_WEB
             else if (node->getBasicType() == glslang::EbtDouble)
                 one = builder.makeDoubleConstant(1.0);
             else if (node->getBasicType() == glslang::EbtFloat16)
@@ -2759,7 +2753,6 @@
                 one = builder.makeInt16Constant(1);
             else if (node->getBasicType() == glslang::EbtInt64 || node->getBasicType() == glslang::EbtUint64)
                 one = builder.makeInt64Constant(1);
-#endif
             else
                 one = builder.makeIntConstant(1);
             glslang::TOperator op;
@@ -2788,7 +2781,6 @@
 
         return false;
 
-#ifndef GLSLANG_WEB
     case glslang::EOpEmitStreamVertex:
         builder.createNoResultOp(spv::OpEmitStreamVertex, operand);
         return false;
@@ -2807,7 +2799,6 @@
     case glslang::EOpHitObjectRecordEmptyNV:
         builder.createNoResultOp(spv::OpHitObjectRecordEmptyNV, operand);
         return false;
-#endif
 
     default:
         logger->missingFunctionality("unknown glslang unary");
@@ -2872,15 +2863,12 @@
         builder.setAccessChainRValue(result);
 
         return false;
-    }
-#ifndef GLSLANG_WEB
-    else if (node->getOp() == glslang::EOpImageStore ||
+    } else if (node->getOp() == glslang::EOpImageStore ||
         node->getOp() == glslang::EOpImageStoreLod ||
         node->getOp() == glslang::EOpImageAtomicStore) {
         // "imageStore" is a special case, which has no result
         return false;
     }
-#endif
 
     glslang::TOperator binOp = glslang::EOpNull;
     bool reduceComparison = true;
@@ -2906,9 +2894,12 @@
                 // In all cases, still let the traverser visit the children for us.
                 makeFunctions(node->getAsAggregate()->getSequence());
 
-                // Also, we want all globals initializers to go into the beginning of the entry point, before
-                // anything else gets there, so visit out of order, doing them all now.
-                makeGlobalInitializers(node->getAsAggregate()->getSequence());
+                // Global initializers is specific to the shader entry point, which does not exist in compile-only mode
+                if (!options.compileOnly) {
+                    // Also, we want all globals initializers to go into the beginning of the entry point, before
+                    // anything else gets there, so visit out of order, doing them all now.
+                    makeGlobalInitializers(node->getAsAggregate()->getSequence());
+                }
 
                 //Pre process linker objects for ray tracing stages
                 if (glslangIntermediate->isRayTracingStage())
@@ -3099,7 +3090,8 @@
     case glslang::EOpConstructStruct:
     case glslang::EOpConstructTextureSampler:
     case glslang::EOpConstructReference:
-    case glslang::EOpConstructCooperativeMatrix:
+    case glslang::EOpConstructCooperativeMatrixNV:
+    case glslang::EOpConstructCooperativeMatrixKHR:
     {
         builder.setLine(node->getLoc().line, node->getLoc().getFilename());
         std::vector<spv::Id> arguments;
@@ -3116,7 +3108,8 @@
             } else
                 constructed = builder.createOp(spv::OpSampledImage, resultType(), arguments);
         } else if (node->getOp() == glslang::EOpConstructStruct ||
-                 node->getOp() == glslang::EOpConstructCooperativeMatrix ||
+                 node->getOp() == glslang::EOpConstructCooperativeMatrixNV ||
+                 node->getOp() == glslang::EOpConstructCooperativeMatrixKHR ||
                  node->getType().isArray()) {
             std::vector<spv::Id> constituents;
             for (int c = 0; c < (int)arguments.size(); ++c)
@@ -3214,7 +3207,6 @@
         atomic = true;
         break;
 
-#ifndef GLSLANG_WEB
     case glslang::EOpAtomicStore:
         noReturnValue = true;
         // fallthrough
@@ -3291,6 +3283,8 @@
         break;
     case glslang::EOpCooperativeMatrixLoad:
     case glslang::EOpCooperativeMatrixStore:
+    case glslang::EOpCooperativeMatrixLoadNV:
+    case glslang::EOpCooperativeMatrixStoreNV:
         noReturnValue = true;
         break;
     case glslang::EOpBeginInvocationInterlock:
@@ -3340,7 +3334,26 @@
         builder.addCapability(spv::CapabilityRayQueryPositionFetchKHR);
         noReturnValue = true;
         break;
-#endif
+
+    case glslang::EOpImageSampleWeightedQCOM:
+        builder.addCapability(spv::CapabilityTextureSampleWeightedQCOM);
+        builder.addExtension(spv::E_SPV_QCOM_image_processing);
+        break;
+    case glslang::EOpImageBoxFilterQCOM:
+        builder.addCapability(spv::CapabilityTextureBoxFilterQCOM);
+        builder.addExtension(spv::E_SPV_QCOM_image_processing);
+        break;
+    case glslang::EOpImageBlockMatchSADQCOM:
+    case glslang::EOpImageBlockMatchSSDQCOM:
+        builder.addCapability(spv::CapabilityTextureBlockMatchQCOM);
+        builder.addExtension(spv::E_SPV_QCOM_image_processing);
+        break;
+
+    case glslang::EOpFetchMicroTriangleVertexPositionNV:
+    case glslang::EOpFetchMicroTriangleVertexBarycentricNV:
+        builder.addExtension(spv::E_SPV_NV_displacement_micromap);
+        builder.addCapability(spv::CapabilityDisplacementMicromapNV);
+        break;
 
     case glslang::EOpDebugPrintf:
         noReturnValue = true;
@@ -3448,7 +3461,6 @@
                 lvalue = true;
             break;
 
-#ifndef GLSLANG_WEB
         case glslang::EOpFrexp:
             if (arg == 1)
                 lvalue = true;
@@ -3502,10 +3514,12 @@
                 lvalue = true;
             break;
         case glslang::EOpCooperativeMatrixLoad:
+        case glslang::EOpCooperativeMatrixLoadNV:
             if (arg == 0 || arg == 1)
                 lvalue = true;
             break;
         case glslang::EOpCooperativeMatrixStore:
+        case glslang::EOpCooperativeMatrixStoreNV:
             if (arg == 1)
                 lvalue = true;
             break;
@@ -3522,7 +3536,6 @@
             if (arg == 0 || arg == 2)
                 lvalue = true;
             break;
-#endif
         default:
             break;
         }
@@ -3532,9 +3545,10 @@
         else
             glslangOperands[arg]->traverse(this);
 
-#ifndef GLSLANG_WEB
         if (node->getOp() == glslang::EOpCooperativeMatrixLoad ||
-            node->getOp() == glslang::EOpCooperativeMatrixStore) {
+            node->getOp() == glslang::EOpCooperativeMatrixStore ||
+            node->getOp() == glslang::EOpCooperativeMatrixLoadNV ||
+            node->getOp() == glslang::EOpCooperativeMatrixStoreNV) {
 
             if (arg == 1) {
                 // fold "element" parameter into the access chain
@@ -3555,9 +3569,11 @@
                 unsigned int alignment = builder.getAccessChain().alignment;
 
                 int memoryAccess = TranslateMemoryAccess(coherentFlags);
-                if (node->getOp() == glslang::EOpCooperativeMatrixLoad)
+                if (node->getOp() == glslang::EOpCooperativeMatrixLoad ||
+                    node->getOp() == glslang::EOpCooperativeMatrixLoadNV)
                     memoryAccess &= ~spv::MemoryAccessMakePointerAvailableKHRMask;
-                if (node->getOp() == glslang::EOpCooperativeMatrixStore)
+                if (node->getOp() == glslang::EOpCooperativeMatrixStore ||
+                    node->getOp() == glslang::EOpCooperativeMatrixStoreNV)
                     memoryAccess &= ~spv::MemoryAccessMakePointerVisibleKHRMask;
                 if (builder.getStorageClass(builder.getAccessChain().base) ==
                     spv::StorageClassPhysicalStorageBufferEXT) {
@@ -3579,7 +3595,6 @@
                 continue;
             }
         }
-#endif
 
         // for l-values, pass the address, for r-values, pass the value
         if (lvalue) {
@@ -3642,11 +3657,9 @@
                  visitSymbol(itNode->second);
                  spv::Id symId = getSymbolId(itNode->second);
                  operands.push_back(symId);
-#ifndef GLSLANG_WEB
              } else if (glslangOperands[arg]->getAsTyped()->getQualifier().isSpirvLiteral()) {
                  // Will be translated to a literal value, make a placeholder here
                  operands.push_back(spv::NoResult);
-#endif
              } else  {
                 operands.push_back(accessChainLoad(glslangOperands[arg]->getAsTyped()->getType()));
              }
@@ -3654,32 +3667,48 @@
     }
 
     builder.setLine(node->getLoc().line, node->getLoc().getFilename());
-#ifndef GLSLANG_WEB
-    if (node->getOp() == glslang::EOpCooperativeMatrixLoad) {
+    if (node->getOp() == glslang::EOpCooperativeMatrixLoad ||
+        node->getOp() == glslang::EOpCooperativeMatrixLoadNV) {
         std::vector<spv::IdImmediate> idImmOps;
 
         idImmOps.push_back(spv::IdImmediate(true, operands[1])); // buf
-        idImmOps.push_back(spv::IdImmediate(true, operands[2])); // stride
-        idImmOps.push_back(spv::IdImmediate(true, operands[3])); // colMajor
+        if (node->getOp() == glslang::EOpCooperativeMatrixLoad) {
+            idImmOps.push_back(spv::IdImmediate(true, operands[3])); // matrixLayout
+            idImmOps.push_back(spv::IdImmediate(true, operands[2])); // stride
+        } else {
+            idImmOps.push_back(spv::IdImmediate(true, operands[2])); // stride
+            idImmOps.push_back(spv::IdImmediate(true, operands[3])); // colMajor
+        }
         idImmOps.insert(idImmOps.end(), memoryAccessOperands.begin(), memoryAccessOperands.end());
         // get the pointee type
         spv::Id typeId = builder.getContainedTypeId(builder.getTypeId(operands[0]));
         assert(builder.isCooperativeMatrixType(typeId));
         // do the op
-        spv::Id result = builder.createOp(spv::OpCooperativeMatrixLoadNV, typeId, idImmOps);
+        spv::Id result = node->getOp() == glslang::EOpCooperativeMatrixLoad
+                       ? builder.createOp(spv::OpCooperativeMatrixLoadKHR, typeId, idImmOps)
+                       : builder.createOp(spv::OpCooperativeMatrixLoadNV, typeId, idImmOps);
         // store the result to the pointer (out param 'm')
         builder.createStore(result, operands[0]);
         result = 0;
-    } else if (node->getOp() == glslang::EOpCooperativeMatrixStore) {
+    } else if (node->getOp() == glslang::EOpCooperativeMatrixStore ||
+               node->getOp() == glslang::EOpCooperativeMatrixStoreNV) {
         std::vector<spv::IdImmediate> idImmOps;
 
         idImmOps.push_back(spv::IdImmediate(true, operands[1])); // buf
         idImmOps.push_back(spv::IdImmediate(true, operands[0])); // object
-        idImmOps.push_back(spv::IdImmediate(true, operands[2])); // stride
-        idImmOps.push_back(spv::IdImmediate(true, operands[3])); // colMajor
+        if (node->getOp() == glslang::EOpCooperativeMatrixStore) {
+            idImmOps.push_back(spv::IdImmediate(true, operands[3])); // matrixLayout
+            idImmOps.push_back(spv::IdImmediate(true, operands[2])); // stride
+        } else {
+            idImmOps.push_back(spv::IdImmediate(true, operands[2])); // stride
+            idImmOps.push_back(spv::IdImmediate(true, operands[3])); // colMajor
+        }
         idImmOps.insert(idImmOps.end(), memoryAccessOperands.begin(), memoryAccessOperands.end());
 
-        builder.createNoResultOp(spv::OpCooperativeMatrixStoreNV, idImmOps);
+        if (node->getOp() == glslang::EOpCooperativeMatrixStore)
+            builder.createNoResultOp(spv::OpCooperativeMatrixStoreKHR, idImmOps);
+        else
+            builder.createNoResultOp(spv::OpCooperativeMatrixStoreNV, idImmOps);
         result = 0;
     } else if (node->getOp() == glslang::EOpRayQueryGetIntersectionTriangleVertexPositionsEXT) {
         std::vector<spv::IdImmediate> idImmOps;
@@ -3690,19 +3719,45 @@
         spv::Id typeId = builder.makeArrayType(builder.makeVectorType(builder.makeFloatType(32), 3),
                                                builder.makeUintConstant(3), 0);
         // do the op
-        spv::Id result = builder.createOp(spv::OpRayQueryGetIntersectionTriangleVertexPositionsKHR, typeId, idImmOps);
+
+        spv::Op spvOp = spv::OpRayQueryGetIntersectionTriangleVertexPositionsKHR;
+
+        spv::Id result = builder.createOp(spvOp, typeId, idImmOps);
         // store the result to the pointer (out param 'm')
         builder.createStore(result, operands[2]);
         result = 0;
-    } else
-#endif
-    if (atomic) {
+    } else if (node->getOp() == glslang::EOpCooperativeMatrixMulAdd) {
+        uint32_t matrixOperands = 0;
+
+        // If the optional operand is present, initialize matrixOperands to that value.
+        if (glslangOperands.size() == 4 && glslangOperands[3]->getAsConstantUnion()) {
+            matrixOperands = glslangOperands[3]->getAsConstantUnion()->getConstArray()[0].getIConst();
+        }
+
+        // Determine Cooperative Matrix Operands bits from the signedness of the types.
+        if (isTypeSignedInt(glslangOperands[0]->getAsTyped()->getBasicType()))
+            matrixOperands |= spv::CooperativeMatrixOperandsMatrixASignedComponentsKHRMask;
+        if (isTypeSignedInt(glslangOperands[1]->getAsTyped()->getBasicType()))
+            matrixOperands |= spv::CooperativeMatrixOperandsMatrixBSignedComponentsKHRMask;
+        if (isTypeSignedInt(glslangOperands[2]->getAsTyped()->getBasicType()))
+            matrixOperands |= spv::CooperativeMatrixOperandsMatrixCSignedComponentsKHRMask;
+        if (isTypeSignedInt(node->getBasicType()))
+            matrixOperands |= spv::CooperativeMatrixOperandsMatrixResultSignedComponentsKHRMask;
+
+        std::vector<spv::IdImmediate> idImmOps;
+        idImmOps.push_back(spv::IdImmediate(true, operands[0]));
+        idImmOps.push_back(spv::IdImmediate(true, operands[1]));
+        idImmOps.push_back(spv::IdImmediate(true, operands[2]));
+        if (matrixOperands != 0)
+            idImmOps.push_back(spv::IdImmediate(false, matrixOperands));
+
+        result = builder.createOp(spv::OpCooperativeMatrixMulAddKHR, resultType(), idImmOps);
+    } else if (atomic) {
         // Handle all atomics
         glslang::TBasicType typeProxy = (node->getOp() == glslang::EOpAtomicStore)
             ? node->getSequence()[0]->getAsTyped()->getBasicType() : node->getBasicType();
         result = createAtomicOperation(node->getOp(), precision, resultType(), operands, typeProxy,
             lvalueCoherentFlags);
-#ifndef GLSLANG_WEB
     } else if (node->getOp() == glslang::EOpSpirvInst) {
         const auto& spirvInst = node->getSpirvInstruction();
         if (spirvInst.set == "") {
@@ -3729,7 +3784,6 @@
                 spirvInst.id, operands);
         }
         noReturnValue = node->getBasicType() == glslang::EbtVoid;
-#endif
     } else if (node->getOp() == glslang::EOpDebugPrintf) {
         if (!nonSemanticDebugPrintf) {
             nonSemanticDebugPrintf = builder.import("NonSemantic.DebugPrintf");
@@ -4034,10 +4088,8 @@
 
 void TGlslangToSpvTraverser::visitConstantUnion(glslang::TIntermConstantUnion* node)
 {
-#ifndef GLSLANG_WEB
     if (node->getQualifier().isSpirvLiteral())
         return; // Translated to a literal value, skip further processing
-#endif
 
     int nextConst = 0;
     spv::Id constant = createSpvConstantFromConstUnionArray(node->getType(), node->getConstArray(), nextConst, false);
@@ -4168,7 +4220,6 @@
         builder.clearAccessChain();
         break;
 
-#ifndef GLSLANG_WEB
     case glslang::EOpDemote:
         builder.createNoResultOp(spv::OpDemoteToHelperInvocationEXT);
         builder.addExtension(spv::E_SPV_EXT_demote_to_helper_invocation);
@@ -4180,7 +4231,6 @@
     case glslang::EOpIgnoreIntersectionKHR:
         builder.makeStatementTerminator(spv::OpIgnoreIntersectionKHR, "post-ignoreIntersectionKHR");
         break;
-#endif
 
     default:
         assert(0);
@@ -4222,7 +4272,6 @@
             else
                 builder.addCapability(spv::CapabilityStorageUniform16);
             break;
-#ifndef GLSLANG_WEB
         case spv::StorageClassPushConstant:
             builder.addIncorporatedExtension(spv::E_SPV_KHR_16bit_storage, spv::Spv_1_3);
             builder.addCapability(spv::CapabilityStoragePushConstant16);
@@ -4232,7 +4281,6 @@
             builder.addIncorporatedExtension(spv::E_SPV_KHR_16bit_storage, spv::Spv_1_3);
             builder.addCapability(spv::CapabilityStorageUniformBufferBlock16);
             break;
-#endif
         default:
             if (storageClass == spv::StorageClassWorkgroup &&
                 node->getType().getBasicType() == glslang::EbtBlock) {
@@ -4291,7 +4339,6 @@
         case glslang::EbtInt:      return builder.makeIntType(32);
         case glslang::EbtUint:     return builder.makeUintType(32);
         case glslang::EbtFloat:    return builder.makeFloatType(32);
-#ifndef GLSLANG_WEB
         case glslang::EbtFloat16:
             builder.addExtension(spv::E_SPV_AMD_gpu_shader_half_float_fetch);
             builder.addCapability(spv::CapabilityFloat16ImageAMD);
@@ -4304,7 +4351,6 @@
             builder.addExtension(spv::E_SPV_EXT_shader_image_int64);
             builder.addCapability(spv::CapabilityInt64ImageEXT);
             return builder.makeUintType(64);
-#endif
         default:
             assert(0);
             return builder.makeFloatType(32);
@@ -4349,6 +4395,16 @@
     return convertGlslangToSpvType(type, getExplicitLayout(type), type.getQualifier(), false, forwardReferenceOnly);
 }
 
+spv::LinkageType TGlslangToSpvTraverser::convertGlslangLinkageToSpv(glslang::TLinkType linkType)
+{
+    switch (linkType) {
+    case glslang::ELinkExport:
+        return spv::LinkageTypeExport;
+    default:
+        return spv::LinkageTypeMax;
+    }
+}
+
 // Do full recursive conversion of an arbitrary glslang type to a SPIR-V Id.
 // explicitLayout can be kept the same throughout the hierarchical recursive walk.
 // Mutually recursive with convertGlslangStructToSpvType().
@@ -4369,7 +4425,7 @@
         if (explicitLayout != glslang::ElpNone)
             spvType = builder.makeUintType(32);
         else
-            spvType = builder.makeBoolType(false);
+            spvType = builder.makeBoolType();
         break;
     case glslang::EbtInt:
         spvType = builder.makeIntType(32);
@@ -4380,7 +4436,6 @@
     case glslang::EbtFloat:
         spvType = builder.makeFloatType(32);
         break;
-#ifndef GLSLANG_WEB
     case glslang::EbtDouble:
         spvType = builder.makeFloatType(64);
         break;
@@ -4458,7 +4513,6 @@
             }
         }
         break;
-#endif
     case glslang::EbtSampler:
         {
             const glslang::TSampler& sampler = type.getSampler();
@@ -4507,7 +4561,6 @@
         spvType = builder.makeHitObjectNVType();
     }
     break;
-#ifndef GLSLANG_WEB
     case glslang::EbtSpirvType: {
         // GL_EXT_spirv_intrinsics
         const auto& spirvType = type.getSpirvType();
@@ -4515,26 +4568,27 @@
 
         std::vector<spv::IdImmediate> operands;
         for (const auto& typeParam : spirvType.typeParams) {
-            if (typeParam.constant != nullptr) {
+            if (typeParam.getAsConstant() != nullptr) {
                 // Constant expression
-                if (typeParam.constant->isLiteral()) {
-                    if (typeParam.constant->getBasicType() == glslang::EbtFloat) {
-                        float floatValue = static_cast<float>(typeParam.constant->getConstArray()[0].getDConst());
+                auto constant = typeParam.getAsConstant();
+                if (constant->isLiteral()) {
+                    if (constant->getBasicType() == glslang::EbtFloat) {
+                        float floatValue = static_cast<float>(constant->getConstArray()[0].getDConst());
                         unsigned literal;
                         static_assert(sizeof(literal) == sizeof(floatValue), "sizeof(unsigned) != sizeof(float)");
                         memcpy(&literal, &floatValue, sizeof(literal));
                         operands.push_back({false, literal});
-                    } else if (typeParam.constant->getBasicType() == glslang::EbtInt) {
-                        unsigned literal = typeParam.constant->getConstArray()[0].getIConst();
+                    } else if (constant->getBasicType() == glslang::EbtInt) {
+                        unsigned literal = constant->getConstArray()[0].getIConst();
                         operands.push_back({false, literal});
-                    } else if (typeParam.constant->getBasicType() == glslang::EbtUint) {
-                        unsigned literal = typeParam.constant->getConstArray()[0].getUConst();
+                    } else if (constant->getBasicType() == glslang::EbtUint) {
+                        unsigned literal = constant->getConstArray()[0].getUConst();
                         operands.push_back({false, literal});
-                    } else if (typeParam.constant->getBasicType() == glslang::EbtBool) {
-                        unsigned literal = typeParam.constant->getConstArray()[0].getBConst();
+                    } else if (constant->getBasicType() == glslang::EbtBool) {
+                        unsigned literal = constant->getConstArray()[0].getBConst();
                         operands.push_back({false, literal});
-                    } else if (typeParam.constant->getBasicType() == glslang::EbtString) {
-                        auto str = typeParam.constant->getConstArray()[0].getSConst()->c_str();
+                    } else if (constant->getBasicType() == glslang::EbtString) {
+                        auto str = constant->getConstArray()[0].getSConst()->c_str();
                         unsigned literal = 0;
                         char* literalPtr = reinterpret_cast<char*>(&literal);
                         unsigned charCount = 0;
@@ -4559,11 +4613,11 @@
                     } else
                         assert(0); // Unexpected type
                 } else
-                    operands.push_back({true, createSpvConstant(*typeParam.constant)});
+                    operands.push_back({true, createSpvConstant(*constant)});
             } else {
                 // Type specifier
-                assert(typeParam.type != nullptr);
-                operands.push_back({true, convertGlslangToSpvType(*typeParam.type)});
+                assert(typeParam.getAsType() != nullptr);
+                operands.push_back({true, convertGlslangToSpvType(*typeParam.getAsType())});
             }
         }
 
@@ -4572,7 +4626,6 @@
 
         break;
     }
-#endif
     default:
         assert(0);
         break;
@@ -4586,9 +4639,10 @@
             spvType = builder.makeVectorType(spvType, type.getVectorSize());
     }
 
-    if (type.isCoopMat()) {
+    if (type.isCoopMatNV()) {
         builder.addCapability(spv::CapabilityCooperativeMatrixNV);
         builder.addExtension(spv::E_SPV_NV_cooperative_matrix);
+
         if (type.getBasicType() == glslang::EbtFloat16)
             builder.addCapability(spv::CapabilityFloat16);
         if (type.getBasicType() == glslang::EbtUint8 ||
@@ -4596,11 +4650,29 @@
             builder.addCapability(spv::CapabilityInt8);
         }
 
-        spv::Id scope = makeArraySizeId(*type.getTypeParameters(), 1);
-        spv::Id rows = makeArraySizeId(*type.getTypeParameters(), 2);
-        spv::Id cols = makeArraySizeId(*type.getTypeParameters(), 3);
+        spv::Id scope = makeArraySizeId(*type.getTypeParameters()->arraySizes, 1);
+        spv::Id rows = makeArraySizeId(*type.getTypeParameters()->arraySizes, 2);
+        spv::Id cols = makeArraySizeId(*type.getTypeParameters()->arraySizes, 3);
 
-        spvType = builder.makeCooperativeMatrixType(spvType, scope, rows, cols);
+        spvType = builder.makeCooperativeMatrixTypeNV(spvType, scope, rows, cols);
+    }
+
+    if (type.isCoopMatKHR()) {
+        builder.addCapability(spv::CapabilityCooperativeMatrixKHR);
+        builder.addExtension(spv::E_SPV_KHR_cooperative_matrix);
+
+        if (type.getBasicType() == glslang::EbtFloat16)
+            builder.addCapability(spv::CapabilityFloat16);
+        if (type.getBasicType() == glslang::EbtUint8 || type.getBasicType() == glslang::EbtInt8) {
+            builder.addCapability(spv::CapabilityInt8);
+        }
+
+        spv::Id scope = makeArraySizeId(*type.getTypeParameters()->arraySizes, 0);
+        spv::Id rows = makeArraySizeId(*type.getTypeParameters()->arraySizes, 1);
+        spv::Id cols = makeArraySizeId(*type.getTypeParameters()->arraySizes, 2);
+        spv::Id use = builder.makeUintConstant(type.getCoopMatKHRuse());
+
+        spvType = builder.makeCooperativeMatrixTypeKHR(spvType, scope, rows, cols, use);
     }
 
     if (type.isArray()) {
@@ -4641,12 +4713,10 @@
         if (type.isSizedArray())
             spvType = builder.makeArrayType(spvType, makeArraySizeId(*type.getArraySizes(), 0), stride);
         else {
-#ifndef GLSLANG_WEB
             if (!lastBufferBlockMember) {
                 builder.addIncorporatedExtension("SPV_EXT_descriptor_indexing", spv::Spv_1_5);
                 builder.addCapability(spv::CapabilityRuntimeDescriptorArrayEXT);
             }
-#endif
             spvType = builder.makeRuntimeArray(spvType);
         }
         if (stride > 0)
@@ -4656,13 +4726,70 @@
     return spvType;
 }
 
+// Apply SPIR-V decorations to the SPIR-V object (provided by SPIR-V ID). If member index is provided, the
+// decorations are applied to this member.
+void TGlslangToSpvTraverser::applySpirvDecorate(const glslang::TType& type, spv::Id id, std::optional<int> member)
+{
+    assert(type.getQualifier().hasSpirvDecorate());
+
+    const glslang::TSpirvDecorate& spirvDecorate = type.getQualifier().getSpirvDecorate();
+
+    // Add spirv_decorate
+    for (auto& decorate : spirvDecorate.decorates) {
+        if (!decorate.second.empty()) {
+            std::vector<unsigned> literals;
+            TranslateLiterals(decorate.second, literals);
+            if (member.has_value())
+                builder.addMemberDecoration(id, *member, static_cast<spv::Decoration>(decorate.first), literals);
+            else
+                builder.addDecoration(id, static_cast<spv::Decoration>(decorate.first), literals);
+        } else {
+            if (member.has_value())
+                builder.addMemberDecoration(id, *member, static_cast<spv::Decoration>(decorate.first));
+            else
+                builder.addDecoration(id, static_cast<spv::Decoration>(decorate.first));
+        }
+    }
+
+    // Add spirv_decorate_id
+    if (member.has_value()) {
+        // spirv_decorate_id not applied to members
+        assert(spirvDecorate.decorateIds.empty());
+    } else {
+        for (auto& decorateId : spirvDecorate.decorateIds) {
+            std::vector<spv::Id> operandIds;
+            assert(!decorateId.second.empty());
+            for (auto extraOperand : decorateId.second) {
+                if (extraOperand->getQualifier().isFrontEndConstant())
+                    operandIds.push_back(createSpvConstant(*extraOperand));
+                else
+                    operandIds.push_back(getSymbolId(extraOperand->getAsSymbolNode()));
+            }
+            builder.addDecorationId(id, static_cast<spv::Decoration>(decorateId.first), operandIds);
+        }
+    }
+
+    // Add spirv_decorate_string
+    for (auto& decorateString : spirvDecorate.decorateStrings) {
+        std::vector<const char*> strings;
+        assert(!decorateString.second.empty());
+        for (auto extraOperand : decorateString.second) {
+            const char* string = extraOperand->getConstArray()[0].getSConst()->c_str();
+            strings.push_back(string);
+        }
+        if (member.has_value())
+            builder.addMemberDecoration(id, *member, static_cast<spv::Decoration>(decorateString.first), strings);
+        else
+            builder.addDecoration(id, static_cast<spv::Decoration>(decorateString.first), strings);
+    }
+}
+
 // TODO: this functionality should exist at a higher level, in creating the AST
 //
 // Identify interface members that don't have their required extension turned on.
 //
 bool TGlslangToSpvTraverser::filterMember(const glslang::TType& member)
 {
-#ifndef GLSLANG_WEB
     auto& extensions = glslangIntermediate->getRequestedExtensions();
 
     if (member.getFieldName() == "gl_SecondaryViewportMaskNV" &&
@@ -4672,6 +4799,12 @@
         extensions.find("GL_NV_stereo_view_rendering") == extensions.end())
         return true;
 
+    if (glslangIntermediate->getStage() == EShLangMesh) {
+        if (member.getFieldName() == "gl_PrimitiveShadingRateEXT" &&
+            extensions.find("GL_EXT_fragment_shading_rate") == extensions.end())
+            return true;
+    }
+
     if (glslangIntermediate->getStage() != EShLangMesh) {
         if (member.getFieldName() == "gl_ViewportMask" &&
             extensions.find("GL_NV_viewport_array2") == extensions.end())
@@ -4683,7 +4816,6 @@
             extensions.find("GL_NVX_multiview_per_view_attributes") == extensions.end())
             return true;
     }
-#endif
 
     return false;
 };
@@ -4814,14 +4946,11 @@
                 glslangIntermediate->getSource() == glslang::EShSourceHlsl) {
                 builder.addMemberDecoration(spvType, member, TranslateInterpolationDecoration(memberQualifier));
                 builder.addMemberDecoration(spvType, member, TranslateAuxiliaryStorageDecoration(memberQualifier));
-#ifndef GLSLANG_WEB
                 addMeshNVDecoration(spvType, member, memberQualifier);
-#endif
             }
         }
         builder.addMemberDecoration(spvType, member, TranslateInvariantDecoration(memberQualifier));
 
-#ifndef GLSLANG_WEB
         if (type.getBasicType() == glslang::EbtBlock &&
             qualifier.storage == glslang::EvqBuffer) {
             // Add memory decorations only to top-level members of shader storage block
@@ -4831,8 +4960,6 @@
                 builder.addMemberDecoration(spvType, member, memory[i]);
         }
 
-#endif
-
         // Location assignment was already completed correctly by the front end,
         // just track whether a member needs to be decorated.
         // Ignore member locations if the container is an array, as that's
@@ -4865,7 +4992,6 @@
         if (builtIn != spv::BuiltInMax)
             builder.addMemberDecoration(spvType, member, spv::DecorationBuiltIn, (int)builtIn);
 
-#ifndef GLSLANG_WEB
         // nonuniform
         builder.addMemberDecoration(spvType, member, TranslateNonUniformDecoration(glslangMember.getQualifier()));
 
@@ -4896,38 +5022,9 @@
             builder.addExtension(spv::E_SPV_NV_geometry_shader_passthrough);
         }
 
-        //
-        // Add SPIR-V decorations for members (GL_EXT_spirv_intrinsics)
-        //
-        if (glslangMember.getQualifier().hasSprivDecorate()) {
-            const glslang::TSpirvDecorate& spirvDecorate = glslangMember.getQualifier().getSpirvDecorate();
-
-            // Add spirv_decorate
-            for (auto& decorate : spirvDecorate.decorates) {
-                if (!decorate.second.empty()) {
-                    std::vector<unsigned> literals;
-                    TranslateLiterals(decorate.second, literals);
-                    builder.addMemberDecoration(spvType, member, static_cast<spv::Decoration>(decorate.first), literals);
-                }
-                else
-                    builder.addMemberDecoration(spvType, member, static_cast<spv::Decoration>(decorate.first));
-            }
-
-            // spirv_decorate_id not applied to members
-            assert(spirvDecorate.decorateIds.empty());
-
-            // Add spirv_decorate_string
-            for (auto& decorateString : spirvDecorate.decorateStrings) {
-                std::vector<const char*> strings;
-                assert(!decorateString.second.empty());
-                for (auto extraOperand : decorateString.second) {
-                    const char* string = extraOperand->getConstArray()[0].getSConst()->c_str();
-                    strings.push_back(string);
-                }
-                builder.addDecoration(spvType, static_cast<spv::Decoration>(decorateString.first), strings);
-            }
-        }
-#endif
+        // Add SPIR-V decorations (GL_EXT_spirv_intrinsics)
+        if (glslangMember.getQualifier().hasSpirvDecorate())
+            applySpirvDecorate(glslangMember, spvType, member);
     }
 
     // Decorate the structure
@@ -4951,7 +5048,7 @@
 // This is not quite trivial, because of specialization constants.
 // Sometimes, a raw constant is turned into an Id, and sometimes
 // a specialization constant expression is.
-spv::Id TGlslangToSpvTraverser::makeArraySizeId(const glslang::TArraySizes& arraySizes, int dim)
+spv::Id TGlslangToSpvTraverser::makeArraySizeId(const glslang::TArraySizes& arraySizes, int dim, bool allowZero)
 {
     // First, see if this is sized with a node, meaning a specialization constant:
     glslang::TIntermTyped* specNode = arraySizes.getDimNode(dim);
@@ -4965,7 +5062,10 @@
 
     // Otherwise, need a compile-time (front end) size, get it:
     int size = arraySizes.getDimSize(dim);
-    assert(size > 0);
+
+    if (!allowZero)
+        assert(size > 0);
+
     return builder.makeUintConstant(size);
 }
 
@@ -5270,7 +5370,6 @@
     switch (glslangBuiltIn)
     {
     case glslang::EbvPointSize:
-#ifndef GLSLANG_WEB
     case glslang::EbvClipDistance:
     case glslang::EbvCullDistance:
     case glslang::EbvViewportMaskNV:
@@ -5286,7 +5385,6 @@
     case glslang::EbvLayerPerViewNV:
     case glslang::EbvMeshViewCountNV:
     case glslang::EbvMeshViewIndicesNV:
-#endif
         // Generate the associated capability.  Delegate to TranslateBuiltInDecoration.
         // Alternately, we could just call this for any glslang built-in, since the
         // capability already guards against duplicates.
@@ -5326,9 +5424,7 @@
     if (glslangIntermediate->getSource() == glslang::EShSourceHlsl)
         return paramType.getBasicType() == glslang::EbtBlock;
     return (paramType.containsOpaque() && !glslangIntermediate->getBindlessMode()) ||       // sampler, etc.
-#ifndef GLSLANG_WEB
            paramType.getQualifier().isSpirvByReference() ||                                    // spirv_by_reference
-#endif
            (paramType.getBasicType() == glslang::EbtBlock && qualifier == glslang::EvqBuffer); // SSBO
 }
 
@@ -5358,9 +5454,17 @@
 
     for (int f = 0; f < (int)glslFunctions.size(); ++f) {
         glslang::TIntermAggregate* glslFunction = glslFunctions[f]->getAsAggregate();
-        if (! glslFunction || glslFunction->getOp() != glslang::EOpFunction || isShaderEntryPoint(glslFunction))
+        if (! glslFunction || glslFunction->getOp() != glslang::EOpFunction)
             continue;
-
+        if (isShaderEntryPoint(glslFunction)) {
+            if (glslangIntermediate->getSource() != glslang::EShSourceHlsl) {
+                builder.setupDebugFunctionEntry(shaderEntry, glslangIntermediate->getEntryPointMangledName().c_str(),
+                                                glslFunction->getLoc().line,
+                                                std::vector<spv::Id>(), // main function has no param
+                                                std::vector<char const*>());
+            }
+            continue;
+        }
         // We're on a user function.  Set up the basic interface for the function now,
         // so that it's available to call.  Translating the body will happen later.
         //
@@ -5406,10 +5510,12 @@
         }
 
         spv::Block* functionBlock;
-        spv::Function *function = builder.makeFunctionEntry(TranslatePrecisionDecoration(glslFunction->getType()),
-                                                            convertGlslangToSpvType(glslFunction->getType()),
-                                                            glslFunction->getName().c_str(), paramTypes, paramNames,
-                                                            paramDecorations, &functionBlock);
+        spv::Function* function = builder.makeFunctionEntry(
+            TranslatePrecisionDecoration(glslFunction->getType()), convertGlslangToSpvType(glslFunction->getType()),
+            glslFunction->getName().c_str(), convertGlslangLinkageToSpv(glslFunction->getLinkType()), paramTypes,
+            paramDecorations, &functionBlock);
+        builder.setupDebugFunctionEntry(function, glslFunction->getName().c_str(), glslFunction->getLoc().line,
+                                        paramTypes, paramNames);
         if (implicitThis)
             function->setImplicitThis();
 
@@ -5512,23 +5618,18 @@
 
     glslang::TSampler sampler = {};
     bool cubeCompare = false;
-#ifndef GLSLANG_WEB
     bool f16ShadowCompare = false;
-#endif
     if (node.isTexture() || node.isImage()) {
         sampler = glslangArguments[0]->getAsTyped()->getType().getSampler();
         cubeCompare = sampler.dim == glslang::EsdCube && sampler.arrayed && sampler.shadow;
-#ifndef GLSLANG_WEB
         f16ShadowCompare = sampler.shadow &&
             glslangArguments[1]->getAsTyped()->getType().getBasicType() == glslang::EbtFloat16;
-#endif
     }
 
     for (int i = 0; i < (int)glslangArguments.size(); ++i) {
         builder.clearAccessChain();
         glslangArguments[i]->traverse(this);
 
-#ifndef GLSLANG_WEB
         // Special case l-value operands
         bool lvalue = false;
         switch (node.getOp()) {
@@ -5639,7 +5740,6 @@
             builder.addDecoration(lvalue_id, TranslateNonUniformDecoration(lvalueCoherentFlags));
             lvalueCoherentFlags |= TranslateCoherent(glslangArguments[i]->getAsTyped()->getType());
         } else
-#endif
             arguments.push_back(accessChainLoad(glslangArguments[i]->getAsTyped()->getType()));
     }
 }
@@ -5664,13 +5764,9 @@
                                         ? node->getAsAggregate()->getSequence()[0]->getAsTyped()->getType()
                                         : node->getAsUnaryNode()->getOperand()->getAsTyped()->getType();
     const glslang::TSampler sampler = imageType.getSampler();
-#ifdef GLSLANG_WEB
-    const bool f16ShadowCompare = false;
-#else
     bool f16ShadowCompare = (sampler.shadow && node->getAsAggregate())
             ? node->getAsAggregate()->getSequence()[1]->getAsTyped()->getType().getBasicType() == glslang::EbtFloat16
             : false;
-#endif
 
     const auto signExtensionMask = [&]() {
         if (builder.getSpvVersion() >= spv::Spv_1_4) {
@@ -5716,7 +5812,6 @@
                 return builder.createTextureQueryCall(spv::OpImageQuerySizeLod, params, isUnsignedResult);
             } else
                 return builder.createTextureQueryCall(spv::OpImageQuerySize, params, isUnsignedResult);
-#ifndef GLSLANG_WEB
         case glslang::EOpImageQuerySamples:
         case glslang::EOpTextureQuerySamples:
             return builder.createTextureQueryCall(spv::OpImageQuerySamples, params, isUnsignedResult);
@@ -5727,7 +5822,6 @@
             return builder.createTextureQueryCall(spv::OpImageQueryLevels, params, isUnsignedResult);
         case glslang::EOpSparseTexelsResident:
             return builder.createUnaryOp(spv::OpImageSparseTexelsResident, builder.makeBoolType(), arguments[0]);
-#endif
         default:
             assert(0);
             break;
@@ -5969,7 +6063,6 @@
         }
     }
 
-#ifndef GLSLANG_WEB
     // Check for fragment mask functions other than queries
     if (cracked.fragMask) {
         assert(sampler.ms);
@@ -6003,7 +6096,6 @@
         builder.addCapability(spv::CapabilityFragmentMaskAMD);
         return builder.createOp(fragMaskOp, resultType(), operands);
     }
-#endif
 
     // Check for texture functions other than queries
     bool sparse = node->isSparseTexture();
@@ -6037,7 +6129,6 @@
             bias = true;
     }
 
-#ifndef GLSLANG_WEB
     if (cracked.gather) {
         const auto& sourceExtensions = glslangIntermediate->getRequestedExtensions();
         if (bias || cracked.lod ||
@@ -6046,7 +6137,6 @@
             builder.addCapability(spv::CapabilityImageGatherBiasLodAMD);
         }
     }
-#endif
 
     // set the rest of the arguments
 
@@ -6106,7 +6196,6 @@
         ++extraArgs;
     }
 
-#ifndef GLSLANG_WEB
     // lod clamp
     if (cracked.lodClamp) {
         params.lodClamp = arguments[2 + extraArgs];
@@ -6135,14 +6224,13 @@
         resultStruct = arguments[4 + extraArgs];
         extraArgs += 3;
     }
-#endif
+
     // bias
     if (bias) {
         params.bias = arguments[2 + extraArgs];
         ++extraArgs;
     }
 
-#ifndef GLSLANG_WEB
     if (imageFootprint) {
         builder.addExtension(spv::E_SPV_NV_shader_image_footprint);
         builder.addCapability(spv::CapabilityImageFootprintNV);
@@ -6200,7 +6288,6 @@
         }
         return builder.createCompositeExtract(res, resultType(), 0);
     }
-#endif
 
     // projective component (might not to move)
     // GLSL: "The texture coordinates consumed from P, not including the last component of P,
@@ -6225,7 +6312,6 @@
         }
     }
 
-#ifndef GLSLANG_WEB
     // nonprivate
     if (imageType.getQualifier().nonprivate) {
         params.nonprivate = true;
@@ -6235,7 +6321,6 @@
     if (imageType.getQualifier().volatil) {
         params.volatil = true;
     }
-#endif
 
     std::vector<spv::Id> result( 1,
         builder.createTextureCall(precision, resultType(), sparse, cracked.fetch, cracked.proj, cracked.gather,
@@ -6889,7 +6974,6 @@
     case glslang::EOpUnpackHalf2x16:
         libCall = spv::GLSLstd450UnpackHalf2x16;
         break;
-#ifndef GLSLANG_WEB
     case glslang::EOpPackSnorm4x8:
         libCall = spv::GLSLstd450PackSnorm4x8;
         break;
@@ -6908,7 +6992,6 @@
     case glslang::EOpUnpackDouble2x32:
         libCall = spv::GLSLstd450UnpackDouble2x32;
         break;
-#endif
 
     case glslang::EOpPackInt2x32:
     case glslang::EOpUnpackInt2x32:
@@ -6963,7 +7046,6 @@
             libCall = spv::GLSLstd450SSign;
         break;
 
-#ifndef GLSLANG_WEB
     case glslang::EOpDPdxFine:
         unaryOp = spv::OpDPdxFine;
         break;
@@ -7105,7 +7187,9 @@
     case glslang::EOpSubgroupExclusiveXor:
     case glslang::EOpSubgroupQuadSwapHorizontal:
     case glslang::EOpSubgroupQuadSwapVertical:
-    case glslang::EOpSubgroupQuadSwapDiagonal: {
+    case glslang::EOpSubgroupQuadSwapDiagonal:
+    case glslang::EOpSubgroupQuadAll:
+    case glslang::EOpSubgroupQuadAny: {
         std::vector<spv::Id> operands;
         operands.push_back(operand);
         return createSubgroupOperation(op, typeId, operands, typeProxy);
@@ -7212,7 +7296,13 @@
         unaryOp = spv::OpHitObjectGetShaderRecordBufferHandleNV;
         break;
 
-#endif
+    case glslang::EOpFetchMicroTriangleVertexPositionNV:
+        unaryOp = spv::OpFetchMicroTriangleVertexPositionNV;
+        break;
+
+    case glslang::EOpFetchMicroTriangleVertexBarycentricNV:
+        unaryOp = spv::OpFetchMicroTriangleVertexBarycentricNV;
+        break;
 
     case glslang::EOpCopyObject:
         unaryOp = spv::OpCopyObject;
@@ -7287,7 +7377,9 @@
 // For converting integers where both the bitwidth and the signedness could
 // change, but only do the width change here. The caller is still responsible
 // for the signedness conversion.
-spv::Id TGlslangToSpvTraverser::createIntWidthConversion(glslang::TOperator op, spv::Id operand, int vectorSize)
+// destType is the final type that will be converted to, but this function
+// may only be doing part of that conversion.
+spv::Id TGlslangToSpvTraverser::createIntWidthConversion(glslang::TOperator op, spv::Id operand, int vectorSize, spv::Id destType)
 {
     // Get the result type width, based on the type to convert to.
     int width = 32;
@@ -7358,6 +7450,11 @@
 
     if (vectorSize > 0)
         type = builder.makeVectorType(type, vectorSize);
+    else if (builder.getOpCode(destType) == spv::OpTypeCooperativeMatrixKHR ||
+             builder.getOpCode(destType) == spv::OpTypeCooperativeMatrixNV) {
+
+        type = builder.makeCooperativeMatrixTypeWithSameShape(type, destType);
+    }
 
     return builder.createUnaryOp(convOp, type, operand);
 }
@@ -7389,13 +7486,10 @@
 
     case glslang::EOpConvBoolToInt:
     case glslang::EOpConvBoolToInt64:
-#ifndef GLSLANG_WEB
         if (op == glslang::EOpConvBoolToInt64) {
             zero = builder.makeInt64Constant(0);
             one = builder.makeInt64Constant(1);
-        } else
-#endif
-        {
+        } else {
             zero = builder.makeIntConstant(0);
             one = builder.makeIntConstant(1);
         }
@@ -7405,13 +7499,10 @@
 
     case glslang::EOpConvBoolToUint:
     case glslang::EOpConvBoolToUint64:
-#ifndef GLSLANG_WEB
         if (op == glslang::EOpConvBoolToUint64) {
             zero = builder.makeUint64Constant(0);
             one = builder.makeUint64Constant(1);
-        } else
-#endif
-        {
+        } else {
             zero = builder.makeUintConstant(0);
             one = builder.makeUintConstant(1);
         }
@@ -7474,16 +7565,13 @@
     case glslang::EOpConvInt64ToUint64:
         if (builder.isInSpecConstCodeGenMode()) {
             // Build zero scalar or vector for OpIAdd.
-#ifndef GLSLANG_WEB
             if(op == glslang::EOpConvUint8ToInt8 || op == glslang::EOpConvInt8ToUint8) {
                 zero = builder.makeUint8Constant(0);
             } else if (op == glslang::EOpConvUint16ToInt16 || op == glslang::EOpConvInt16ToUint16) {
                 zero = builder.makeUint16Constant(0);
             } else if (op == glslang::EOpConvUint64ToInt64 || op == glslang::EOpConvInt64ToUint64) {
                 zero = builder.makeUint64Constant(0);
-            } else
-#endif
-            {
+            } else {
                 zero = builder.makeUintConstant(0);
             }
             zero = makeSmearedConstant(zero, vectorSize);
@@ -7510,7 +7598,6 @@
         convOp = spv::OpConvertFToU;
         break;
 
-#ifndef GLSLANG_WEB
     case glslang::EOpConvInt8ToBool:
     case glslang::EOpConvUint8ToBool:
         zero = builder.makeUint8Constant(0);
@@ -7630,7 +7717,7 @@
     case glslang::EOpConvUint64ToInt16:
     case glslang::EOpConvUint64ToInt:
         // OpSConvert/OpUConvert + OpBitCast
-        operand = createIntWidthConversion(op, operand, vectorSize);
+        operand = createIntWidthConversion(op, operand, vectorSize, destType);
 
         if (builder.isInSpecConstCodeGenMode()) {
             // Build zero scalar or vector for OpIAdd.
@@ -7689,7 +7776,6 @@
     case glslang::EOpConvUvec2ToPtr:
         convOp = spv::OpBitcast;
         break;
-#endif
 
     default:
         break;
@@ -8208,6 +8294,11 @@
     case glslang::EOpSubgroupElect:
         builder.addCapability(spv::CapabilityGroupNonUniform);
         break;
+    case glslang::EOpSubgroupQuadAll:
+    case glslang::EOpSubgroupQuadAny:
+        builder.addExtension(spv::E_SPV_KHR_quad_control);
+        builder.addCapability(spv::CapabilityQuadControlKHR);
+        // pass through
     case glslang::EOpSubgroupAll:
     case glslang::EOpSubgroupAny:
     case glslang::EOpSubgroupAllEqual:
@@ -8227,6 +8318,11 @@
         builder.addCapability(spv::CapabilityGroupNonUniform);
         builder.addCapability(spv::CapabilityGroupNonUniformBallot);
         break;
+    case glslang::EOpSubgroupRotate:
+    case glslang::EOpSubgroupClusteredRotate:
+        builder.addExtension(spv::E_SPV_KHR_subgroup_rotate);
+        builder.addCapability(spv::CapabilityGroupNonUniformRotateKHR);
+        break;
     case glslang::EOpSubgroupShuffle:
     case glslang::EOpSubgroupShuffleXor:
         builder.addCapability(spv::CapabilityGroupNonUniform);
@@ -8315,7 +8411,9 @@
     // Figure out which opcode to use.
     switch (op) {
     case glslang::EOpSubgroupElect:                   opCode = spv::OpGroupNonUniformElect; break;
+    case glslang::EOpSubgroupQuadAll:                 opCode = spv::OpGroupNonUniformQuadAllKHR; break;
     case glslang::EOpSubgroupAll:                     opCode = spv::OpGroupNonUniformAll; break;
+    case glslang::EOpSubgroupQuadAny:                 opCode = spv::OpGroupNonUniformQuadAnyKHR; break;
     case glslang::EOpSubgroupAny:                     opCode = spv::OpGroupNonUniformAny; break;
     case glslang::EOpSubgroupAllEqual:                opCode = spv::OpGroupNonUniformAllEqual; break;
     case glslang::EOpSubgroupBroadcast:               opCode = spv::OpGroupNonUniformBroadcast; break;
@@ -8332,6 +8430,8 @@
     case glslang::EOpSubgroupShuffleXor:              opCode = spv::OpGroupNonUniformShuffleXor; break;
     case glslang::EOpSubgroupShuffleUp:               opCode = spv::OpGroupNonUniformShuffleUp; break;
     case glslang::EOpSubgroupShuffleDown:             opCode = spv::OpGroupNonUniformShuffleDown; break;
+    case glslang::EOpSubgroupRotate:
+    case glslang::EOpSubgroupClusteredRotate:         opCode = spv::OpGroupNonUniformRotateKHR; break;
     case glslang::EOpSubgroupAdd:
     case glslang::EOpSubgroupInclusiveAdd:
     case glslang::EOpSubgroupExclusiveAdd:
@@ -8512,7 +8612,10 @@
 
     // Every operation begins with the Execution Scope operand.
     spv::IdImmediate executionScope = { true, builder.makeUintConstant(spv::ScopeSubgroup) };
-    spvGroupOperands.push_back(executionScope);
+    // All other ops need the execution scope. Quad Control Ops don't need scope, it's always Quad.
+    if (opCode != spv::OpGroupNonUniformQuadAllKHR && opCode != spv::OpGroupNonUniformQuadAnyKHR) {
+        spvGroupOperands.push_back(executionScope);
+    }
 
     // Next, for all operations that use a Group Operation, push that as an operand.
     if (groupOperation != spv::GroupOperationMax) {
@@ -8681,7 +8784,6 @@
         }
         break;
 
-#ifndef GLSLANG_WEB
     case glslang::EOpInterpolateAtSample:
         if (typeProxy == glslang::EbtFloat16)
             builder.addExtension(spv::E_SPV_AMD_gpu_shader_half_float);
@@ -8756,6 +8858,8 @@
     case glslang::EOpSubgroupShuffleXor:
     case glslang::EOpSubgroupShuffleUp:
     case glslang::EOpSubgroupShuffleDown:
+    case glslang::EOpSubgroupRotate:
+    case glslang::EOpSubgroupClusteredRotate:
     case glslang::EOpSubgroupClusteredAdd:
     case glslang::EOpSubgroupClusteredMul:
     case glslang::EOpSubgroupClusteredMin:
@@ -8963,7 +9067,7 @@
     case glslang::EOpSetMeshOutputsEXT:
         builder.createNoResultOp(spv::OpSetMeshOutputsEXT, operands);
         return 0;
-    case glslang::EOpCooperativeMatrixMulAdd:
+    case glslang::EOpCooperativeMatrixMulAddNV:
         opCode = spv::OpCooperativeMatrixMulAddNV;
         break;
     case glslang::EOpHitObjectTraceRayNV:
@@ -9081,8 +9185,39 @@
         return 0;
 
     }
+
+    case glslang::EOpImageSampleWeightedQCOM:
+        typeId = builder.makeVectorType(builder.makeFloatType(32), 4);
+        opCode = spv::OpImageSampleWeightedQCOM;
+        addImageProcessingQCOMDecoration(operands[2], spv::DecorationWeightTextureQCOM);
         break;
-#endif // GLSLANG_WEB
+    case glslang::EOpImageBoxFilterQCOM:
+        typeId = builder.makeVectorType(builder.makeFloatType(32), 4);
+        opCode = spv::OpImageBoxFilterQCOM;
+        break;
+    case glslang::EOpImageBlockMatchSADQCOM:
+        typeId = builder.makeVectorType(builder.makeFloatType(32), 4);
+        opCode = spv::OpImageBlockMatchSADQCOM;
+        addImageProcessingQCOMDecoration(operands[0], spv::DecorationBlockMatchTextureQCOM);
+        addImageProcessingQCOMDecoration(operands[2], spv::DecorationBlockMatchTextureQCOM);
+        break;
+    case glslang::EOpImageBlockMatchSSDQCOM:
+        typeId = builder.makeVectorType(builder.makeFloatType(32), 4);
+        opCode = spv::OpImageBlockMatchSSDQCOM;
+        addImageProcessingQCOMDecoration(operands[0], spv::DecorationBlockMatchTextureQCOM);
+        addImageProcessingQCOMDecoration(operands[2], spv::DecorationBlockMatchTextureQCOM);
+        break;
+
+    case glslang::EOpFetchMicroTriangleVertexBarycentricNV:
+        typeId = builder.makeVectorType(builder.makeFloatType(32), 2);
+        opCode = spv::OpFetchMicroTriangleVertexBarycentricNV;
+        break;
+
+    case glslang::EOpFetchMicroTriangleVertexPositionNV:
+        typeId = builder.makeVectorType(builder.makeFloatType(32), 3);
+        opCode = spv::OpFetchMicroTriangleVertexPositionNV;
+        break;
+
     default:
         return 0;
     }
@@ -9126,7 +9261,6 @@
         }
     }
 
-#ifndef GLSLANG_WEB
     // Decode the return types that were structures
     switch (op) {
     case glslang::EOpAddCarry:
@@ -9156,7 +9290,6 @@
     default:
         break;
     }
-#endif
 
     return builder.setPrecision(id, precision);
 }
@@ -9201,7 +9334,6 @@
         builder.createMemoryBarrier(spv::ScopeWorkgroup, spv::MemorySemanticsAllMemory |
                                                          spv::MemorySemanticsAcquireReleaseMask);
         return 0;
-#ifndef GLSLANG_WEB
     case glslang::EOpMemoryBarrierAtomicCounter:
         builder.createMemoryBarrier(memoryBarrierScope, spv::MemorySemanticsAtomicCounterMemoryMask |
                                                         spv::MemorySemanticsAcquireReleaseMask);
@@ -9320,7 +9452,6 @@
         builder.addCapability(spv::CapabilityShaderClockKHR);
         return builder.createOp(spv::OpReadClockKHR, typeId, args);
     }
-#endif
     case glslang::EOpStencilAttachmentReadEXT:
     case glslang::EOpDepthAttachmentReadEXT:
     {
@@ -9400,13 +9531,11 @@
         builder.addDecoration(id, TranslatePrecisionDecoration(symbol->getType()));
         builder.addDecoration(id, TranslateInterpolationDecoration(symbol->getType().getQualifier()));
         builder.addDecoration(id, TranslateAuxiliaryStorageDecoration(symbol->getType().getQualifier()));
-#ifndef GLSLANG_WEB
         addMeshNVDecoration(id, /*member*/ -1, symbol->getType().getQualifier());
         if (symbol->getQualifier().hasComponent())
             builder.addDecoration(id, spv::DecorationComponent, symbol->getQualifier().layoutComponent);
         if (symbol->getQualifier().hasIndex())
             builder.addDecoration(id, spv::DecorationIndex, symbol->getQualifier().layoutIndex);
-#endif
         if (symbol->getType().getQualifier().hasSpecConstantId())
             builder.addDecoration(id, spv::DecorationSpecId, symbol->getType().getQualifier().layoutSpecConstantId);
         // atomic counters use this:
@@ -9476,7 +9605,6 @@
         builder.addDecoration(id, spv::DecorationVolatile);
     }
 
-#ifndef GLSLANG_WEB
     // Subgroup builtins which have input storage class are volatile for ray tracing stages.
     if (symbol->getType().isImage() || symbol->getQualifier().isPipeInput()) {
         std::vector<spv::Decoration> memory;
@@ -9542,53 +9670,13 @@
             spv::DecorationRestrictPointerEXT : spv::DecorationAliasedPointerEXT);
     }
 
-    //
-    // Add SPIR-V decorations for structure (GL_EXT_spirv_intrinsics)
-    //
-    if (symbol->getType().getQualifier().hasSprivDecorate()) {
-        const glslang::TSpirvDecorate& spirvDecorate = symbol->getType().getQualifier().getSpirvDecorate();
-
-        // Add spirv_decorate
-        for (auto& decorate : spirvDecorate.decorates) {
-            if (!decorate.second.empty()) {
-                std::vector<unsigned> literals;
-                TranslateLiterals(decorate.second, literals);
-                builder.addDecoration(id, static_cast<spv::Decoration>(decorate.first), literals);
-            }
-            else
-                builder.addDecoration(id, static_cast<spv::Decoration>(decorate.first));
-        }
-
-        // Add spirv_decorate_id
-        for (auto& decorateId : spirvDecorate.decorateIds) {
-            std::vector<spv::Id> operandIds;
-            assert(!decorateId.second.empty());
-            for (auto extraOperand : decorateId.second) {
-                if (extraOperand->getQualifier().isFrontEndConstant())
-                    operandIds.push_back(createSpvConstant(*extraOperand));
-                else
-                    operandIds.push_back(getSymbolId(extraOperand->getAsSymbolNode()));
-            }
-            builder.addDecorationId(id, static_cast<spv::Decoration>(decorateId.first), operandIds);
-        }
-
-        // Add spirv_decorate_string
-        for (auto& decorateString : spirvDecorate.decorateStrings) {
-            std::vector<const char*> strings;
-            assert(!decorateString.second.empty());
-            for (auto extraOperand : decorateString.second) {
-                const char* string = extraOperand->getConstArray()[0].getSConst()->c_str();
-                strings.push_back(string);
-            }
-            builder.addDecoration(id, static_cast<spv::Decoration>(decorateString.first), strings);
-        }
-    }
-#endif
+    // Add SPIR-V decorations (GL_EXT_spirv_intrinsics)
+    if (symbol->getType().getQualifier().hasSpirvDecorate())
+        applySpirvDecorate(symbol->getType(), id, {});
 
     return id;
 }
 
-#ifndef GLSLANG_WEB
 // add per-primitive, per-view. per-task decorations to a struct member (member >= 0) or an object
 void TGlslangToSpvTraverser::addMeshNVDecoration(spv::Id id, int member, const glslang::TQualifier& qualifier)
 {
@@ -9635,7 +9723,20 @@
             builder.addDecoration(id, spv::DecorationPerTaskNV);
     }
 }
-#endif
+
+void TGlslangToSpvTraverser::addImageProcessingQCOMDecoration(spv::Id id, spv::Decoration decor)
+{
+  spv::Op opc = builder.getOpCode(id);
+  if (opc == spv::OpSampledImage) {
+    id  = builder.getIdOperand(id, 0);
+    opc = builder.getOpCode(id);
+  }
+
+  if (opc == spv::OpLoad) {
+    spv::Id texid = builder.getIdOperand(id, 0);
+    builder.addDecoration(texid, decor);
+  }
+}
 
 // Make a full tree of instructions to build a SPIR-V specialization constant,
 // or regular constant if possible.
@@ -9763,7 +9864,6 @@
             case glslang::EbtBool:
                 spvConsts.push_back(builder.makeBoolConstant(zero ? false : consts[nextConst].getBConst()));
                 break;
-#ifndef GLSLANG_WEB
             case glslang::EbtInt8:
                 builder.addCapability(spv::CapabilityInt8);
                 spvConsts.push_back(builder.makeInt8Constant(zero ? 0 : consts[nextConst].getI8Const()));
@@ -9793,7 +9893,6 @@
                 builder.addCapability(spv::CapabilityFloat16);
                 spvConsts.push_back(builder.makeFloat16Constant(zero ? 0.0F : (float)consts[nextConst].getDConst()));
                 break;
-#endif
             default:
                 assert(0);
                 break;
@@ -9817,7 +9916,6 @@
         case glslang::EbtBool:
             scalar = builder.makeBoolConstant(zero ? false : consts[nextConst].getBConst(), specConstant);
             break;
-#ifndef GLSLANG_WEB
         case glslang::EbtInt8:
             builder.addCapability(spv::CapabilityInt8);
             scalar = builder.makeInt8Constant(zero ? 0 : consts[nextConst].getI8Const(), specConstant);
@@ -9851,7 +9949,6 @@
             scalar = builder.makeUint64Constant(zero ? 0 : consts[nextConst].getU64Const(), specConstant);
             scalar = builder.createUnaryOp(spv::OpBitcast, typeId, scalar);
             break;
-#endif
         case glslang::EbtString:
             scalar = builder.getStringId(consts[nextConst].getSConst()->c_str());
             break;
@@ -9999,7 +10096,6 @@
     return builder.createOp(spv::OpPhi, boolTypeId, phiOperands);
 }
 
-#ifndef GLSLANG_WEB
 // Return type Id of the imported set of extended instructions corresponds to the name.
 // Import this set if it has not been imported yet.
 spv::Id TGlslangToSpvTraverser::getExtBuiltins(const char* name)
@@ -10013,7 +10109,6 @@
         return extBuiltins;
     }
 }
-#endif
 
 };  // end anonymous namespace
 
@@ -10066,7 +10161,6 @@
 // Write SPIR-V out to a text file with 32-bit hexadecimal words
 bool OutputSpvHex(const std::vector<unsigned int>& spirv, const char* baseName, const char* varName)
 {
-#if !defined(GLSLANG_WEB)
     std::ofstream out;
     out.open(baseName, std::ios::binary | std::ios::out);
     if (out.fail()) {
@@ -10098,7 +10192,6 @@
         out << std::endl;
     }
     out.close();
-#endif
     return true;
 }
 
@@ -10127,7 +10220,7 @@
 
     TGlslangToSpvTraverser it(intermediate.getSpv().spv, &intermediate, logger, *options);
     root->traverse(&it);
-    it.finishSpv();
+    it.finishSpv(options->compileOnly);
     it.dumpSpv(spirv);
 
 #if ENABLE_OPT
diff --git a/SPIRV/GlslangToSpv.h b/SPIRV/GlslangToSpv.h
index b9736d7..1b9ef3c 100644
--- a/SPIRV/GlslangToSpv.h
+++ b/SPIRV/GlslangToSpv.h
@@ -35,19 +35,25 @@
 
 #pragma once
 
-#if defined(_MSC_VER) && _MSC_VER >= 1900
-    #pragma warning(disable : 4464) // relative include path contains '..'
-#endif
-
-#include "SpvTools.h"
-#include "glslang/Include/intermediate.h"
-
 #include <string>
 #include <vector>
 
 #include "Logger.h"
 
 namespace glslang {
+class TIntermediate;
+
+struct SpvOptions {
+    bool generateDebugInfo {false};
+    bool stripDebugInfo {false};
+    bool disableOptimizer {true};
+    bool optimizeSize {false};
+    bool disassemble {false};
+    bool validate {false};
+    bool emitNonSemanticShaderDebugInfo {false};
+    bool emitNonSemanticShaderDebugSource{ false };
+    bool compileOnly{false};
+};
 
 void GetSpirvVersion(std::string&);
 int GetSpirvGeneratorVersion();
diff --git a/SPIRV/Logger.cpp b/SPIRV/Logger.cpp
index cdc8469..48bd4e3 100644
--- a/SPIRV/Logger.cpp
+++ b/SPIRV/Logger.cpp
@@ -32,8 +32,6 @@
 // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 // POSSIBILITY OF SUCH DAMAGE.
 
-#ifndef GLSLANG_WEB
-
 #include "Logger.h"
 
 #include <algorithm>
@@ -68,5 +66,3 @@
 }
 
 } // end spv namespace
-
-#endif
diff --git a/SPIRV/Logger.h b/SPIRV/Logger.h
index 411367c..2e4ddaf 100644
--- a/SPIRV/Logger.h
+++ b/SPIRV/Logger.h
@@ -46,14 +46,6 @@
 public:
     SpvBuildLogger() {}
 
-#ifdef GLSLANG_WEB
-    void tbdFunctionality(const std::string& f) { }
-    void missingFunctionality(const std::string& f) { }
-    void warning(const std::string& w) { }
-    void error(const std::string& e) { errors.push_back(e); }
-    std::string getAllMessages() { return ""; }
-#else
-
     // Registers a TBD functionality.
     void tbdFunctionality(const std::string& f);
     // Registers a missing functionality.
@@ -67,7 +59,6 @@
     // Returns all messages accumulated in the order of:
     // TBD functionalities, missing functionalities, warnings, errors.
     std::string getAllMessages() const;
-#endif
 
 private:
     SpvBuildLogger(const SpvBuildLogger&);
diff --git a/SPIRV/SPVRemapper.cpp b/SPIRV/SPVRemapper.cpp
index 4b2c439..f8f50a9 100644
--- a/SPIRV/SPVRemapper.cpp
+++ b/SPIRV/SPVRemapper.cpp
@@ -680,6 +680,7 @@
             case spv::OperandKernelEnqueueFlags:
             case spv::OperandKernelProfilingInfo:
             case spv::OperandCapability:
+            case spv::OperandCooperativeMatrixOperands:
                 ++word;
                 break;
 
diff --git a/SPIRV/SPVRemapper.h b/SPIRV/SPVRemapper.h
index 42b0168..33efe33 100644
--- a/SPIRV/SPVRemapper.h
+++ b/SPIRV/SPVRemapper.h
@@ -77,9 +77,9 @@
 #include <cassert>
 
 #include "spirv.hpp"
-#include "spvIR.h"
 
 namespace spv {
+const Id NoResult = 0;
 
 // class to hold SPIR-V binary data for remapping, DCE, and debug stripping
 class spirvbin_t : public spirvbin_base_t
diff --git a/SPIRV/SpvBuilder.cpp b/SPIRV/SpvBuilder.cpp
index df5f234..b6752d2 100644
--- a/SPIRV/SpvBuilder.cpp
+++ b/SPIRV/SpvBuilder.cpp
@@ -46,10 +46,7 @@
 #include <algorithm>
 
 #include "SpvBuilder.h"
-
-#ifndef GLSLANG_WEB
 #include "hex_float.h"
-#endif
 
 #ifndef _WIN32
     #include <cstdio>
@@ -185,7 +182,7 @@
     return type->getResultId();
 }
 
-Id Builder::makeBoolType(bool const compilerGenerated)
+Id Builder::makeBoolType()
 {
     Instruction* type;
     if (groupedTypes[OpTypeBool].size() == 0) {
@@ -193,14 +190,15 @@
         groupedTypes[OpTypeBool].push_back(type);
         constantsTypesGlobals.push_back(std::unique_ptr<Instruction>(type));
         module.mapInstruction(type);
+
+        if (emitNonSemanticShaderDebugInfo) {
+            auto const debugResultId = makeBoolDebugType(32);
+            debugId[type->getResultId()] = debugResultId;
+        }
+
     } else
         type = groupedTypes[OpTypeBool].back();
 
-    if (emitNonSemanticShaderDebugInfo && !compilerGenerated)
-    {
-        auto const debugResultId = makeBoolDebugType(32);
-        debugId[type->getResultId()] = debugResultId;
-    }
 
     return type->getResultId();
 }
@@ -244,6 +242,11 @@
     constantsTypesGlobals.push_back(std::unique_ptr<Instruction>(type));
     module.mapInstruction(type);
 
+    if (emitNonSemanticShaderDebugInfo) {
+        const Id debugResultId = makePointerDebugType(storageClass, pointee);
+        debugId[type->getResultId()] = debugResultId;
+    }
+
     return type->getResultId();
 }
 
@@ -283,11 +286,6 @@
 
 Id Builder::makeIntegerType(int width, bool hasSign)
 {
-#ifdef GLSLANG_WEB
-    assert(width == 32);
-    width = 32;
-#endif
-
     // try to find it
     Instruction* type;
     for (int t = 0; t < (int)groupedTypes[OpTypeInt].size(); ++t) {
@@ -329,11 +327,6 @@
 
 Id Builder::makeFloatType(int width)
 {
-#ifdef GLSLANG_WEB
-    assert(width == 32);
-    width = 32;
-#endif
-
     // try to find it
     Instruction* type;
     for (int t = 0; t < (int)groupedTypes[OpTypeFloat].size(); ++t) {
@@ -481,15 +474,41 @@
     return type->getResultId();
 }
 
-Id Builder::makeCooperativeMatrixType(Id component, Id scope, Id rows, Id cols)
+Id Builder::makeCooperativeMatrixTypeKHR(Id component, Id scope, Id rows, Id cols, Id use)
+{
+    // try to find it
+    Instruction* type;
+    for (int t = 0; t < (int)groupedTypes[OpTypeCooperativeMatrixKHR].size(); ++t) {
+        type = groupedTypes[OpTypeCooperativeMatrixKHR][t];
+        if (type->getIdOperand(0) == component &&
+            type->getIdOperand(1) == scope &&
+            type->getIdOperand(2) == rows &&
+            type->getIdOperand(3) == cols &&
+            type->getIdOperand(4) == use)
+            return type->getResultId();
+    }
+
+    // not found, make it
+    type = new Instruction(getUniqueId(), NoType, OpTypeCooperativeMatrixKHR);
+    type->addIdOperand(component);
+    type->addIdOperand(scope);
+    type->addIdOperand(rows);
+    type->addIdOperand(cols);
+    type->addIdOperand(use);
+    groupedTypes[OpTypeCooperativeMatrixKHR].push_back(type);
+    constantsTypesGlobals.push_back(std::unique_ptr<Instruction>(type));
+    module.mapInstruction(type);
+
+    return type->getResultId();
+}
+
+Id Builder::makeCooperativeMatrixTypeNV(Id component, Id scope, Id rows, Id cols)
 {
     // try to find it
     Instruction* type;
     for (int t = 0; t < (int)groupedTypes[OpTypeCooperativeMatrixNV].size(); ++t) {
         type = groupedTypes[OpTypeCooperativeMatrixNV][t];
-        if (type->getIdOperand(0) == component &&
-            type->getIdOperand(1) == scope &&
-            type->getIdOperand(2) == rows &&
+        if (type->getIdOperand(0) == component && type->getIdOperand(1) == scope && type->getIdOperand(2) == rows &&
             type->getIdOperand(3) == cols)
             return type->getResultId();
     }
@@ -507,6 +526,17 @@
     return type->getResultId();
 }
 
+Id Builder::makeCooperativeMatrixTypeWithSameShape(Id component, Id otherType)
+{
+    Instruction* instr = module.getInstruction(otherType);
+    if (instr->getOpCode() == OpTypeCooperativeMatrixNV) {
+        return makeCooperativeMatrixTypeNV(component, instr->getIdOperand(1), instr->getIdOperand(2), instr->getIdOperand(3));
+    } else {
+        assert(instr->getOpCode() == OpTypeCooperativeMatrixKHR);
+        return makeCooperativeMatrixTypeKHR(component, instr->getIdOperand(1), instr->getIdOperand(2), instr->getIdOperand(3), instr->getIdOperand(4));
+    }
+}
+
 Id Builder::makeGenericType(spv::Op opcode, std::vector<spv::IdImmediate>& operands)
 {
     // try to find it
@@ -696,7 +726,6 @@
     constantsTypesGlobals.push_back(std::unique_ptr<Instruction>(type));
     module.mapInstruction(type);
 
-#ifndef GLSLANG_WEB
     // deal with capabilities
     switch (dim) {
     case DimBuffer:
@@ -742,7 +771,6 @@
                 addCapability(CapabilityImageMSArray);
         }
     }
-#endif
 
     if (emitNonSemanticShaderDebugInfo)
     {
@@ -837,11 +865,19 @@
 
 Id Builder::makeIntegerDebugType(int const width, bool const hasSign)
 {
+    const char* typeName = nullptr;
+    switch (width) {
+        case 8:  typeName = hasSign ? "int8_t" : "uint8_t"; break;
+        case 16: typeName = hasSign ? "int16_t" : "uint16_t"; break;
+        case 64: typeName = hasSign ? "int64_t" : "uint64_t"; break;
+        default: typeName = hasSign ? "int" : "uint";
+    }
+    auto nameId = getStringId(typeName);
     // try to find it
     Instruction* type;
     for (int t = 0; t < (int)groupedDebugTypes[NonSemanticShaderDebugInfo100DebugTypeBasic].size(); ++t) {
         type = groupedDebugTypes[NonSemanticShaderDebugInfo100DebugTypeBasic][t];
-        if (type->getIdOperand(0) == (hasSign ? getStringId("int") : getStringId("uint")) &&
+        if (type->getIdOperand(0) == nameId &&
             type->getIdOperand(1) == static_cast<unsigned int>(width) &&
             type->getIdOperand(2) == (hasSign ? NonSemanticShaderDebugInfo100Signed : NonSemanticShaderDebugInfo100Unsigned))
             return type->getResultId();
@@ -851,11 +887,7 @@
     type = new Instruction(getUniqueId(), makeVoidType(), OpExtInst);
     type->addIdOperand(nonSemanticShaderDebugInfo);
     type->addImmediateOperand(NonSemanticShaderDebugInfo100DebugTypeBasic);
-    if(hasSign == true) {
-        type->addIdOperand(getStringId("int")); // name id
-    } else {
-        type->addIdOperand(getStringId("uint")); // name id
-    }
+    type->addIdOperand(nameId); // name id
     type->addIdOperand(makeUintConstant(width)); // size id
     if(hasSign == true) {
         type->addIdOperand(makeUintConstant(NonSemanticShaderDebugInfo100Signed)); // encoding id
@@ -873,11 +905,18 @@
 
 Id Builder::makeFloatDebugType(int const width)
 {
+    const char* typeName = nullptr;
+    switch (width) {
+        case 16: typeName = "float16_t"; break;
+        case 64: typeName = "double"; break;
+        default: typeName = "float"; break;
+    }
+    auto nameId = getStringId(typeName);
     // try to find it
     Instruction* type;
     for (int t = 0; t < (int)groupedDebugTypes[NonSemanticShaderDebugInfo100DebugTypeBasic].size(); ++t) {
         type = groupedDebugTypes[NonSemanticShaderDebugInfo100DebugTypeBasic][t];
-        if (type->getIdOperand(0) == getStringId("float") &&
+        if (type->getIdOperand(0) == nameId &&
             type->getIdOperand(1) == static_cast<unsigned int>(width) &&
             type->getIdOperand(2) == NonSemanticShaderDebugInfo100Float)
             return type->getResultId();
@@ -887,7 +926,7 @@
     type = new Instruction(getUniqueId(), makeVoidType(), OpExtInst);
     type->addIdOperand(nonSemanticShaderDebugInfo);
     type->addImmediateOperand(NonSemanticShaderDebugInfo100DebugTypeBasic);
-    type->addIdOperand(getStringId("float")); // name id
+    type->addIdOperand(nameId); // name id
     type->addIdOperand(makeUintConstant(width)); // size id
     type->addIdOperand(makeUintConstant(NonSemanticShaderDebugInfo100Float)); // encoding id
     type->addIdOperand(makeUintConstant(NonSemanticShaderDebugInfo100None)); // flags id
@@ -934,7 +973,7 @@
 
 Id Builder::makeVectorDebugType(Id const baseType, int const componentCount)
 {
-    return makeSequentialDebugType(baseType, makeUintConstant(componentCount), NonSemanticShaderDebugInfo100DebugTypeVector);;
+    return makeSequentialDebugType(baseType, makeUintConstant(componentCount), NonSemanticShaderDebugInfo100DebugTypeVector);
 }
 
 Id Builder::makeMatrixDebugType(Id const vectorType, int const vectorCount, bool columnMajor)
@@ -996,7 +1035,10 @@
     for(auto const memberType : memberTypes) {
         assert(debugTypeLocs.find(memberType) != debugTypeLocs.end());
 
-        memberDebugTypes.emplace_back(makeMemberDebugType(memberType, debugTypeLocs[memberType]));
+        // There _should_ be debug types for all the member types but currently buffer references
+        // do not have member debug info generated.
+        if (debugId[memberType])
+            memberDebugTypes.emplace_back(makeMemberDebugType(memberType, debugTypeLocs[memberType]));
 
         // TODO: Need to rethink this method of passing location information.
         // debugTypeLocs.erase(memberType);
@@ -1033,6 +1075,34 @@
     return type->getResultId();
 }
 
+Id Builder::makePointerDebugType(StorageClass storageClass, Id const baseType)
+{
+    const Id debugBaseType = debugId[baseType];
+    if (!debugBaseType) {
+        return makeDebugInfoNone();
+    }
+    const Id scID = makeUintConstant(storageClass);
+    for (Instruction* otherType : groupedDebugTypes[NonSemanticShaderDebugInfo100DebugTypePointer]) {
+        if (otherType->getIdOperand(2) == debugBaseType &&
+            otherType->getIdOperand(3) == scID) {
+            return otherType->getResultId();
+        }
+    }
+
+    Instruction* type = new Instruction(getUniqueId(), makeVoidType(), OpExtInst);
+    type->addIdOperand(nonSemanticShaderDebugInfo);
+    type->addImmediateOperand(NonSemanticShaderDebugInfo100DebugTypePointer);
+    type->addIdOperand(debugBaseType);
+    type->addIdOperand(scID);
+    type->addIdOperand(makeUintConstant(0));
+
+    groupedDebugTypes[NonSemanticShaderDebugInfo100DebugTypePointer].push_back(type);
+    constantsTypesGlobals.push_back(std::unique_ptr<Instruction>(type));
+    module.mapInstruction(type);
+
+    return type->getResultId();
+}
+
 Id Builder::makeDebugSource(const Id fileName) {
     if (debugSourceId.find(fileName) != debugSourceId.end())
         return debugSourceId[fileName];
@@ -1146,20 +1216,32 @@
     return debugExpression;
 }
 
-Id Builder::makeDebugDeclare(Id const debugLocalVariable, Id const localVariable)
+Id Builder::makeDebugDeclare(Id const debugLocalVariable, Id const pointer)
 {
     Instruction* inst = new Instruction(getUniqueId(), makeVoidType(), OpExtInst);
     inst->addIdOperand(nonSemanticShaderDebugInfo);
     inst->addImmediateOperand(NonSemanticShaderDebugInfo100DebugDeclare);
     inst->addIdOperand(debugLocalVariable); // debug local variable id
-    inst->addIdOperand(localVariable); // local variable id
+    inst->addIdOperand(pointer); // pointer to local variable id
     inst->addIdOperand(makeDebugExpression()); // expression id
     buildPoint->addInstruction(std::unique_ptr<Instruction>(inst));
 
     return inst->getResultId();
 }
 
-#ifndef GLSLANG_WEB
+Id Builder::makeDebugValue(Id const debugLocalVariable, Id const value)
+{
+    Instruction* inst = new Instruction(getUniqueId(), makeVoidType(), OpExtInst);
+    inst->addIdOperand(nonSemanticShaderDebugInfo);
+    inst->addImmediateOperand(NonSemanticShaderDebugInfo100DebugValue);
+    inst->addIdOperand(debugLocalVariable); // debug local variable id
+    inst->addIdOperand(value); // value of local variable id
+    inst->addIdOperand(makeDebugExpression()); // expression id
+    buildPoint->addInstruction(std::unique_ptr<Instruction>(inst));
+
+    return inst->getResultId();
+}
+
 Id Builder::makeAccelerationStructureType()
 {
     Instruction *type;
@@ -1204,7 +1286,6 @@
 
     return type->getResultId();
 }
-#endif
 
 Id Builder::getDerefTypeId(Id resultId) const
 {
@@ -1254,6 +1335,7 @@
     }
     case OpTypeStruct:
         return instr->getNumOperands();
+    case OpTypeCooperativeMatrixKHR:
     case OpTypeCooperativeMatrixNV:
         // has only one constituent when used with OpCompositeConstruct.
         return 1;
@@ -1303,6 +1385,7 @@
     case OpTypeMatrix:
     case OpTypeArray:
     case OpTypeRuntimeArray:
+    case OpTypeCooperativeMatrixKHR:
     case OpTypeCooperativeMatrixNV:
         return instr->getIdOperand(0);
     case OpTypePointer:
@@ -1604,10 +1687,6 @@
 
 Id Builder::makeDoubleConstant(double d, bool specConstant)
 {
-#ifdef GLSLANG_WEB
-    assert(0);
-    return NoResult;
-#else
     Op opcode = specConstant ? OpSpecConstant : OpConstant;
     Id typeId = makeFloatType(64);
     union { double db; unsigned long long ull; } u;
@@ -1632,15 +1711,10 @@
     module.mapInstruction(c);
 
     return c->getResultId();
-#endif
 }
 
 Id Builder::makeFloat16Constant(float f16, bool specConstant)
 {
-#ifdef GLSLANG_WEB
-    assert(0);
-    return NoResult;
-#else
     Op opcode = specConstant ? OpSpecConstant : OpConstant;
     Id typeId = makeFloatType(16);
 
@@ -1665,17 +1739,11 @@
     module.mapInstruction(c);
 
     return c->getResultId();
-#endif
 }
 
 Id Builder::makeFpConstant(Id type, double d, bool specConstant)
 {
-#ifdef GLSLANG_WEB
-    const int width = 32;
-    assert(width == getScalarTypeWidth(type));
-#else
     const int width = getScalarTypeWidth(type);
-#endif
 
     assert(isFloatType(type));
 
@@ -1769,6 +1837,7 @@
     case OpTypeVector:
     case OpTypeArray:
     case OpTypeMatrix:
+    case OpTypeCooperativeMatrixKHR:
     case OpTypeCooperativeMatrixNV:
         if (! specConstant) {
             Id existing = findCompositeConstant(typeClass, typeId, members);
@@ -1816,6 +1885,10 @@
 // Currently relying on the fact that all 'value' of interest are small non-negative values.
 void Builder::addExecutionMode(Function* entryPoint, ExecutionMode mode, int value1, int value2, int value3)
 {
+    // entryPoint can be null if we are in compile-only mode
+    if (!entryPoint)
+        return;
+
     Instruction* instr = new Instruction(OpExecutionMode);
     instr->addIdOperand(entryPoint->getId());
     instr->addImmediateOperand(mode);
@@ -1831,6 +1904,10 @@
 
 void Builder::addExecutionMode(Function* entryPoint, ExecutionMode mode, const std::vector<unsigned>& literals)
 {
+    // entryPoint can be null if we are in compile-only mode
+    if (!entryPoint)
+        return;
+
     Instruction* instr = new Instruction(OpExecutionMode);
     instr->addIdOperand(entryPoint->getId());
     instr->addImmediateOperand(mode);
@@ -1842,6 +1919,10 @@
 
 void Builder::addExecutionModeId(Function* entryPoint, ExecutionMode mode, const std::vector<Id>& operandIds)
 {
+    // entryPoint can be null if we are in compile-only mode
+    if (!entryPoint)
+        return;
+
     Instruction* instr = new Instruction(OpExecutionModeId);
     instr->addIdOperand(entryPoint->getId());
     instr->addImmediateOperand(mode);
@@ -1925,6 +2006,16 @@
     decorations.push_back(std::unique_ptr<Instruction>(dec));
 }
 
+void Builder::addLinkageDecoration(Id id, const char* name, spv::LinkageType linkType) {
+    Instruction* dec = new Instruction(OpDecorate);
+    dec->addIdOperand(id);
+    dec->addImmediateOperand(spv::DecorationLinkageAttributes);
+    dec->addStringOperand(name);
+    dec->addImmediateOperand(linkType);
+
+    decorations.push_back(std::unique_ptr<Instruction>(dec));
+}
+
 void Builder::addDecorationId(Id id, Decoration decoration, Id idDecoration)
 {
     if (decoration == spv::DecorationMax)
@@ -2017,11 +2108,6 @@
 {
     assert(! entryPointFunction);
 
-    Block* entry;
-    std::vector<Id> paramsTypes;
-    std::vector<char const*> paramNames;
-    std::vector<std::vector<Decoration>> decorations;
-
     auto const returnType = makeVoidType();
 
     restoreNonSemanticShaderDebugInfo = emitNonSemanticShaderDebugInfo;
@@ -2029,7 +2115,8 @@
         emitNonSemanticShaderDebugInfo = false;
     }
 
-    entryPointFunction = makeFunctionEntry(NoPrecision, returnType, entryPoint, paramsTypes, paramNames, decorations, &entry);
+    Block* entry = nullptr;
+    entryPointFunction = makeFunctionEntry(NoPrecision, returnType, entryPoint, LinkageTypeMax, {}, {}, &entry);
 
     emitNonSemanticShaderDebugInfo = restoreNonSemanticShaderDebugInfo;
 
@@ -2037,15 +2124,15 @@
 }
 
 // Comments in header
-Function* Builder::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>>& decorations, Block **entry)
+Function* Builder::makeFunctionEntry(Decoration precision, Id returnType, const char* name, LinkageType linkType,
+                                     const std::vector<Id>& paramTypes,
+                                     const std::vector<std::vector<Decoration>>& decorations, Block** entry)
 {
     // Make the function and initial instructions in it
     Id typeId = makeFunctionType(returnType, paramTypes);
     Id firstParamId = paramTypes.size() == 0 ? 0 : getUniqueIds((int)paramTypes.size());
     Id funcId = getUniqueId();
-    Function* function = new Function(funcId, returnType, typeId, firstParamId, module);
+    Function* function = new Function(funcId, returnType, typeId, firstParamId, linkType, name, module);
 
     // Set up the precisions
     setPrecision(function->getId(), precision);
@@ -2057,12 +2144,8 @@
         }
     }
 
-    // Make the debug function instruction
+    // reset last debug scope
     if (emitNonSemanticShaderDebugInfo) {
-        Id nameId = getStringId(unmangleFunctionName(name));
-        Id debugFuncId = makeDebugFunction(function, nameId, typeId);
-        debugId[funcId] = debugFuncId;
-        currentDebugScopeId.push(debugFuncId);
         lastDebugScopeId = NoResult;
     }
 
@@ -2072,41 +2155,67 @@
     function->addBlock(*entry);
     setBuildPoint(*entry);
 
-    // DebugScope and DebugLine for parameter DebugDeclares
-    if (emitNonSemanticShaderDebugInfo && (int)paramTypes.size() > 0) {
-        addDebugScopeAndLine(currentFileId, currentLine, 0);
-    }
-
-    if (emitNonSemanticShaderDebugInfo) {
-        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& paramName = paramNames[p];
-            auto const debugLocalVariableId = createDebugLocalVariable(debugId[getParamTypeId(paramTypes[p])], paramName, p+1);
-            debugId[firstParamId + p] = debugLocalVariableId;
-
-            makeDebugDeclare(debugLocalVariableId, firstParamId + p);
-        }
-    }
-
     if (name)
         addName(function->getId(), name);
 
     functions.push_back(std::unique_ptr<Function>(function));
 
+    return function;
+}
+
+void Builder::setupDebugFunctionEntry(Function* function, const char* name, int line, const std::vector<Id>& paramTypes,
+                                      const std::vector<char const*>& paramNames)
+{
+
+    if (!emitNonSemanticShaderDebugInfo)
+        return;
+
+    currentLine = line;
+    Id nameId = getStringId(unmangleFunctionName(name));
+    Id funcTypeId = function->getFuncTypeId();
+    assert(debugId[funcTypeId] != 0);
+    Id funcId = function->getId();
+
+    assert(funcId != 0);
+
+    // Make the debug function instruction
+    Id debugFuncId = makeDebugFunction(function, nameId, funcTypeId);
+    debugId[funcId] = debugFuncId;
+    currentDebugScopeId.push(debugFuncId);
+
+    // DebugScope and DebugLine for parameter DebugDeclares
+    assert(paramTypes.size() == paramNames.size());
+    if ((int)paramTypes.size() > 0) {
+        addDebugScopeAndLine(currentFileId, currentLine, 0);
+
+        Id firstParamId = function->getParamId(0);
+
+        for (size_t p = 0; p < paramTypes.size(); ++p) {
+            bool passByRef = false;
+            Id paramTypeId = paramTypes[p];
+
+            // For pointer-typed parameters, they are actually passed by reference and we need unwrap the pointer to get the actual parameter type.
+            if (isPointerType(paramTypeId) || isArrayType(paramTypeId)) {
+                passByRef = true;
+                paramTypeId = getContainedTypeId(paramTypeId);
+            }
+
+            auto const& paramName = paramNames[p];
+            auto const debugLocalVariableId = createDebugLocalVariable(debugId[paramTypeId], paramName, p + 1);
+            auto const paramId = static_cast<Id>(firstParamId + p);
+            debugId[paramId] = debugLocalVariableId;
+
+            if (passByRef) {
+                makeDebugDeclare(debugLocalVariableId, paramId);
+            } else {
+                makeDebugValue(debugLocalVariableId, paramId);
+            }
+        }
+    }
+
     // Clear debug scope stack
     if (emitNonSemanticShaderDebugInfo)
         currentDebugScopeId.pop();
-
-    return function;
 }
 
 Id Builder::makeDebugFunction([[maybe_unused]] Function* function, Id nameId, Id funcTypeId)
@@ -2122,13 +2231,13 @@
     type->addImmediateOperand(NonSemanticShaderDebugInfo100DebugFunction);
     type->addIdOperand(nameId);
     type->addIdOperand(debugId[funcTypeId]);
-    type->addIdOperand(makeDebugSource(currentFileId)); // Will be fixed later when true filename available
-    type->addIdOperand(makeUintConstant(currentLine)); // Will be fixed later when true line available
+    type->addIdOperand(makeDebugSource(currentFileId)); // TODO: This points to file of definition instead of declaration
+    type->addIdOperand(makeUintConstant(currentLine)); // TODO: This points to line of definition instead of declaration
     type->addIdOperand(makeUintConstant(0)); // column
     type->addIdOperand(makeDebugCompilationUnit()); // scope
     type->addIdOperand(nameId); // linkage name
     type->addIdOperand(makeUintConstant(NonSemanticShaderDebugInfo100FlagIsPublic));
-    type->addIdOperand(makeUintConstant(currentLine)); // TODO(greg-lunarg): correct scope line
+    type->addIdOperand(makeUintConstant(currentLine)); 
     constantsTypesGlobals.push_back(std::unique_ptr<Instruction>(type));
     module.mapInstruction(type);
     return funcId;
@@ -2215,6 +2324,12 @@
         defInst->addIdOperand(funcId);
         buildPoint->addInstruction(std::unique_ptr<Instruction>(defInst));
     }
+
+    if (auto linkType = function->getLinkType(); linkType != LinkageTypeMax) {
+        Id funcId = function->getFuncId();
+        addCapability(CapabilityLinkage);
+        addLinkageDecoration(funcId, function->getExportName(), linkType);
+    }
 }
 
 // Comments in header
@@ -2405,7 +2520,24 @@
     return length->getResultId();
 }
 
-Id Builder::createCooperativeMatrixLength(Id type)
+Id Builder::createCooperativeMatrixLengthKHR(Id type)
+{
+    spv::Id intType = makeUintType(32);
+
+    // Generate code for spec constants if in spec constant operation
+    // generation mode.
+    if (generatingOpCodeForSpecConst) {
+        return createSpecConstantOp(OpCooperativeMatrixLengthKHR, intType, std::vector<Id>(1, type), std::vector<Id>());
+    }
+
+    Instruction* length = new Instruction(getUniqueId(), intType, OpCooperativeMatrixLengthKHR);
+    length->addIdOperand(type);
+    buildPoint->addInstruction(std::unique_ptr<Instruction>(length));
+
+    return length->getResultId();
+}
+
+Id Builder::createCooperativeMatrixLengthNV(Id type)
 {
     spv::Id intType = makeUintType(32);
 
@@ -2642,6 +2774,14 @@
     module.mapInstruction(op);
     constantsTypesGlobals.push_back(std::unique_ptr<Instruction>(op));
 
+    // OpSpecConstantOp's using 8 or 16 bit types require the associated capability
+    if (containsType(typeId, OpTypeInt, 8))
+        addCapability(CapabilityInt8);
+    if (containsType(typeId, OpTypeInt, 16))
+        addCapability(CapabilityInt16);
+    if (containsType(typeId, OpTypeFloat, 16))
+        addCapability(CapabilityFloat16);
+
     return op->getResultId();
 }
 
@@ -2789,12 +2929,10 @@
     if (parameters.component != NoResult)
         texArgs.push_back(parameters.component);
 
-#ifndef GLSLANG_WEB
     if (parameters.granularity != NoResult)
         texArgs.push_back(parameters.granularity);
     if (parameters.coarse != NoResult)
         texArgs.push_back(parameters.coarse);
-#endif
 
     //
     // Set up the optional arguments
@@ -2835,7 +2973,6 @@
         mask = (ImageOperandsMask)(mask | ImageOperandsConstOffsetsMask);
         texArgs.push_back(parameters.offsets);
     }
-#ifndef GLSLANG_WEB
     if (parameters.sample) {
         mask = (ImageOperandsMask)(mask | ImageOperandsSampleMask);
         texArgs.push_back(parameters.sample);
@@ -2853,7 +2990,6 @@
     if (parameters.volatil) {
         mask = mask | ImageOperandsVolatileTexelKHRMask;
     }
-#endif
     mask = mask | signExtensionMask;
     // insert the operand for the mask, if any bits were set.
     if (mask != ImageOperandsMaskNone)
@@ -2868,7 +3004,6 @@
             opCode = OpImageSparseFetch;
         else
             opCode = OpImageFetch;
-#ifndef GLSLANG_WEB
     } else if (parameters.granularity && parameters.coarse) {
         opCode = OpImageSampleFootprintNV;
     } else if (gather) {
@@ -2882,7 +3017,6 @@
                 opCode = OpImageSparseGather;
             else
                 opCode = OpImageGather;
-#endif
     } else if (explicitLod) {
         if (parameters.Dref) {
             if (proj)
@@ -3245,12 +3379,7 @@
     int numRows = getTypeNumRows(resultTypeId);
 
     Instruction* instr = module.getInstruction(componentTypeId);
-#ifdef GLSLANG_WEB
-    const unsigned bitCount = 32;
-    assert(bitCount == instr->getImmediateOperand(0));
-#else
     const unsigned bitCount = instr->getImmediateOperand(0);
-#endif
 
     // Optimize matrix constructed from a bigger matrix
     if (isMatrix(sources[0]) && getNumColumns(sources[0]) >= numCols && getNumRows(sources[0]) >= numRows) {
@@ -4071,4 +4200,4 @@
     }
 }
 
-}; // end spv namespace
+} // end spv namespace
diff --git a/SPIRV/SpvBuilder.h b/SPIRV/SpvBuilder.h
index 70edf25..dac5881 100644
--- a/SPIRV/SpvBuilder.h
+++ b/SPIRV/SpvBuilder.h
@@ -185,7 +185,7 @@
 
     // For creating new types (will return old type if the requested one was already made).
     Id makeVoidType();
-    Id makeBoolType(bool const compilerGenerated = true);
+    Id makeBoolType();
     Id makePointer(StorageClass, Id pointee);
     Id makeForwardPointer(StorageClass);
     Id makePointerFromForwardPointer(StorageClass, Id forwardPointerType, Id pointee);
@@ -203,7 +203,9 @@
     Id makeImageType(Id sampledType, Dim, bool depth, bool arrayed, bool ms, unsigned sampled, ImageFormat format);
     Id makeSamplerType();
     Id makeSampledImageType(Id imageType);
-    Id makeCooperativeMatrixType(Id component, Id scope, Id rows, Id cols);
+    Id makeCooperativeMatrixTypeKHR(Id component, Id scope, Id rows, Id cols, Id use);
+    Id makeCooperativeMatrixTypeNV(Id component, Id scope, Id rows, Id cols);
+    Id makeCooperativeMatrixTypeWithSameShape(Id component, Id otherType);
     Id makeGenericType(spv::Op opcode, std::vector<spv::IdImmediate>& operands);
 
     // SPIR-V NonSemantic Shader DebugInfo Instructions
@@ -224,17 +226,21 @@
     Id makeMemberDebugType(Id const memberType, DebugTypeLoc const& debugTypeLoc);
     Id makeCompositeDebugType(std::vector<Id> const& memberTypes, char const*const name,
         NonSemanticShaderDebugInfo100DebugCompositeType const tag, bool const isOpaqueType = false);
+    Id makePointerDebugType(StorageClass storageClass, Id const baseType);
     Id makeDebugSource(const Id fileName);
     Id makeDebugCompilationUnit();
     Id createDebugGlobalVariable(Id const type, char const*const name, Id const variable);
     Id createDebugLocalVariable(Id type, char const*const name, size_t const argNumber = 0);
     Id makeDebugExpression();
-    Id makeDebugDeclare(Id const debugLocalVariable, Id const localVariable);
+    Id makeDebugDeclare(Id const debugLocalVariable, Id const pointer);
     Id makeDebugValue(Id const debugLocalVariable, Id const value);
     Id makeDebugFunctionType(Id returnType, const std::vector<Id>& paramTypes);
     Id makeDebugFunction(Function* function, Id nameId, Id funcTypeId);
     Id makeDebugLexicalBlock(uint32_t line);
     std::string unmangleFunctionName(std::string const& name) const;
+    void setupDebugFunctionEntry(Function* function, const char* name, int line, 
+                                 const std::vector<Id>& paramTypes,
+                                 const std::vector<char const*>& paramNames);
 
     // accelerationStructureNV type
     Id makeAccelerationStructureType();
@@ -259,6 +265,7 @@
     ImageFormat getImageTypeFormat(Id typeId) const
         { return (ImageFormat)module.getInstruction(typeId)->getImmediateOperand(6); }
     Id getResultingAccessChainType() const;
+    Id getIdOperand(Id resultId, int idx) { return module.getInstruction(resultId)->getIdOperand(idx); }
 
     bool isPointer(Id resultId)      const { return isPointerType(getTypeId(resultId)); }
     bool isScalar(Id resultId)       const { return isScalarType(getTypeId(resultId)); }
@@ -283,11 +290,10 @@
     bool isMatrixType(Id typeId)       const { return getTypeClass(typeId) == OpTypeMatrix; }
     bool isStructType(Id typeId)       const { return getTypeClass(typeId) == OpTypeStruct; }
     bool isArrayType(Id typeId)        const { return getTypeClass(typeId) == OpTypeArray; }
-#ifdef GLSLANG_WEB
-    bool isCooperativeMatrixType(Id typeId)const { return false; }
-#else
-    bool isCooperativeMatrixType(Id typeId)const { return getTypeClass(typeId) == OpTypeCooperativeMatrixNV; }
-#endif
+    bool isCooperativeMatrixType(Id typeId)const
+    {
+        return getTypeClass(typeId) == OpTypeCooperativeMatrixKHR || getTypeClass(typeId) == OpTypeCooperativeMatrixNV;
+    }
     bool isAggregateType(Id typeId)    const
         { return isArrayType(typeId) || isStructType(typeId) || isCooperativeMatrixType(typeId); }
     bool isImageType(Id typeId)        const { return getTypeClass(typeId) == OpTypeImage; }
@@ -391,6 +397,7 @@
     void addDecoration(Id, Decoration, const char*);
     void addDecoration(Id, Decoration, const std::vector<unsigned>& literals);
     void addDecoration(Id, Decoration, const std::vector<const char*>& strings);
+    void addLinkageDecoration(Id id, const char* name, spv::LinkageType linkType);
     void addDecorationId(Id id, Decoration, Id idDecoration);
     void addDecorationId(Id id, Decoration, const std::vector<Id>& operandIds);
     void addMemberDecoration(Id, unsigned int member, Decoration, int num = -1);
@@ -414,9 +421,9 @@
     // Make a shader-style function, and create its entry block if entry is non-zero.
     // Return the function, pass back the entry.
     // 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);
+    Function* makeFunctionEntry(Decoration precision, Id returnType, const char* name, LinkageType linkType,
+                                const std::vector<Id>& paramTypes,
+                                const std::vector<std::vector<Decoration>>& precisions, Block** entry = nullptr);
 
     // 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.
@@ -464,8 +471,10 @@
     // Create an OpArrayLength instruction
     Id createArrayLength(Id base, unsigned int member);
 
+    // Create an OpCooperativeMatrixLengthKHR instruction
+    Id createCooperativeMatrixLengthKHR(Id type);
     // Create an OpCooperativeMatrixLengthNV instruction
-    Id createCooperativeMatrixLength(Id type);
+    Id createCooperativeMatrixLengthNV(Id type);
 
     // Create an OpCompositeExtract instruction
     Id createCompositeExtract(Id composite, Id typeId, unsigned index);
@@ -700,11 +709,6 @@
         // Accumulate whether anything in the chain of structures has coherent decorations.
         struct CoherentFlags {
             CoherentFlags() { clear(); }
-#ifdef GLSLANG_WEB
-            void clear() { }
-            bool isVolatile() const { return false; }
-            CoherentFlags operator |=(const CoherentFlags &other) { return *this; }
-#else
             bool isVolatile() const { return volatil; }
             bool isNonUniform() const { return nonUniform; }
             bool anyCoherent() const {
@@ -749,7 +753,6 @@
                 nonUniform |= other.nonUniform;
                 return *this;
             }
-#endif
         };
         CoherentFlags coherentFlags;
     };
@@ -830,19 +833,17 @@
 
     // Add capabilities, extensions, remove unneeded decorations, etc.,
     // based on the resulting SPIR-V.
-    void postProcess();
+    void postProcess(bool compileOnly);
 
     // Prune unreachable blocks in the CFG and remove unneeded decorations.
     void postProcessCFG();
 
-#ifndef GLSLANG_WEB
     // Add capabilities, extensions based on instructions in the module.
     void postProcessFeatures();
     // Hook to visit each instruction in a block in a function
     void postProcess(Instruction&);
     // Hook to visit each non-32-bit sized float/int operation in a block.
     void postProcessType(const Instruction&, spv::Id typeId);
-#endif
 
     void dump(std::vector<unsigned int>&) const;
 
diff --git a/SPIRV/SpvPostProcess.cpp b/SPIRV/SpvPostProcess.cpp
index b185f61..13001a6 100644
--- a/SPIRV/SpvPostProcess.cpp
+++ b/SPIRV/SpvPostProcess.cpp
@@ -53,11 +53,11 @@
     #include "GLSL.ext.AMD.h"
     #include "GLSL.ext.NV.h"
     #include "GLSL.ext.ARM.h"
+    #include "GLSL.ext.QCOM.h"
 }
 
 namespace spv {
 
-#ifndef GLSLANG_WEB
 // Hook to visit each operand type and result type of an instruction.
 // Will be called multiple times for one instruction, once for each typed
 // operand and the result.
@@ -334,7 +334,6 @@
         }
     }
 }
-#endif
 
 // comment in header
 void Builder::postProcessCFG()
@@ -395,7 +394,6 @@
         decorations.end());
 }
 
-#ifndef GLSLANG_WEB
 // comment in header
 void Builder::postProcessFeatures() {
     // Add per-instruction capabilities, extensions, etc.,
@@ -483,14 +481,15 @@
         }
     }
 }
-#endif
 
 // comment in header
-void Builder::postProcess() {
-  postProcessCFG();
-#ifndef GLSLANG_WEB
-  postProcessFeatures();
-#endif
+void Builder::postProcess(bool compileOnly)
+{
+    // postProcessCFG needs an entrypoint to determine what is reachable, but if we are not creating an "executable" shader, we don't have an entrypoint
+    if (!compileOnly)
+        postProcessCFG();
+
+    postProcessFeatures();
 }
 
 }; // end spv namespace
diff --git a/SPIRV/SpvTools.h b/SPIRV/SpvTools.h
index 6fc4e40..eabde46 100644
--- a/SPIRV/SpvTools.h
+++ b/SPIRV/SpvTools.h
@@ -48,21 +48,11 @@
 #endif
 
 #include "glslang/MachineIndependent/localintermediate.h"
+#include "GlslangToSpv.h"
 #include "Logger.h"
 
 namespace glslang {
 
-struct SpvOptions {
-    bool generateDebugInfo {false};
-    bool stripDebugInfo {false};
-    bool disableOptimizer {true};
-    bool optimizeSize {false};
-    bool disassemble {false};
-    bool validate {false};
-    bool emitNonSemanticShaderDebugInfo {false};
-    bool emitNonSemanticShaderDebugSource{ false };
-};
-
 #if ENABLE_OPT
 
 // Translate glslang's view of target versioning to what SPIRV-Tools uses.
diff --git a/SPIRV/disassemble.cpp b/SPIRV/disassemble.cpp
index 479f4a6..c5e961c 100644
--- a/SPIRV/disassemble.cpp
+++ b/SPIRV/disassemble.cpp
@@ -56,6 +56,7 @@
         #include "GLSL.ext.NV.h"
         #include "GLSL.ext.ARM.h"
         #include "NonSemanticShaderDebugInfo100.h"
+        #include "GLSL.ext.QCOM.h"
     }
 }
 const char* GlslStd450DebugNames[spv::GLSLstd450Count];
diff --git a/SPIRV/doc.cpp b/SPIRV/doc.cpp
index b25f37e..da9db94 100755
--- a/SPIRV/doc.cpp
+++ b/SPIRV/doc.cpp
@@ -1,5 +1,6 @@
 //
 // Copyright (C) 2014-2015 LunarG, Inc.
+// Copyright (C) 2022-2024 Arm Limited.
 // Modifications Copyright (C) 2020 Advanced Micro Devices, Inc. All rights reserved.
 //
 // All rights reserved.
@@ -55,6 +56,7 @@
         #include "GLSL.ext.AMD.h"
         #include "GLSL.ext.NV.h"
         #include "GLSL.ext.ARM.h"
+        #include "GLSL.ext.QCOM.h"
     }
 }
 
@@ -197,6 +199,7 @@
     case ExecutionModeStencilRefGreaterBackAMD:      return "StencilRefGreaterBackAMD";
     case ExecutionModeStencilRefReplacingEXT:        return "StencilRefReplacingEXT";
     case ExecutionModeSubgroupUniformControlFlowKHR: return "SubgroupUniformControlFlow";
+    case ExecutionModeMaximallyReconvergesKHR:       return "MaximallyReconverges";
 
     case ExecutionModeOutputLinesNV:                 return "OutputLinesNV";
     case ExecutionModeOutputPrimitivesNV:            return "OutputPrimitivesNV";
@@ -216,6 +219,9 @@
     case ExecutionModeNoGlobalOffsetINTEL:      return "NoGlobalOffsetINTEL";
     case ExecutionModeNumSIMDWorkitemsINTEL:    return "NumSIMDWorkitemsINTEL";
 
+    case ExecutionModeRequireFullQuadsKHR:      return "RequireFullQuadsKHR";
+    case ExecutionModeQuadDerivativesKHR:       return "QuadDerivativesKHR";
+
     case ExecutionModeNonCoherentColorAttachmentReadEXT:        return "NonCoherentColorAttachmentReadEXT";
     case ExecutionModeNonCoherentDepthAttachmentReadEXT:        return "NonCoherentDepthAttachmentReadEXT";
     case ExecutionModeNonCoherentStencilAttachmentReadEXT:      return "NonCoherentStencilAttachmentReadEXT";
@@ -311,7 +317,9 @@
     case DecorationCeiling:
     default:  return "Bad";
 
-    case DecorationExplicitInterpAMD: return "ExplicitInterpAMD";
+    case DecorationWeightTextureQCOM:           return "DecorationWeightTextureQCOM";
+    case DecorationBlockMatchTextureQCOM:       return "DecorationBlockMatchTextureQCOM";
+    case DecorationExplicitInterpAMD:           return "ExplicitInterpAMD";
     case DecorationOverrideCoverageNV:          return "OverrideCoverageNV";
     case DecorationPassthroughNV:               return "PassthroughNV";
     case DecorationViewportRelativeNV:          return "ViewportRelativeNV";
@@ -411,6 +419,10 @@
     case BuiltInRayTmaxKHR:                  return "RayTmaxKHR";
     case BuiltInCullMaskKHR:                 return "CullMaskKHR";
     case BuiltInHitTriangleVertexPositionsKHR: return "HitTriangleVertexPositionsKHR";
+    case BuiltInHitMicroTriangleVertexPositionsNV: return "HitMicroTriangleVertexPositionsNV";
+    case BuiltInHitMicroTriangleVertexBarycentricsNV: return "HitMicroTriangleVertexBarycentricsNV";
+    case BuiltInHitKindFrontFacingMicroTriangleNV: return "HitKindFrontFacingMicroTriangleNV";
+    case BuiltInHitKindBackFacingMicroTriangleNV: return "HitKindBackFacingMicroTriangleNV";
     case BuiltInInstanceCustomIndexKHR:      return "InstanceCustomIndexKHR";
     case BuiltInRayGeometryIndexKHR:         return "RayGeometryIndexKHR";
     case BuiltInObjectToWorldKHR:            return "ObjectToWorldKHR";
@@ -790,6 +802,21 @@
     }
 }
 
+const int CooperativeMatrixOperandsCeiling = 6;
+
+const char* CooperativeMatrixOperandsString(int op)
+{
+    switch (op) {
+    case CooperativeMatrixOperandsMatrixASignedComponentsKHRShift:  return "ASignedComponentsKHR";
+    case CooperativeMatrixOperandsMatrixBSignedComponentsKHRShift:  return "BSignedComponentsKHR";
+    case CooperativeMatrixOperandsMatrixCSignedComponentsKHRShift:  return "CSignedComponentsKHR";
+    case CooperativeMatrixOperandsMatrixResultSignedComponentsKHRShift:  return "ResultSignedComponentsKHR";
+    case CooperativeMatrixOperandsSaturatingAccumulationKHRShift:   return "SaturatingAccumulationKHR";
+
+    default: return "Bad";
+    }
+}
+
 const char* ScopeString(int mem)
 {
     switch (mem) {
@@ -916,6 +943,7 @@
     case CapabilitySubgroupBallotKHR: return "SubgroupBallotKHR";
     case CapabilityDrawParameters:    return "DrawParameters";
     case CapabilitySubgroupVoteKHR:   return "SubgroupVoteKHR";
+    case CapabilityGroupNonUniformRotateKHR: return "CapabilityGroupNonUniformRotateKHR";
 
     case CapabilityStorageUniformBufferBlock16: return "StorageUniformBufferBlock16";
     case CapabilityStorageUniform16:            return "StorageUniform16";
@@ -959,6 +987,8 @@
     case CapabilityRayTracingProvisionalKHR:        return "RayTracingProvisionalKHR";
     case CapabilityRayTraversalPrimitiveCullingKHR: return "RayTraversalPrimitiveCullingKHR";
     case CapabilityRayTracingPositionFetchKHR:      return "RayTracingPositionFetchKHR";
+    case CapabilityDisplacementMicromapNV:           return "DisplacementMicromapNV";
+    case CapabilityRayTracingDisplacementMicromapNV: return "CapabilityRayTracingDisplacementMicromapNV";
     case CapabilityRayQueryPositionFetchKHR:        return "RayQueryPositionFetchKHR";
     case CapabilityComputeDerivativeGroupQuadsNV:   return "ComputeDerivativeGroupQuadsNV";
     case CapabilityComputeDerivativeGroupLinearNV:  return "ComputeDerivativeGroupLinearNV";
@@ -993,6 +1023,7 @@
     case CapabilityVariablePointers:                    return "VariablePointers";
 
     case CapabilityCooperativeMatrixNV:     return "CooperativeMatrixNV";
+    case CapabilityCooperativeMatrixKHR:    return "CooperativeMatrixKHR";
     case CapabilityShaderSMBuiltinsNV:      return "ShaderSMBuiltinsNV";
 
     case CapabilityFragmentShaderSampleInterlockEXT:        return "CapabilityFragmentShaderSampleInterlockEXT";
@@ -1007,6 +1038,7 @@
 
     case CapabilityDemoteToHelperInvocationEXT:             return "DemoteToHelperInvocationEXT";
     case CapabilityShaderClockKHR:                          return "ShaderClockKHR";
+    case CapabilityQuadControlKHR:                          return "QuadControlKHR";
     case CapabilityInt64ImageEXT:                           return "Int64ImageEXT";
 
     case CapabilityIntegerFunctions2INTEL:              return "CapabilityIntegerFunctions2INTEL";
@@ -1024,6 +1056,11 @@
     case CapabilityCoreBuiltinsARM:                             return "CoreBuiltinsARM";
 
     case CapabilityShaderInvocationReorderNV:                return "ShaderInvocationReorderNV";
+
+    case CapabilityTextureSampleWeightedQCOM:           return "TextureSampleWeightedQCOM";
+    case CapabilityTextureBoxFilterQCOM:                return "TextureBoxFilterQCOM";
+    case CapabilityTextureBlockMatchQCOM:               return "TextureBlockMatchQCOM";
+
     default: return "Bad";
     }
 }
@@ -1402,10 +1439,16 @@
     case 4430: return "OpSubgroupAllEqualKHR";
     case 4432: return "OpSubgroupReadInvocationKHR";
 
+    case OpGroupNonUniformQuadAllKHR: return "OpGroupNonUniformQuadAllKHR";
+    case OpGroupNonUniformQuadAnyKHR: return "OpGroupNonUniformQuadAnyKHR";
+
     case OpAtomicFAddEXT: return "OpAtomicFAddEXT";
     case OpAtomicFMinEXT: return "OpAtomicFMinEXT";
     case OpAtomicFMaxEXT: return "OpAtomicFMaxEXT";
 
+    case OpAssumeTrueKHR: return "OpAssumeTrueKHR";
+    case OpExpectKHR: return "OpExpectKHR";
+
     case 5000: return "OpGroupIAddNonUniformAMD";
     case 5001: return "OpGroupFAddNonUniformAMD";
     case 5002: return "OpGroupFMinNonUniformAMD";
@@ -1442,6 +1485,8 @@
     case OpEmitMeshTasksEXT:                 return "OpEmitMeshTasksEXT";
     case OpSetMeshOutputsEXT:                return "OpSetMeshOutputsEXT";
 
+    case OpGroupNonUniformRotateKHR:         return "OpGroupNonUniformRotateKHR";
+
     case OpTypeRayQueryKHR:                                                   return "OpTypeRayQueryKHR";
     case OpRayQueryInitializeKHR:                                             return "OpRayQueryInitializeKHR";
     case OpRayQueryTerminateKHR:                                              return "OpRayQueryTerminateKHR";
@@ -1473,6 +1518,11 @@
     case OpCooperativeMatrixStoreNV:        return "OpCooperativeMatrixStoreNV";
     case OpCooperativeMatrixMulAddNV:       return "OpCooperativeMatrixMulAddNV";
     case OpCooperativeMatrixLengthNV:       return "OpCooperativeMatrixLengthNV";
+    case OpTypeCooperativeMatrixKHR:        return "OpTypeCooperativeMatrixKHR";
+    case OpCooperativeMatrixLoadKHR:        return "OpCooperativeMatrixLoadKHR";
+    case OpCooperativeMatrixStoreKHR:       return "OpCooperativeMatrixStoreKHR";
+    case OpCooperativeMatrixMulAddKHR:      return "OpCooperativeMatrixMulAddKHR";
+    case OpCooperativeMatrixLengthKHR:      return "OpCooperativeMatrixLengthKHR";
     case OpDemoteToHelperInvocationEXT:     return "OpDemoteToHelperInvocationEXT";
     case OpIsHelperInvocationEXT:           return "OpIsHelperInvocationEXT";
 
@@ -1513,10 +1563,18 @@
     case OpHitObjectGetShaderBindingTableRecordIndexNV: return "OpHitObjectGetShaderBindingTableRecordIndexNV";
     case OpHitObjectGetShaderRecordBufferHandleNV:   return "OpHitObjectGetShaderRecordBufferHandleNV";
 
+    case OpFetchMicroTriangleVertexBarycentricNV:       return "OpFetchMicroTriangleVertexBarycentricNV";
+    case OpFetchMicroTriangleVertexPositionNV:    return "OpFetchMicroTriangleVertexPositionNV";
+
     case OpColorAttachmentReadEXT:          return "OpColorAttachmentReadEXT";
     case OpDepthAttachmentReadEXT:          return "OpDepthAttachmentReadEXT";
     case OpStencilAttachmentReadEXT:        return "OpStencilAttachmentReadEXT";
 
+    case OpImageSampleWeightedQCOM:         return "OpImageSampleWeightedQCOM";
+    case OpImageBoxFilterQCOM:              return "OpImageBoxFilterQCOM";
+    case OpImageBlockMatchSADQCOM:          return "OpImageBlockMatchSADQCOM";
+    case OpImageBlockMatchSSDQCOM:          return "OpImageBlockMatchSSDQCOM";
+
     default:
         return "Bad";
     }
@@ -1536,6 +1594,7 @@
 EnumParameters SelectionControlParams[SelectControlCeiling];
 EnumParameters FunctionControlParams[FunctionControlCeiling];
 EnumParameters MemoryAccessParams[MemoryAccessCeiling];
+EnumParameters CooperativeMatrixOperandsParams[CooperativeMatrixOperandsCeiling];
 
 // Set up all the parameterizing descriptions of the opcodes, operands, etc.
 void Parameterize()
@@ -1630,9 +1689,11 @@
         InstructionDesc[OpModuleProcessed].setResultAndType(false, false);
         InstructionDesc[OpTypeCooperativeMatrixNV].setResultAndType(true, false);
         InstructionDesc[OpCooperativeMatrixStoreNV].setResultAndType(false, false);
+        InstructionDesc[OpTypeCooperativeMatrixKHR].setResultAndType(true, false);
+        InstructionDesc[OpCooperativeMatrixStoreKHR].setResultAndType(false, false);
         InstructionDesc[OpBeginInvocationInterlockEXT].setResultAndType(false, false);
         InstructionDesc[OpEndInvocationInterlockEXT].setResultAndType(false, false);
-
+        InstructionDesc[OpAssumeTrueKHR].setResultAndType(false, false);
         // Specific additional context-dependent operands
 
         ExecutionModeOperands[ExecutionModeInvocations].push(OperandLiteralNumber, "'Number of <<Invocation,invocations>>'");
@@ -1701,6 +1762,7 @@
         OperandClassParams[OperandKernelEnqueueFlags].set(0, KernelEnqueueFlagsString, nullptr);
         OperandClassParams[OperandKernelProfilingInfo].set(0, KernelProfilingInfoString, nullptr, true);
         OperandClassParams[OperandCapability].set(0, CapabilityString, nullptr);
+        OperandClassParams[OperandCooperativeMatrixOperands].set(CooperativeMatrixOperandsCeiling, CooperativeMatrixOperandsString, CooperativeMatrixOperandsParams, true);
         OperandClassParams[OperandOpcode].set(OpCodeMask + 1, OpcodeString, nullptr);
 
         // set name of operator, an initial set of <id> style operands, and the description
@@ -2410,6 +2472,11 @@
         InstructionDesc[OpAtomicFAddEXT].operands.push(OperandMemorySemantics, "'Semantics'");
         InstructionDesc[OpAtomicFAddEXT].operands.push(OperandId, "'Value'");
 
+        InstructionDesc[OpAssumeTrueKHR].operands.push(OperandId, "'Condition'");
+
+        InstructionDesc[OpExpectKHR].operands.push(OperandId, "'Value'");
+        InstructionDesc[OpExpectKHR].operands.push(OperandId, "'ExpectedValue'");
+
         InstructionDesc[OpAtomicISub].operands.push(OperandId, "'Pointer'");
         InstructionDesc[OpAtomicISub].operands.push(OperandScope, "'Scope'");
         InstructionDesc[OpAtomicISub].operands.push(OperandMemorySemantics, "'Semantics'");
@@ -2838,6 +2905,11 @@
         InstructionDesc[OpSubgroupAllEqualKHR].operands.push(OperandScope, "'Execution'");
         InstructionDesc[OpSubgroupAllEqualKHR].operands.push(OperandId, "'Predicate'");
 
+        InstructionDesc[OpGroupNonUniformRotateKHR].operands.push(OperandScope, "'Execution'");
+        InstructionDesc[OpGroupNonUniformRotateKHR].operands.push(OperandId, "'X'");
+        InstructionDesc[OpGroupNonUniformRotateKHR].operands.push(OperandId, "'Delta'");
+        InstructionDesc[OpGroupNonUniformRotateKHR].operands.push(OperandId, "'ClusterSize'", true);
+
         InstructionDesc[OpSubgroupReadInvocationKHR].operands.push(OperandId, "'Value'");
         InstructionDesc[OpSubgroupReadInvocationKHR].operands.push(OperandId, "'Index'");
 
@@ -2884,6 +2956,8 @@
 
         InstructionDesc[OpGroupNonUniformPartitionNV].operands.push(OperandId, "X");
 
+        InstructionDesc[OpGroupNonUniformQuadAllKHR].operands.push(OperandId, "'Predicate'");
+        InstructionDesc[OpGroupNonUniformQuadAnyKHR].operands.push(OperandId, "'Predicate'");
         InstructionDesc[OpTypeAccelerationStructureKHR].setResultAndType(true, false);
 
         InstructionDesc[OpTraceNV].operands.push(OperandId, "'Acceleration Structure'");
@@ -3044,7 +3118,7 @@
 
         InstructionDesc[OpRayQueryGetIntersectionTriangleVertexPositionsKHR].operands.push(OperandId, "'RayQuery'");
         InstructionDesc[OpRayQueryGetIntersectionTriangleVertexPositionsKHR].operands.push(OperandId, "'Committed'");
-        InstructionDesc[OpRayQueryGetIntersectionWorldToObjectKHR].setResultAndType(true, true);
+        InstructionDesc[OpRayQueryGetIntersectionTriangleVertexPositionsKHR].setResultAndType(true, true);
 
         InstructionDesc[OpImageSampleFootprintNV].operands.push(OperandId, "'Sampled Image'");
         InstructionDesc[OpImageSampleFootprintNV].operands.push(OperandId, "'Coordinate'");
@@ -3093,6 +3167,34 @@
 
         InstructionDesc[OpCooperativeMatrixLengthNV].operands.push(OperandId, "'Type'");
 
+        InstructionDesc[OpTypeCooperativeMatrixKHR].operands.push(OperandId, "'Component Type'");
+        InstructionDesc[OpTypeCooperativeMatrixKHR].operands.push(OperandId, "'Scope'");
+        InstructionDesc[OpTypeCooperativeMatrixKHR].operands.push(OperandId, "'Rows'");
+        InstructionDesc[OpTypeCooperativeMatrixKHR].operands.push(OperandId, "'Columns'");
+        InstructionDesc[OpTypeCooperativeMatrixKHR].operands.push(OperandId, "'Use'");
+
+        InstructionDesc[OpCooperativeMatrixLoadKHR].operands.push(OperandId, "'Pointer'");
+        InstructionDesc[OpCooperativeMatrixLoadKHR].operands.push(OperandId, "'Memory Layout'");
+        InstructionDesc[OpCooperativeMatrixLoadKHR].operands.push(OperandId, "'Stride'");
+        InstructionDesc[OpCooperativeMatrixLoadKHR].operands.push(OperandMemoryAccess, "'Memory Access'");
+        InstructionDesc[OpCooperativeMatrixLoadKHR].operands.push(OperandLiteralNumber, "", true);
+        InstructionDesc[OpCooperativeMatrixLoadKHR].operands.push(OperandId, "", true);
+
+        InstructionDesc[OpCooperativeMatrixStoreKHR].operands.push(OperandId, "'Pointer'");
+        InstructionDesc[OpCooperativeMatrixStoreKHR].operands.push(OperandId, "'Object'");
+        InstructionDesc[OpCooperativeMatrixStoreKHR].operands.push(OperandId, "'Memory Layout'");
+        InstructionDesc[OpCooperativeMatrixStoreKHR].operands.push(OperandId, "'Stride'");
+        InstructionDesc[OpCooperativeMatrixStoreKHR].operands.push(OperandMemoryAccess, "'Memory Access'");
+        InstructionDesc[OpCooperativeMatrixStoreKHR].operands.push(OperandLiteralNumber, "", true);
+        InstructionDesc[OpCooperativeMatrixStoreKHR].operands.push(OperandId, "", true);
+
+        InstructionDesc[OpCooperativeMatrixMulAddKHR].operands.push(OperandId, "'A'");
+        InstructionDesc[OpCooperativeMatrixMulAddKHR].operands.push(OperandId, "'B'");
+        InstructionDesc[OpCooperativeMatrixMulAddKHR].operands.push(OperandId, "'C'");
+        InstructionDesc[OpCooperativeMatrixMulAddKHR].operands.push(OperandCooperativeMatrixOperands, "'Cooperative Matrix Operands'", true);
+
+        InstructionDesc[OpCooperativeMatrixLengthKHR].operands.push(OperandId, "'Type'");
+
         InstructionDesc[OpDemoteToHelperInvocationEXT].setResultAndType(false, false);
 
         InstructionDesc[OpReadClockKHR].operands.push(OperandScope, "'Scope'");
@@ -3282,10 +3384,52 @@
         InstructionDesc[OpHitObjectTraceRayMotionNV].operands.push(OperandId, "'Payload'");
         InstructionDesc[OpHitObjectTraceRayMotionNV].setResultAndType(false, false);
 
+        InstructionDesc[OpFetchMicroTriangleVertexBarycentricNV].operands.push(OperandId, "'Acceleration Structure'");
+        InstructionDesc[OpFetchMicroTriangleVertexBarycentricNV].operands.push(OperandId, "'Instance ID'");
+        InstructionDesc[OpFetchMicroTriangleVertexBarycentricNV].operands.push(OperandId, "'Geometry Index'");
+        InstructionDesc[OpFetchMicroTriangleVertexBarycentricNV].operands.push(OperandId, "'Primitive Index'");
+        InstructionDesc[OpFetchMicroTriangleVertexBarycentricNV].operands.push(OperandId, "'Barycentrics'");
+        InstructionDesc[OpFetchMicroTriangleVertexBarycentricNV].setResultAndType(true, true);
+
+        InstructionDesc[OpFetchMicroTriangleVertexPositionNV].operands.push(OperandId, "'Acceleration Structure'");
+        InstructionDesc[OpFetchMicroTriangleVertexPositionNV].operands.push(OperandId, "'Instance ID'");
+        InstructionDesc[OpFetchMicroTriangleVertexPositionNV].operands.push(OperandId, "'Geometry Index'");
+        InstructionDesc[OpFetchMicroTriangleVertexPositionNV].operands.push(OperandId, "'Primitive Index'");
+        InstructionDesc[OpFetchMicroTriangleVertexPositionNV].operands.push(OperandId, "'Barycentrics'");
+        InstructionDesc[OpFetchMicroTriangleVertexPositionNV].setResultAndType(true, true);
+
         InstructionDesc[OpColorAttachmentReadEXT].operands.push(OperandId, "'Attachment'");
         InstructionDesc[OpColorAttachmentReadEXT].operands.push(OperandId, "'Sample'", true);
         InstructionDesc[OpStencilAttachmentReadEXT].operands.push(OperandId, "'Sample'", true);
         InstructionDesc[OpDepthAttachmentReadEXT].operands.push(OperandId, "'Sample'", true);
+
+        InstructionDesc[OpImageSampleWeightedQCOM].operands.push(OperandId, "'source texture'");
+        InstructionDesc[OpImageSampleWeightedQCOM].operands.push(OperandId, "'texture coordinates'");
+        InstructionDesc[OpImageSampleWeightedQCOM].operands.push(OperandId, "'weights texture'");
+        InstructionDesc[OpImageSampleWeightedQCOM].operands.push(OperandImageOperands, "", true);
+        InstructionDesc[OpImageSampleWeightedQCOM].setResultAndType(true, true);
+
+        InstructionDesc[OpImageBoxFilterQCOM].operands.push(OperandId, "'source texture'");
+        InstructionDesc[OpImageBoxFilterQCOM].operands.push(OperandId, "'texture coordinates'");
+        InstructionDesc[OpImageBoxFilterQCOM].operands.push(OperandId, "'box size'");
+        InstructionDesc[OpImageBoxFilterQCOM].operands.push(OperandImageOperands, "", true);
+        InstructionDesc[OpImageBoxFilterQCOM].setResultAndType(true, true);
+
+        InstructionDesc[OpImageBlockMatchSADQCOM].operands.push(OperandId, "'target texture'");
+        InstructionDesc[OpImageBlockMatchSADQCOM].operands.push(OperandId, "'target coordinates'");
+        InstructionDesc[OpImageBlockMatchSADQCOM].operands.push(OperandId, "'reference texture'");
+        InstructionDesc[OpImageBlockMatchSADQCOM].operands.push(OperandId, "'reference coordinates'");
+        InstructionDesc[OpImageBlockMatchSADQCOM].operands.push(OperandId, "'block size'");
+        InstructionDesc[OpImageBlockMatchSADQCOM].operands.push(OperandImageOperands, "", true);
+        InstructionDesc[OpImageBlockMatchSADQCOM].setResultAndType(true, true);
+
+        InstructionDesc[OpImageBlockMatchSSDQCOM].operands.push(OperandId, "'target texture'");
+        InstructionDesc[OpImageBlockMatchSSDQCOM].operands.push(OperandId, "'target coordinates'");
+        InstructionDesc[OpImageBlockMatchSSDQCOM].operands.push(OperandId, "'reference texture'");
+        InstructionDesc[OpImageBlockMatchSSDQCOM].operands.push(OperandId, "'reference coordinates'");
+        InstructionDesc[OpImageBlockMatchSSDQCOM].operands.push(OperandId, "'block size'");
+        InstructionDesc[OpImageBlockMatchSSDQCOM].operands.push(OperandImageOperands, "", true);
+        InstructionDesc[OpImageBlockMatchSSDQCOM].setResultAndType(true, true);
     });
 }
 
diff --git a/SPIRV/doc.h b/SPIRV/doc.h
index 95aa5ce..5215299 100644
--- a/SPIRV/doc.h
+++ b/SPIRV/doc.h
@@ -156,6 +156,7 @@
     OperandKernelEnqueueFlags,
     OperandKernelProfilingInfo,
     OperandCapability,
+    OperandCooperativeMatrixOperands,
 
     OperandOpcode,
 
@@ -239,8 +240,8 @@
     OperandParameters operands;
 
 protected:
-    int typePresent   : 1;
-    int resultPresent : 1;
+    bool typePresent   : 1;
+    bool resultPresent : 1;
 };
 
 // The set of objects that hold all the instruction/operand
diff --git a/SPIRV/spirv.hpp b/SPIRV/spirv.hpp
index f3fb899..1fc3ae6 100644
--- a/SPIRV/spirv.hpp
+++ b/SPIRV/spirv.hpp
@@ -174,6 +174,8 @@
     ExecutionModeStencilRefUnchangedBackAMD = 5082,
     ExecutionModeStencilRefGreaterBackAMD = 5083,
     ExecutionModeStencilRefLessBackAMD = 5084,
+    ExecutionModeQuadDerivativesKHR  = 5088,
+    ExecutionModeRequireFullQuadsKHR = 5089,
     ExecutionModeOutputLinesEXT = 5269,
     ExecutionModeOutputLinesNV = 5269,
     ExecutionModeOutputPrimitivesEXT = 5270,
@@ -198,6 +200,7 @@
     ExecutionModeNoGlobalOffsetINTEL = 5895,
     ExecutionModeNumSIMDWorkitemsINTEL = 5896,
     ExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
+    ExecutionModeMaximallyReconvergesKHR = 6023,
     ExecutionModeStreamingInterfaceINTEL = 6154,
     ExecutionModeNamedBarrierCountINTEL = 6417,
     ExecutionModeMax = 0x7fffffff,
@@ -513,6 +516,8 @@
     DecorationMaxByteOffsetId = 47,
     DecorationNoSignedWrap = 4469,
     DecorationNoUnsignedWrap = 4470,
+    DecorationWeightTextureQCOM = 4487,
+    DecorationBlockMatchTextureQCOM = 4488,
     DecorationExplicitInterpAMD = 4999,
     DecorationOverrideCoverageNV = 5248,
     DecorationPassthroughNV = 5250,
@@ -718,6 +723,10 @@
     BuiltInHitKindNV = 5333,
     BuiltInCurrentRayTimeNV = 5334,
     BuiltInHitTriangleVertexPositionsKHR = 5335,
+    BuiltInHitMicroTriangleVertexPositionsNV = 5337,
+    BuiltInHitMicroTriangleVertexBarycentricsNV = 5344,
+    BuiltInHitKindFrontFacingMicroTriangleNV = 5405,
+    BuiltInHitKindBackFacingMicroTriangleNV = 5406,
     BuiltInIncomingRayFlagsKHR = 5351,
     BuiltInIncomingRayFlagsNV = 5351,
     BuiltInRayGeometryIndexKHR = 5352,
@@ -1023,6 +1032,9 @@
     CapabilityRayQueryKHR = 4472,
     CapabilityRayTraversalPrimitiveCullingKHR = 4478,
     CapabilityRayTracingKHR = 4479,
+    CapabilityTextureSampleWeightedQCOM = 4484,
+    CapabilityTextureBoxFilterQCOM = 4485,
+    CapabilityTextureBlockMatchQCOM = 4486,
     CapabilityFloat16ImageAMD = 5008,
     CapabilityImageGatherBiasLodAMD = 5009,
     CapabilityFragmentMaskAMD = 5010,
@@ -1030,6 +1042,7 @@
     CapabilityImageReadWriteLodAMD = 5015,
     CapabilityInt64ImageEXT = 5016,
     CapabilityShaderClockKHR = 5055,
+    CapabilityQuadControlKHR = 5087,
     CapabilitySampleMaskOverrideCoverageNV = 5249,
     CapabilityGeometryShaderPassthroughNV = 5251,
     CapabilityShaderViewportIndexLayerEXT = 5254,
@@ -1089,6 +1102,8 @@
     CapabilityFragmentShaderPixelInterlockEXT = 5378,
     CapabilityDemoteToHelperInvocation = 5379,
     CapabilityDemoteToHelperInvocationEXT = 5379,
+    CapabilityDisplacementMicromapNV = 5380,
+    CapabilityRayTracingDisplacementMicromapNV = 5409,
     CapabilityRayTracingOpacityMicromapEXT = 5381,
     CapabilityShaderInvocationReorderNV = 5383,
     CapabilityBindlessTextureNV = 5390,
@@ -1144,6 +1159,7 @@
     CapabilityDotProduct = 6019,
     CapabilityDotProductKHR = 6019,
     CapabilityRayCullMaskKHR = 6020,
+    CapabilityCooperativeMatrixKHR = 6022,
     CapabilityBitInstructions = 6025,
     CapabilityGroupNonUniformRotateKHR = 6026,
     CapabilityAtomicFloat32AddEXT = 6033,
@@ -1261,6 +1277,37 @@
     PackedVectorFormatMax = 0x7fffffff,
 };
 
+enum CooperativeMatrixOperandsShift {
+    CooperativeMatrixOperandsMatrixASignedComponentsKHRShift = 0,
+    CooperativeMatrixOperandsMatrixBSignedComponentsKHRShift = 1,
+    CooperativeMatrixOperandsMatrixCSignedComponentsKHRShift = 2,
+    CooperativeMatrixOperandsMatrixResultSignedComponentsKHRShift = 3,
+    CooperativeMatrixOperandsSaturatingAccumulationKHRShift = 4,
+    CooperativeMatrixOperandsMax = 0x7fffffff,
+};
+
+enum CooperativeMatrixOperandsMask {
+    CooperativeMatrixOperandsMaskNone = 0,
+    CooperativeMatrixOperandsMatrixASignedComponentsKHRMask = 0x00000001,
+    CooperativeMatrixOperandsMatrixBSignedComponentsKHRMask = 0x00000002,
+    CooperativeMatrixOperandsMatrixCSignedComponentsKHRMask = 0x00000004,
+    CooperativeMatrixOperandsMatrixResultSignedComponentsKHRMask = 0x00000008,
+    CooperativeMatrixOperandsSaturatingAccumulationKHRMask = 0x00000010,
+};
+
+enum CooperativeMatrixLayout {
+    CooperativeMatrixLayoutRowMajorKHR = 0,
+    CooperativeMatrixLayoutColumnMajorKHR = 1,
+    CooperativeMatrixLayoutMax = 0x7fffffff,
+};
+
+enum CooperativeMatrixUse {
+    CooperativeMatrixUseMatrixAKHR = 0,
+    CooperativeMatrixUseMatrixBKHR = 1,
+    CooperativeMatrixUseMatrixAccumulatorKHR = 2,
+    CooperativeMatrixUseMax = 0x7fffffff,
+};
+
 enum Op {
     OpNop = 0,
     OpUndef = 1,
@@ -1634,6 +1681,11 @@
     OpUDotAccSatKHR = 4454,
     OpSUDotAccSat = 4455,
     OpSUDotAccSatKHR = 4455,
+    OpTypeCooperativeMatrixKHR = 4456,
+    OpCooperativeMatrixLoadKHR = 4457,
+    OpCooperativeMatrixStoreKHR = 4458,
+    OpCooperativeMatrixMulAddKHR = 4459,
+    OpCooperativeMatrixLengthKHR = 4460,
     OpTypeRayQueryKHR = 4472,
     OpRayQueryInitializeKHR = 4473,
     OpRayQueryTerminateKHR = 4474,
@@ -1641,6 +1693,10 @@
     OpRayQueryConfirmIntersectionKHR = 4476,
     OpRayQueryProceedKHR = 4477,
     OpRayQueryGetIntersectionTypeKHR = 4479,
+    OpImageSampleWeightedQCOM = 4480,
+    OpImageBoxFilterQCOM = 4481,
+    OpImageBlockMatchSSDQCOM = 4482,
+    OpImageBlockMatchSADQCOM = 4483,
     OpGroupIAddNonUniformAMD = 5000,
     OpGroupFAddNonUniformAMD = 5001,
     OpGroupFMinNonUniformAMD = 5002,
@@ -1652,6 +1708,8 @@
     OpFragmentMaskFetchAMD = 5011,
     OpFragmentFetchAMD = 5012,
     OpReadClockKHR = 5056,
+    OpGroupNonUniformQuadAllKHR = 5110,
+    OpGroupNonUniformQuadAnyKHR = 5111,
     OpHitObjectRecordHitMotionNV = 5249,
     OpHitObjectRecordHitWithIndexMotionNV = 5250,
     OpHitObjectRecordMissMotionNV = 5251,
@@ -1690,6 +1748,8 @@
     OpSetMeshOutputsEXT = 5295,
     OpGroupNonUniformPartitionNV = 5296,
     OpWritePackedPrimitiveIndices4x8NV = 5299,
+    OpFetchMicroTriangleVertexPositionNV = 5300,
+    OpFetchMicroTriangleVertexBarycentricNV = 5301,
     OpReportIntersectionKHR = 5334,
     OpReportIntersectionNV = 5334,
     OpIgnoreIntersectionNV = 5335,
@@ -2320,6 +2380,8 @@
     case OpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break;
     case OpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break;
     case OpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break;
+    case OpGroupNonUniformQuadAllKHR: *hasResult = true; *hasResultType = true; break;
+    case OpGroupNonUniformQuadAnyKHR: *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;
@@ -2346,6 +2408,11 @@
     case OpSDotAccSat: *hasResult = true; *hasResultType = true; break;
     case OpUDotAccSat: *hasResult = true; *hasResultType = true; break;
     case OpSUDotAccSat: *hasResult = true; *hasResultType = true; break;
+    case OpTypeCooperativeMatrixKHR: *hasResult = true; *hasResultType = false; break;
+    case OpCooperativeMatrixLoadKHR: *hasResult = true; *hasResultType = true; break;
+    case OpCooperativeMatrixStoreKHR: *hasResult = false; *hasResultType = false; break;
+    case OpCooperativeMatrixMulAddKHR: *hasResult = true; *hasResultType = true; break;
+    case OpCooperativeMatrixLengthKHR: *hasResult = true; *hasResultType = true; break;
     case OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
     case OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
     case OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
@@ -2353,6 +2420,10 @@
     case OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
     case OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
     case OpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;
+    case OpImageSampleWeightedQCOM: *hasResult = true; *hasResultType = true; break;
+    case OpImageBoxFilterQCOM: *hasResult = true; *hasResultType = true; break;
+    case OpImageBlockMatchSSDQCOM: *hasResult = true; *hasResultType = true; break;
+    case OpImageBlockMatchSADQCOM: *hasResult = true; *hasResultType = true; break;
     case OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
     case OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
     case OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
@@ -2722,6 +2793,10 @@
 inline FragmentShadingRateMask operator&(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) & unsigned(b)); }
 inline FragmentShadingRateMask operator^(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) ^ unsigned(b)); }
 inline FragmentShadingRateMask operator~(FragmentShadingRateMask a) { return FragmentShadingRateMask(~unsigned(a)); }
+inline CooperativeMatrixOperandsMask operator|(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) | unsigned(b)); }
+inline CooperativeMatrixOperandsMask operator&(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) & unsigned(b)); }
+inline CooperativeMatrixOperandsMask operator^(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) ^ unsigned(b)); }
+inline CooperativeMatrixOperandsMask operator~(CooperativeMatrixOperandsMask a) { return CooperativeMatrixOperandsMask(~unsigned(a)); }
 
 }  // end namespace spv
 
diff --git a/SPIRV/spvIR.h b/SPIRV/spvIR.h
index 5cbffec..8849f42 100644
--- a/SPIRV/spvIR.h
+++ b/SPIRV/spvIR.h
@@ -323,7 +323,7 @@
 
 class Function {
 public:
-    Function(Id id, Id resultType, Id functionType, Id firstParam, Module& parent);
+    Function(Id id, Id resultType, Id functionType, Id firstParam, LinkageType linkage, const std::string& name, Module& parent);
     virtual ~Function()
     {
         for (int i = 0; i < (int)parameterInstructions.size(); ++i)
@@ -352,6 +352,7 @@
     void addLocalVariable(std::unique_ptr<Instruction> inst);
     Id getReturnType() const { return functionInstruction.getTypeId(); }
     Id getFuncId() const { return functionInstruction.getResultId(); }
+    Id getFuncTypeId() const { return functionInstruction.getIdOperand(1); }
     void setReturnPrecision(Decoration precision)
     {
         if (precision == DecorationRelaxedPrecision)
@@ -402,6 +403,9 @@
         end.dump(out);
     }
 
+    LinkageType getLinkType() const { return linkType; }
+    const char* getExportName() const { return exportName.c_str(); }
+
 protected:
     Function(const Function&);
     Function& operator=(Function&);
@@ -414,6 +418,8 @@
     bool implicitThis;  // true if this is a member function expecting to be passed a 'this' as the first argument
     bool reducedPrecisionReturn;
     std::set<int> reducedPrecisionParams;  // list of parameter indexes that need a relaxed precision arg
+    LinkageType linkType;
+    std::string exportName;
 };
 
 //
@@ -473,10 +479,11 @@
 // Add both
 // - the OpFunction instruction
 // - all the OpFunctionParameter instructions
-__inline Function::Function(Id id, Id resultType, Id functionType, Id firstParamId, Module& parent)
+__inline Function::Function(Id id, Id resultType, Id functionType, Id firstParamId, LinkageType linkage, const std::string& name, Module& parent)
     : parent(parent), lineInstruction(nullptr),
       functionInstruction(id, resultType, OpFunction), implicitThis(false),
-      reducedPrecisionReturn(false)
+      reducedPrecisionReturn(false),
+      linkType(linkage)
 {
     // OpFunction
     functionInstruction.addImmediateOperand(FunctionControlMaskNone);
@@ -492,6 +499,11 @@
         parent.mapInstruction(param);
         parameterInstructions.push_back(param);
     }
+
+    // If importing/exporting, save the function name (without the mangled parameters) for the linkage decoration
+    if (linkType != LinkageTypeMax) {
+        exportName = name.substr(0, name.find_first_of('('));
+    }
 }
 
 __inline void Function::addLocalVariable(std::unique_ptr<Instruction> inst)
diff --git a/StandAlone/CMakeLists.txt b/StandAlone/CMakeLists.txt
index d146063..d316adf 100644
--- a/StandAlone/CMakeLists.txt
+++ b/StandAlone/CMakeLists.txt
@@ -31,7 +31,7 @@
 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 # POSSIBILITY OF SUCH DAMAGE.
 
-find_host_package(Python3 REQUIRED)
+find_package(Python3 REQUIRED)
 
 set(GLSLANG_INTRINSIC_H          "${GLSLANG_GENERATED_INCLUDEDIR}/glslang/glsl_intrinsic_header.h")
 set(GLSLANG_INTRINSIC_PY         "${CMAKE_CURRENT_SOURCE_DIR}/../gen_extension_headers.py")
@@ -48,19 +48,21 @@
 set(SOURCES StandAlone.cpp DirStackFileIncluder.h  ${GLSLANG_INTRINSIC_H})
 
 add_executable(glslang-standalone ${SOURCES})
+if(${CMAKE_CXX_COMPILER_ID} MATCHES "GNU")
+    target_compile_options(glslang-standalone PRIVATE -Wconversion)
+elseif(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang" AND NOT MSVC)
+    target_compile_options(glslang-standalone PRIVATE -Wshorten-64-to-32)
+endif()
 set_property(TARGET glslang-standalone PROPERTY FOLDER tools)
 set_property(TARGET glslang-standalone PROPERTY OUTPUT_NAME glslang)
 glslang_set_link_args(glslang-standalone)
 
 set(LIBRARIES
     glslang
+    OSDependent
     SPIRV
     glslang-default-resource-limits)
 
-if(ENABLE_SPVREMAPPER)
-    set(LIBRARIES ${LIBRARIES} SPVRemapper)
-endif()
-
 if(WIN32)
     set(LIBRARIES ${LIBRARIES} psapi)
 elseif(UNIX)
@@ -71,42 +73,23 @@
 
 target_link_libraries(glslang-standalone ${LIBRARIES})
 target_include_directories(glslang-standalone PUBLIC
-    $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../External>
-    $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/External>)
-
-if(ENABLE_OPT)
-    target_include_directories(glslang-standalone
-        PRIVATE ${spirv-tools_SOURCE_DIR}/include
-    )
-endif()
+    $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../External>)
 
 if(ENABLE_SPVREMAPPER)
     set(REMAPPER_SOURCES spirv-remap.cpp)
     add_executable(spirv-remap ${REMAPPER_SOURCES})
     set_property(TARGET spirv-remap PROPERTY FOLDER tools)
     glslang_set_link_args(spirv-remap)
-    target_link_libraries(spirv-remap ${LIBRARIES})
+    target_link_libraries(spirv-remap SPVRemapper ${LIBRARIES})
 endif()
 
 if(WIN32)
     source_group("Source" FILES ${SOURCES})
 endif()
 
-if(ENABLE_GLSLANG_INSTALL)
+if(PROJECT_IS_TOP_LEVEL)
     install(TARGETS glslang-standalone EXPORT glslang-targets)
 
-    # Backward compatibility
-    file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/glslang-standaloneTargets.cmake" "
-        message(WARNING \"Using `glslang-standaloneTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\")
-
-        if (NOT TARGET glslang::glslang-standalone)
-            include(\"${CMAKE_INSTALL_FULL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\")
-        endif()
-
-        add_library(glslang-standalone ALIAS glslang::glslang-standalone)
-    ")
-    install(FILES "${CMAKE_CURRENT_BINARY_DIR}/glslang-standaloneTargets.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake)
-
     # Create a symbolic link to glslang named glslangValidator for backwards compatibility
     set(legacy_glslang_name "glslangValidator${CMAKE_EXECUTABLE_SUFFIX}")
     set(link_method create_symlink)
@@ -121,22 +104,10 @@
     # Create the same symlink at install time
     install(CODE "execute_process( \
                       COMMAND ${CMAKE_COMMAND} -E ${link_method} $<TARGET_FILE_NAME:glslang-standalone> ${legacy_glslang_name} \
-                      WORKING_DIRECTORY ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR})")
+                      WORKING_DIRECTORY \$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR})")
 
     if(ENABLE_SPVREMAPPER)
         install(TARGETS spirv-remap EXPORT glslang-targets)
-
-        # Backward compatibility
-        file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/spirv-remapTargets.cmake" "
-            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_INSTALL_FULL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\")
-            endif()
-
-            add_library(spirv-remap ALIAS glslang::spirv-remap)
-        ")
-        install(FILES "${CMAKE_CURRENT_BINARY_DIR}/spirv-remapTargets.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake)
     endif()
 
 endif()
diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp
index 8a78b21..ed3decc 100644
--- a/StandAlone/StandAlone.cpp
+++ b/StandAlone/StandAlone.cpp
@@ -46,20 +46,22 @@
 #include "DirStackFileIncluder.h"
 #include "./../glslang/Include/ShHandle.h"
 #include "./../glslang/Public/ShaderLang.h"
+#include "../glslang/MachineIndependent/localintermediate.h"
 #include "../SPIRV/GlslangToSpv.h"
 #include "../SPIRV/GLSL.std.450.h"
 #include "../SPIRV/doc.h"
 #include "../SPIRV/disassemble.h"
 
-#include <cstring>
-#include <cstdlib>
+#include <array>
+#include <atomic>
 #include <cctype>
 #include <cmath>
-#include <array>
+#include <cstdlib>
+#include <cstring>
 #include <map>
 #include <memory>
-#include <thread>
 #include <set>
+#include <thread>
 
 #include "../glslang/OSDependent/osinclude.h"
 
@@ -73,40 +75,41 @@
 }
 
 // Command-line options
-enum TOptions {
-    EOptionNone                 = 0,
-    EOptionIntermediate         = (1 <<  0),
-    EOptionSuppressInfolog      = (1 <<  1),
-    EOptionMemoryLeakMode       = (1 <<  2),
-    EOptionRelaxedErrors        = (1 <<  3),
-    EOptionGiveWarnings         = (1 <<  4),
-    EOptionLinkProgram          = (1 <<  5),
-    EOptionMultiThreaded        = (1 <<  6),
-    EOptionDumpConfig           = (1 <<  7),
-    EOptionDumpReflection       = (1 <<  8),
-    EOptionSuppressWarnings     = (1 <<  9),
-    EOptionDumpVersions         = (1 << 10),
-    EOptionSpv                  = (1 << 11),
-    EOptionHumanReadableSpv     = (1 << 12),
-    EOptionVulkanRules          = (1 << 13),
-    EOptionDefaultDesktop       = (1 << 14),
-    EOptionOutputPreprocessed   = (1 << 15),
-    EOptionOutputHexadecimal    = (1 << 16),
-    EOptionReadHlsl             = (1 << 17),
-    EOptionCascadingErrors      = (1 << 18),
-    EOptionAutoMapBindings      = (1 << 19),
-    EOptionFlattenUniformArrays = (1 << 20),
-    EOptionNoStorageFormat      = (1 << 21),
-    EOptionKeepUncalled         = (1 << 22),
-    EOptionHlslOffsets          = (1 << 23),
-    EOptionHlslIoMapping        = (1 << 24),
-    EOptionAutoMapLocations     = (1 << 25),
-    EOptionDebug                = (1 << 26),
-    EOptionStdin                = (1 << 27),
-    EOptionOptimizeDisable      = (1 << 28),
-    EOptionOptimizeSize         = (1 << 29),
-    EOptionInvertY              = (1 << 30),
-    EOptionDumpBareVersion      = (1 << 31),
+enum TOptions : uint64_t {
+    EOptionNone = 0,
+    EOptionIntermediate = (1ull << 0),
+    EOptionSuppressInfolog = (1ull << 1),
+    EOptionMemoryLeakMode = (1ull << 2),
+    EOptionRelaxedErrors = (1ull << 3),
+    EOptionGiveWarnings = (1ull << 4),
+    EOptionLinkProgram = (1ull << 5),
+    EOptionMultiThreaded = (1ull << 6),
+    EOptionDumpConfig = (1ull << 7),
+    EOptionDumpReflection = (1ull << 8),
+    EOptionSuppressWarnings = (1ull << 9),
+    EOptionDumpVersions = (1ull << 10),
+    EOptionSpv = (1ull << 11),
+    EOptionHumanReadableSpv = (1ull << 12),
+    EOptionVulkanRules = (1ull << 13),
+    EOptionDefaultDesktop = (1ull << 14),
+    EOptionOutputPreprocessed = (1ull << 15),
+    EOptionOutputHexadecimal = (1ull << 16),
+    EOptionReadHlsl = (1ull << 17),
+    EOptionCascadingErrors = (1ull << 18),
+    EOptionAutoMapBindings = (1ull << 19),
+    EOptionFlattenUniformArrays = (1ull << 20),
+    EOptionNoStorageFormat = (1ull << 21),
+    EOptionKeepUncalled = (1ull << 22),
+    EOptionHlslOffsets = (1ull << 23),
+    EOptionHlslIoMapping = (1ull << 24),
+    EOptionAutoMapLocations = (1ull << 25),
+    EOptionDebug = (1ull << 26),
+    EOptionStdin = (1ull << 27),
+    EOptionOptimizeDisable = (1ull << 28),
+    EOptionOptimizeSize = (1ull << 29),
+    EOptionInvertY = (1ull << 30),
+    EOptionDumpBareVersion = (1ull << 31),
+    EOptionCompileOnly = (1ull << 32),
 };
 bool targetHlslFunctionality1 = false;
 bool SpvToolsDisassembler = false;
@@ -143,8 +146,9 @@
 void InfoLogMsg(const char* msg, const char* name, const int num);
 
 // Globally track if any compile or link failure.
-bool CompileFailed = false;
-bool LinkFailed = false;
+std::atomic<int8_t> CompileFailed{0};
+std::atomic<int8_t> LinkFailed{0};
+std::atomic<int8_t> CompileOrLinkFailed{0};
 
 // array of unique places to leave the shader names and infologs for the asynchronous compiles
 std::vector<std::unique_ptr<glslang::TWorkItem>> WorkItems;
@@ -158,17 +162,15 @@
 {
     if (ConfigFile.size() == 0)
         *GetResources() = *GetDefaultResources();
-#ifndef GLSLANG_WEB
     else {
         char* configString = ReadFileData(ConfigFile.c_str());
         DecodeResourceLimits(GetResources(),  configString);
         FreeFileData(configString);
     }
-#endif
 }
 
 int ReflectOptions = EShReflectionDefault;
-int Options = 0;
+std::underlying_type_t<TOptions> Options = EOptionNone;
 const char* ExecutableName = nullptr;
 const char* binaryFileName = nullptr;
 const char* depencyFileName = nullptr;
@@ -515,7 +517,7 @@
 
     if (set) {
         errno = 0;
-        int setVal = ::strtol(argv[curArg], nullptr, 10);
+        int setVal = static_cast<int>(::strtol(argv[curArg], nullptr, 10));
         if (errno || setVal < 0) {
             printf("%s: invalid set\n", argv[curArg]);
             usage();
@@ -527,7 +529,7 @@
 
     if (binding) {
         errno = 0;
-        int bindingVal = ::strtol(argv[curArg], nullptr, 10);
+        int bindingVal = static_cast<int>(::strtol(argv[curArg], nullptr, 10));
         if (errno || bindingVal < 0) {
             printf("%s: invalid binding\n", argv[curArg]);
             usage();
@@ -610,7 +612,7 @@
             exit(EFailUsage);
         }
         errno = 0;
-        int location = ::strtol(split + 1, nullptr, 10);
+        int location = static_cast<int>(::strtol(split + 1, nullptr, 10));
         if (errno) {
             printf("%s: invalid location\n", arg);
             exit(EFailUsage);
@@ -637,7 +639,7 @@
                     } else if (lowerword == "uniform-base") {
                         if (argc <= 1)
                             Error("no <base> provided", lowerword.c_str());
-                        uniformBase = ::strtol(argv[1], nullptr, 10);
+                        uniformBase = static_cast<int>(::strtol(argv[1], nullptr, 10));
                         bumpArg();
                         break;
                     } else if (lowerword == "client") {
@@ -891,6 +893,8 @@
                         bumpArg();
                     } else if (lowerword == "version") {
                         Options |= EOptionDumpVersions;
+                    } else if (lowerword == "no-link") {
+                        Options |= EOptionCompileOnly;
                     } else if (lowerword == "help") {
                         usage();
                         break;
@@ -1165,10 +1169,11 @@
     if (Options & EOptionDebug)
         Error("cannot generate debug information unless linking to generate code");
 
+    // NOTE: TWorkList::remove is thread-safe
     glslang::TWorkItem* workItem;
     if (Options & EOptionStdin) {
         if (worklist.remove(workItem)) {
-            ShHandle compiler = ShConstructCompiler(FindLanguage("stdin"), Options);
+            ShHandle compiler = ShConstructCompiler(FindLanguage("stdin"), 0);
             if (compiler == nullptr)
                 return;
 
@@ -1181,7 +1186,7 @@
         }
     } else {
         while (worklist.remove(workItem)) {
-            ShHandle compiler = ShConstructCompiler(FindLanguage(workItem->name), Options);
+            ShHandle compiler = ShConstructCompiler(FindLanguage(workItem->name), 0);
             if (compiler == nullptr)
                 return;
 
@@ -1312,6 +1317,7 @@
     //
 
     glslang::TProgram& program = *new glslang::TProgram;
+    const bool compileOnly = (Options & EOptionCompileOnly) != 0;
     for (auto it = compUnits.cbegin(); it != compUnits.cend(); ++it) {
         const auto &compUnit = *it;
         for (int i = 0; i < compUnit.count; i++) {
@@ -1328,6 +1334,9 @@
             shader->setSourceEntryPoint(sourceEntryPointName);
         }
 
+        if (compileOnly)
+            shader->setCompileOnly();
+
         shader->setOverrideVersion(GlslVersion);
 
         std::string intrinsicString = getIntrinsic(compUnit.text, compUnit.count);
@@ -1342,7 +1351,6 @@
         shader->setPreamble(PreambleString.c_str());
         shader->addProcesses(Processes);
 
-#ifndef GLSLANG_WEB
         // Set IO mapper binding shift values
         for (int r = 0; r < glslang::EResCount; ++r) {
             const glslang::TResourceType res = glslang::TResourceType(r);
@@ -1374,7 +1382,6 @@
         }
 
         shader->setUniformLocationBase(uniformBase);
-#endif
 
         if (VulkanRulesRelaxed) {
             for (auto& storageOverride : blockStorageOverrides) {
@@ -1434,24 +1441,23 @@
 
         const int defaultVersion = Options & EOptionDefaultDesktop ? 110 : 100;
 
-#ifndef GLSLANG_WEB
         if (Options & EOptionOutputPreprocessed) {
             std::string str;
             if (shader->preprocess(GetResources(), defaultVersion, ENoProfile, false, false, messages, &str, includer)) {
                 PutsIfNonEmpty(str.c_str());
             } else {
-                CompileFailed = true;
+                CompileFailed = 1;
             }
             StderrIfNonEmpty(shader->getInfoLog());
             StderrIfNonEmpty(shader->getInfoDebugLog());
             continue;
         }
-#endif
 
         if (! shader->parse(GetResources(), defaultVersion, false, messages, includer))
-            CompileFailed = true;
+            CompileFailed = 1;
 
-        program.addShader(shader);
+        if (!compileOnly)
+            program.addShader(shader);
 
         if (! (Options & EOptionSuppressInfolog) &&
             ! (Options & EOptionMemoryLeakMode)) {
@@ -1466,85 +1472,98 @@
     // Program-level processing...
     //
 
-    // Link
-    if (! (Options & EOptionOutputPreprocessed) && ! program.link(messages))
-        LinkFailed = true;
-
-#ifndef GLSLANG_WEB
-    // Map IO
-    if (Options & EOptionSpv) {
-        if (!program.mapIO())
+    if (!compileOnly) {
+        // Link
+        if (!(Options & EOptionOutputPreprocessed) && !program.link(messages))
             LinkFailed = true;
-    }
-#endif
 
-    // Report
-    if (! (Options & EOptionSuppressInfolog) &&
-        ! (Options & EOptionMemoryLeakMode)) {
-        PutsIfNonEmpty(program.getInfoLog());
-        PutsIfNonEmpty(program.getInfoDebugLog());
-    }
+        // Map IO
+        if (Options & EOptionSpv) {
+            if (!program.mapIO())
+                LinkFailed = true;
+        }
 
-#ifndef GLSLANG_WEB
-    // Reflect
-    if (Options & EOptionDumpReflection) {
-        program.buildReflection(ReflectOptions);
-        program.dumpReflection();
+        // Report
+        if (!(Options & EOptionSuppressInfolog) && !(Options & EOptionMemoryLeakMode)) {
+            PutsIfNonEmpty(program.getInfoLog());
+            PutsIfNonEmpty(program.getInfoDebugLog());
+        }
+
+        // Reflect
+        if (Options & EOptionDumpReflection) {
+            program.buildReflection(ReflectOptions);
+            program.dumpReflection();
+        }
     }
-#endif
 
     std::vector<std::string> outputFiles;
 
     // Dump SPIR-V
     if (Options & EOptionSpv) {
-        if (CompileFailed || LinkFailed)
+        CompileOrLinkFailed.fetch_or(CompileFailed);
+        CompileOrLinkFailed.fetch_or(LinkFailed);
+        if (static_cast<bool>(CompileOrLinkFailed.load()))
             printf("SPIR-V is not generated for failed compile or link\n");
         else {
-            for (int stage = 0; stage < EShLangCount; ++stage) {
-                if (program.getIntermediate((EShLanguage)stage)) {
-                    std::vector<unsigned int> spirv;
-                    spv::SpvBuildLogger logger;
-                    glslang::SpvOptions spvOptions;
-                    if (Options & EOptionDebug) {
-                        spvOptions.generateDebugInfo = true;
-                        if (emitNonSemanticShaderDebugInfo) {
-                            spvOptions.emitNonSemanticShaderDebugInfo = true;
-                            if (emitNonSemanticShaderDebugSource) {
-                                spvOptions.emitNonSemanticShaderDebugSource = true;
-                            }
-                        }
-                    } else if (stripDebugInfo)
-                        spvOptions.stripDebugInfo = true;
-                    spvOptions.disableOptimizer = (Options & EOptionOptimizeDisable) != 0;
-                    spvOptions.optimizeSize = (Options & EOptionOptimizeSize) != 0;
-                    spvOptions.disassemble = SpvToolsDisassembler;
-                    spvOptions.validate = SpvToolsValidate;
-                    glslang::GlslangToSpv(*program.getIntermediate((EShLanguage)stage), spirv, &logger, &spvOptions);
-
-                    // Dump the spv to a file or stdout, etc., but only if not doing
-                    // memory/perf testing, as it's not internal to programmatic use.
-                    if (! (Options & EOptionMemoryLeakMode)) {
-                        printf("%s", logger.getAllMessages().c_str());
-                        if (Options & EOptionOutputHexadecimal) {
-                            if (!glslang::OutputSpvHex(spirv, GetBinaryName((EShLanguage)stage), variableName))
-                              exit(EFailUsage);
-                        } else {
-                            if (!glslang::OutputSpvBin(spirv, GetBinaryName((EShLanguage)stage)))
-                              exit(EFailUsage);
-                        }
-
-                        outputFiles.push_back(GetBinaryName((EShLanguage)stage));
-#ifndef GLSLANG_WEB
-                        if (!SpvToolsDisassembler && (Options & EOptionHumanReadableSpv))
-                            spv::Disassemble(std::cout, spirv);
-#endif
+            std::vector<glslang::TIntermediate*> intermediates;
+            if (!compileOnly) {
+                for (int stage = 0; stage < EShLangCount; ++stage) {
+                    if (auto* i = program.getIntermediate((EShLanguage)stage)) {
+                        intermediates.emplace_back(i);
                     }
                 }
+            } else {
+                for (const auto* shader : shaders) {
+                    if (auto* i = shader->getIntermediate()) {
+                        intermediates.emplace_back(i);
+                    }
+                }
+            }
+            for (auto* intermediate : intermediates) {
+                std::vector<unsigned int> spirv;
+                spv::SpvBuildLogger logger;
+                glslang::SpvOptions spvOptions;
+                if (Options & EOptionDebug) {
+                    spvOptions.generateDebugInfo = true;
+                    if (emitNonSemanticShaderDebugInfo) {
+                        spvOptions.emitNonSemanticShaderDebugInfo = true;
+                        if (emitNonSemanticShaderDebugSource) {
+                            spvOptions.emitNonSemanticShaderDebugSource = true;
+                        }
+                    }
+                } else if (stripDebugInfo)
+                    spvOptions.stripDebugInfo = true;
+                spvOptions.disableOptimizer = (Options & EOptionOptimizeDisable) != 0;
+                spvOptions.optimizeSize = (Options & EOptionOptimizeSize) != 0;
+                spvOptions.disassemble = SpvToolsDisassembler;
+                spvOptions.validate = SpvToolsValidate;
+                spvOptions.compileOnly = compileOnly;
+                glslang::GlslangToSpv(*intermediate, spirv, &logger, &spvOptions);
+
+                // Dump the spv to a file or stdout, etc., but only if not doing
+                // memory/perf testing, as it's not internal to programmatic use.
+                if (!(Options & EOptionMemoryLeakMode)) {
+                    printf("%s", logger.getAllMessages().c_str());
+                    const auto filename = GetBinaryName(intermediate->getStage());
+                    if (Options & EOptionOutputHexadecimal) {
+                        if (!glslang::OutputSpvHex(spirv, filename, variableName))
+                            exit(EFailUsage);
+                    } else {
+                        if (!glslang::OutputSpvBin(spirv, filename))
+                            exit(EFailUsage);
+                    }
+
+                    outputFiles.push_back(filename);
+                    if (!SpvToolsDisassembler && (Options & EOptionHumanReadableSpv))
+                        spv::Disassemble(std::cout, spirv);
+                }
             }
         }
     }
 
-    if (depencyFileName && !(CompileFailed || LinkFailed)) {
+    CompileOrLinkFailed.fetch_or(CompileFailed);
+    CompileOrLinkFailed.fetch_or(LinkFailed);
+    if (depencyFileName && !static_cast<bool>(CompileOrLinkFailed.load())) {
         std::set<std::string> includedFiles = includer.getIncludedFiles();
         sources.insert(sources.end(), includedFiles.begin(), includedFiles.end());
 
@@ -1632,13 +1651,11 @@
         workList.add(item.get());
     });
 
-#ifndef GLSLANG_WEB
     if (Options & EOptionDumpConfig) {
         printf("%s", GetDefaultTBuiltInResourceString().c_str());
         if (workList.empty())
             return ESuccess;
     }
-#endif
 
     if (Options & EOptionDumpBareVersion) {
         printf("%d:%d.%d.%d%s\n", glslang::GetSpirvGeneratorVersion(), GLSLANG_VERSION_MAJOR, GLSLANG_VERSION_MINOR,
@@ -1722,9 +1739,9 @@
         ShFinalize();
     }
 
-    if (CompileFailed)
+    if (CompileFailed.load())
         return EFailCompile;
-    if (LinkFailed)
+    if (LinkFailed.load())
         return EFailLink;
 
     return 0;
@@ -1860,7 +1877,8 @@
     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, GetResources(), 0,
+                            (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;}" };
@@ -2089,7 +2107,10 @@
            "  --variable-name <name>\n"
            "  --vn <name>                       creates a C header file that contains a\n"
            "                                    uint32_t array named <name>\n"
-           "                                    initialized with the shader binary code\n");
+           "                                    initialized with the shader binary code\n"
+           "  --no-link                         Only compile shader; do not link (GLSL-only)\n"
+           "                                    NOTE: this option will set the export linkage\n"
+           "                                          attribute on all functions\n");
 
     exit(EFailUsage);
 }
diff --git a/StandAlone/spirv-remap.cpp b/StandAlone/spirv-remap.cpp
index c54cbb9..1bd4a2d 100644
--- a/StandAlone/spirv-remap.cpp
+++ b/StandAlone/spirv-remap.cpp
@@ -37,7 +37,11 @@
 #include <fstream>
 #include <cstring>
 #include <stdexcept>
+#include <filesystem>
 
+//
+// Include remapper
+//
 #include "../SPIRV/SPVRemapper.h"
 
 namespace {
@@ -172,7 +176,7 @@
             << " [--strip-all | --strip all | -s]"
             << " [--strip-white-list]"
             << " [--do-everything]"
-            << " --input | -i file1 [file2...] --output|-o DESTDIR"
+            << " --input | -i file1 [file2...] --output|-o DESTDIR | destfile1 [destfile2...]"
             << std::endl;
 
         std::cout << "  " << basename(name) << " [--version | -V]" << std::endl;
@@ -182,32 +186,45 @@
     }
 
     // grind through each SPIR in turn
-    void execute(const std::vector<std::string>& inputFile, const std::string& outputDir,
-                 const std::string& whiteListFile, int opts, int verbosity)
+    void execute(const std::vector<std::string>& inputFiles,
+                 const std::vector<std::string>& outputDirOrFiles,
+                 const bool                      isSingleOutputDir,
+                 const std::string&              whiteListFile,
+                 int                             opts,
+                 int                             verbosity)
     {
         std::vector<std::string> whiteListStrings;
-        if(!whiteListFile.empty())
+        if (!whiteListFile.empty())
             read(whiteListStrings, whiteListFile, verbosity);
 
-        for (auto it = inputFile.cbegin(); it != inputFile.cend(); ++it) {
-            const std::string &filename = *it;
+        for (std::size_t ii=0; ii<inputFiles.size(); ii++) {
             std::vector<SpvWord> spv;
-            read(spv, filename, verbosity);
+            read(spv, inputFiles[ii], verbosity);
+
             spv::spirvbin_t(verbosity).remap(spv, whiteListStrings, opts);
-            const std::string outfile = outputDir + path_sep_char() + basename(filename);
-            write(spv, outfile, verbosity);
+
+            if (isSingleOutputDir) {
+                // write all outputs to same directory
+                const std::string outFile = outputDirOrFiles[0] + path_sep_char() + basename(inputFiles[ii]);
+                write(spv, outFile, verbosity);
+            } else {
+                // write each input to its associated output
+                write(spv, outputDirOrFiles[ii], verbosity);
+            }
         }
 
         if (verbosity > 0)
-            std::cout << "Done: " << inputFile.size() << " file(s) processed" << std::endl;
+            std::cout << "Done: " << inputFiles.size() << " file(s) processed" << std::endl;
     }
 
     // Parse command line options
-    void parseCmdLine(int argc, char** argv, std::vector<std::string>& inputFile,
-        std::string& outputDir,
-        std::string& stripWhiteListFile,
-        int& options,
-        int& verbosity)
+    void parseCmdLine(int argc,
+                      char** argv,
+                      std::vector<std::string>& inputFiles,
+                      std::vector<std::string>& outputDirOrFiles,
+                      std::string& stripWhiteListFile,
+                      int& options,
+                      int& verbosity)
     {
         if (argc < 2)
             usage(argv[0]);
@@ -222,18 +239,19 @@
             const std::string arg = argv[a];
 
             if (arg == "--output" || arg == "-o") {
-                // Output directory
-                if (++a >= argc)
+                // Collect output dirs or files
+                for (++a; a < argc && argv[a][0] != '-'; ++a)
+                    outputDirOrFiles.push_back(argv[a]);
+
+                if (outputDirOrFiles.size() == 0)
                     usage(argv[0], "--output requires an argument");
-                if (!outputDir.empty())
-                    usage(argv[0], "--output can be provided only once");
 
-                outputDir = argv[a++];
-
-                // Remove trailing directory separator characters
-                while (!outputDir.empty() && outputDir.back() == path_sep_char())
-                    outputDir.pop_back();
-
+                // Remove trailing directory separator characters from all paths
+                for (std::size_t ii=0; ii<outputDirOrFiles.size(); ii++) {
+                    auto path = outputDirOrFiles[ii];
+                    while (!path.empty() && path.back() == path_sep_char())
+                        path.pop_back();
+                }
             }
             else if (arg == "-vv")     { verbosity = 2; ++a; } // verbosity shortcuts
             else if (arg == "-vvv")    { verbosity = 3; ++a; } // ...
@@ -262,7 +280,7 @@
             } else if (arg == "--input" || arg == "-i") {
                 // Collect input files
                 for (++a; a < argc && argv[a][0] != '-'; ++a)
-                    inputFile.push_back(argv[a]);
+                    inputFiles.push_back(argv[a]);
             } else if (arg == "--do-everything") {
                 ++a;
                 options = options | spv::spirvbin_t::DO_EVERYTHING;
@@ -346,8 +364,8 @@
 
 int main(int argc, char** argv)
 {
-    std::vector<std::string> inputFile;
-    std::string              outputDir;
+    std::vector<std::string> inputFiles;
+    std::vector<std::string> outputDirOrFiles;
     std::string              whiteListFile;
     int                      opts;
     int                      verbosity;
@@ -361,13 +379,24 @@
     if (argc < 2)
         usage(argv[0]);
 
-    parseCmdLine(argc, argv, inputFile, outputDir, whiteListFile, opts, verbosity);
+    parseCmdLine(argc, argv, inputFiles, outputDirOrFiles, whiteListFile, opts, verbosity);
 
-    if (outputDir.empty())
-        usage(argv[0], "Output directory required");
+    if (outputDirOrFiles.empty())
+        usage(argv[0], "Output directory or file(s) required.");
+
+    const bool isMultiInput      = inputFiles.size() > 1;
+    const bool isMultiOutput     = outputDirOrFiles.size() > 1;
+    const bool isSingleOutputDir = !isMultiOutput && std::filesystem::is_directory(outputDirOrFiles[0]);
+
+    if (isMultiInput && !isMultiOutput && !isSingleOutputDir)
+        usage(argv[0], "Output is not a directory.");
+
+
+    if (isMultiInput && isMultiOutput && (outputDirOrFiles.size() != inputFiles.size()))
+        usage(argv[0], "Output must be either a single directory or one output file per input.");
 
     // Main operations: read, remap, and write.
-    execute(inputFile, outputDir, whiteListFile, opts, verbosity);
+    execute(inputFiles, outputDirOrFiles, isSingleOutputDir, whiteListFile, opts, verbosity);
 
     // If we get here, everything went OK!  Nothing more to be done.
 }
diff --git a/Test/400.frag b/Test/400.frag
index 039d480..b9bc17a 100644
--- a/Test/400.frag
+++ b/Test/400.frag
@@ -7,6 +7,39 @@
 uniform usampler2DRect samp2dr;
 uniform isampler2DArray isamp2DA;
 
+#extension GL_ARB_shader_storage_buffer_object : enable
+
+buffer Buffer
+{
+    int atomi;
+    uint atomu;
+};
+
+void atomicOpPass()
+{
+    int origi = atomicAdd(atomi, 3);
+    uint origu = atomicAnd(atomu, 7u);
+    origi = atomicExchange(atomi, 4);
+    origu = atomicCompSwap(atomu, 10u, 8u);
+}
+
+buffer ssboElem01
+{
+    int member01;
+    int memberArr01[2];
+    int memberUnsizedArr01[];
+} ssboStd430Arr[2];
+
+// if turns on EShReflectionSharedStd140SSBO, SPIR-V would be different
+buffer ssboElem02
+{
+    int member02;
+    int memberArr02[2];
+    int memberUnsizedArr02[];
+} ssboSharedArr[2];
+
+#extension GL_ARB_shader_storage_buffer_object : disable
+
 void main()
 {
     vec4 v;
diff --git a/Test/GL_ARB_texture_multisample.vert b/Test/GL_ARB_texture_multisample.vert
new file mode 100644
index 0000000..d3c5e85
--- /dev/null
+++ b/Test/GL_ARB_texture_multisample.vert
@@ -0,0 +1,28 @@
+#version 140
+#extension GL_ARB_texture_multisample : enable
+
+out float result;
+out int result1;
+out uint result2;
+
+uniform sampler2DMS data;
+uniform sampler2DMSArray data1;
+uniform isampler2DMS data2;
+uniform usampler2DMSArray data3;
+uniform usampler2DMS data4;
+uniform isampler2DMSArray data5;
+void main()
+{
+    result = texelFetch(data, ivec2(0), 3).r;
+    ivec2 temp = textureSize(data);
+    result = texelFetch(data1, ivec3(0), 3).r;
+    ivec3 temp1 = textureSize(data1);
+	result1 = texelFetch(data2, ivec2(0), 3).r;
+    temp = textureSize(data2);
+	result2 = texelFetch(data3, ivec3(0), 3).r;
+    temp1 = textureSize(data3);
+	result2 = texelFetch(data4, ivec2(0), 3).r;
+    temp = textureSize(data4);
+	result1 = texelFetch(data5, ivec3(0), 3).r;
+    temp1 = textureSize(data5);
+}
diff --git a/Test/GL_EXT_draw_instanced.vert b/Test/GL_EXT_draw_instanced.vert
new file mode 100644
index 0000000..601e3d7
--- /dev/null
+++ b/Test/GL_EXT_draw_instanced.vert
@@ -0,0 +1,18 @@
+#version 120
+#extension GL_EXT_draw_instanced : require
+#define ID gl_InstanceID
+
+uniform mat4 gtf_ModelViewProjectionMatrix;
+uniform vec3 instanceOffsets[3];
+uniform vec4 va[gl_MaxVertexAttribs];
+vec4 color;
+
+void main (void)
+{
+        vec4 vertex = vec4(va[0].xy / 3.0, va[0].zw) + vec4(instanceOffsets[ID], 1.0);
+        color = vec4(0, 0, 0, 0);
+        for (int i = 1; i < gl_MaxVertexAttribs; i++)
+                color += va[i];
+        gl_Position = gtf_ModelViewProjectionMatrix * vertex;
+        gl_PointSize = 1.0;
+}
\ No newline at end of file
diff --git a/Test/GL_EXT_texture_array.frag b/Test/GL_EXT_texture_array.frag
new file mode 100644
index 0000000..50a40a0
--- /dev/null
+++ b/Test/GL_EXT_texture_array.frag
@@ -0,0 +1,34 @@
+#version 110
+
+#extension GL_EXT_texture_array : enable
+
+uniform sampler1DArray s1DA;
+uniform sampler2DArray s2DA;
+uniform sampler1DArrayShadow s1DAS;
+uniform sampler2DArrayShadow s2DAS;
+
+void foo()
+{
+    float f;
+    vec2 v2;
+    vec3 v3;
+    vec4 v4;
+
+    v4 = texture1DArray(s1DA, v2);
+    v4 = texture2DArray(s2DA, v3);
+    v4 = shadow1DArray(s1DAS, v3);
+    v4 = shadow2DArray(s2DAS, v4);
+
+    v4 = texture1DArray(s1DA, v2, f);
+    v4 = texture2DArray(s2DA, v3, f);
+    v4 = shadow1DArray(s1DAS, v3, f);
+	
+    v4 = texture1DArrayLod(s1DA, v2, f);
+    v4 = texture2DArrayLod(s2DA, v3, f);
+    v4 = shadow1DArrayLod(s1DAS, v3, f);
+}
+
+void main()
+{
+    foo();
+}
diff --git a/Test/baseResults/130.vert.out b/Test/baseResults/130.vert.out
index e38043c..ee7fdde 100644
--- a/Test/baseResults/130.vert.out
+++ b/Test/baseResults/130.vert.out
@@ -1,9 +1,8 @@
 130.vert
-ERROR: 0:59: 'gl_InstanceID' : undeclared identifier 
-ERROR: 0:59: '=' :  cannot convert from ' temp float' to ' temp int'
+ERROR: 0:59: 'gl_InstanceID' : required extension not requested: GL_EXT_draw_instanced
 ERROR: 0:61: 'texelFetch' : no matching overloaded function found 
 ERROR: 0:61: 'assign' :  cannot convert from ' const float' to ' temp int'
-ERROR: 4 compilation errors.  No code generated.
+ERROR: 3 compilation errors.  No code generated.
 
 
 Shader version: 130
@@ -120,7 +119,11 @@
 0:46          0.300000
 0:57  Function Definition: foo88( ( global void)
 0:57    Function Parameters: 
-0:?     Sequence
+0:59    Sequence
+0:59      Sequence
+0:59        move second child to first child ( temp int)
+0:59          'id' ( temp int)
+0:59          'gl_InstanceID' ( gl_InstanceId int InstanceId)
 0:61      'id' ( temp int)
 0:63      'gl_ClipVertex' ( gl_ClipVertex 4-component vector of float ClipVertex)
 0:64      'gl_Color' ( in 4-component vector of float Color)
diff --git a/Test/baseResults/400.frag.out b/Test/baseResults/400.frag.out
index db3cd24..a148ae5 100644
--- a/Test/baseResults/400.frag.out
+++ b/Test/baseResults/400.frag.out
@@ -1,510 +1,554 @@
 400.frag
-ERROR: 0:18: 'textureGatherOffsets(...)' : must be a compile-time constant: offsets argument
-ERROR: 0:22: 'textureGatherOffset(...)' : must be a compile-time constant: component argument
-ERROR: 0:23: 'textureGatherOffset(...)' : must be 0, 1, 2, or 3: component argument
-ERROR: 0:30: 'location qualifier on input' : not supported for this version or the enabled extensions 
-ERROR: 0:38: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions 
-ERROR: 0:40: 'gl_Color' : identifiers starting with "gl_" are reserved 
-ERROR: 0:41: 'redeclaration' : cannot change qualification of gl_ClipDistance
-ERROR: 0:43: 'gl_FragCoord' : cannot redeclare after use 
-ERROR: 0:51: 'texel offset' : argument must be compile-time constant 
-ERROR: 0:53: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
-ERROR: 0:53: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
-ERROR: 0:54: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
-ERROR: 0:54: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
-ERROR: 0:57: 'patch' : not supported in this stage: fragment
-ERROR: 0:58: 'patch' : not supported in this stage: fragment
-ERROR: 0:58: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragment output 
-ERROR: 0:73: 'dFdxFine' : required extension not requested: GL_ARB_derivative_control
-ERROR: 0:74: 'dFdyCoarse' : required extension not requested: GL_ARB_derivative_control
-ERROR: 0:75: 'fwidthCoarse' : required extension not requested: GL_ARB_derivative_control
-ERROR: 0:75: 'fwidthFine' : required extension not requested: GL_ARB_derivative_control
-ERROR: 0:104: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragment output 
-ERROR: 0:123: 'interpolateAtCentroid' : no matching overloaded function found 
-ERROR: 0:125: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element 
-ERROR: 0:127: 'interpolateAtSample' : no matching overloaded function found 
-ERROR: 0:132: 'interpolateAtOffset' : no matching overloaded function found 
-ERROR: 0:134: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element 
-ERROR: 0:135: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element 
-ERROR: 0:136: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element 
-ERROR: 0:139: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element 
-ERROR: 0:140: 'interpolateAtSample' : first argument must be an interpolant, or interpolant-array element 
-ERROR: 0:183: 'textureQueryLod' : no matching overloaded function found 
-ERROR: 0:183: 'assign' :  cannot convert from ' const float' to ' temp 2-component vector of float'
-ERROR: 0:184: 'textureQueryLod' : no matching overloaded function found 
-ERROR: 0:184: 'assign' :  cannot convert from ' const float' to ' temp 2-component vector of float'
-ERROR: 0:197: 'subroutine' : feature not yet implemented 
-ERROR: 0:197: '' : default qualifier requires 'uniform', 'buffer', 'in', 'out' or 'shared' storage qualification 
-ERROR: 0:198: 'subroutine' : feature not yet implemented 
-ERROR: 0:199: 'subroutine' : feature not yet implemented 
-ERROR: 0:201: '' :  syntax error, unexpected PRECISE, expecting IDENTIFIER
+ERROR: 0:51: 'textureGatherOffsets(...)' : must be a compile-time constant: offsets argument
+ERROR: 0:55: 'textureGatherOffset(...)' : must be a compile-time constant: component argument
+ERROR: 0:56: 'textureGatherOffset(...)' : must be 0, 1, 2, or 3: component argument
+ERROR: 0:63: 'location qualifier on input' : not supported for this version or the enabled extensions 
+ERROR: 0:71: 'location qualifier on uniform or buffer' : not supported for this version or the enabled extensions 
+ERROR: 0:73: 'gl_Color' : identifiers starting with "gl_" are reserved 
+ERROR: 0:74: 'redeclaration' : cannot change qualification of gl_ClipDistance
+ERROR: 0:76: 'gl_FragCoord' : cannot redeclare after use 
+ERROR: 0:84: 'texel offset' : argument must be compile-time constant 
+ERROR: 0:86: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
+ERROR: 0:86: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
+ERROR: 0:87: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
+ERROR: 0:87: 'texel offset' : value is out of range: [gl_MinProgramTexelOffset, gl_MaxProgramTexelOffset]
+ERROR: 0:90: 'patch' : not supported in this stage: fragment
+ERROR: 0:91: 'patch' : not supported in this stage: fragment
+ERROR: 0:91: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragment output 
+ERROR: 0:106: 'dFdxFine' : required extension not requested: GL_ARB_derivative_control
+ERROR: 0:107: 'dFdyCoarse' : required extension not requested: GL_ARB_derivative_control
+ERROR: 0:108: 'fwidthCoarse' : required extension not requested: GL_ARB_derivative_control
+ERROR: 0:108: 'fwidthFine' : required extension not requested: GL_ARB_derivative_control
+ERROR: 0:137: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragment output 
+ERROR: 0:156: 'interpolateAtCentroid' : no matching overloaded function found 
+ERROR: 0:158: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element 
+ERROR: 0:160: 'interpolateAtSample' : no matching overloaded function found 
+ERROR: 0:165: 'interpolateAtOffset' : no matching overloaded function found 
+ERROR: 0:167: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element 
+ERROR: 0:168: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element 
+ERROR: 0:169: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element 
+ERROR: 0:172: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element 
+ERROR: 0:173: 'interpolateAtSample' : first argument must be an interpolant, or interpolant-array element 
+ERROR: 0:216: 'textureQueryLod' : no matching overloaded function found 
+ERROR: 0:216: 'assign' :  cannot convert from ' const float' to ' temp 2-component vector of float'
+ERROR: 0:217: 'textureQueryLod' : no matching overloaded function found 
+ERROR: 0:217: 'assign' :  cannot convert from ' const float' to ' temp 2-component vector of float'
+ERROR: 0:230: 'subroutine' : feature not yet implemented 
+ERROR: 0:230: '' : default qualifier requires 'uniform', 'buffer', 'in', 'out' or 'shared' storage qualification 
+ERROR: 0:231: 'subroutine' : feature not yet implemented 
+ERROR: 0:232: 'subroutine' : feature not yet implemented 
+ERROR: 0:234: '' :  syntax error, unexpected PRECISE, expecting IDENTIFIER
 ERROR: 39 compilation errors.  No code generated.
 
 
 Shader version: 400
 Requested GL_ARB_derivative_control
 Requested GL_ARB_separate_shader_objects
+Requested GL_ARB_shader_storage_buffer_object
 gl_FragCoord pixel center is integer
 gl_FragCoord origin is upper left
 ERROR: node is still EOpNull!
-0:10  Function Definition: main( ( global void)
-0:10    Function Parameters: 
-0:?     Sequence
-0:13      move second child to first child ( temp 4-component vector of float)
-0:13        'v' ( temp 4-component vector of float)
-0:13        texture ( global 4-component vector of float)
-0:13          indirect index ( temp sampler2D)
-0:13            'arrayedSampler' ( uniform 5-element array of sampler2D)
-0:13            'i' ( flat in int)
-0:13          'c2D' ( smooth in 2-component vector of float)
-0:14      move second child to first child ( temp float)
-0:14        direct index ( temp float)
-0:14          'outp' ( out 4-component vector of float)
-0:14          Constant:
-0:14            0 (const int)
-0:14        direct index ( smooth temp float ClipDistance)
-0:14          'gl_ClipDistance' ( smooth in 4-element array of float ClipDistance)
-0:14          Constant:
-0:14            1 (const int)
-0:18      Sequence
-0:18        move second child to first child ( temp 4-component vector of uint)
-0:18          'uv4' ( temp 4-component vector of uint)
-0:18          textureGatherOffsets ( global 4-component vector of uint)
-0:18            'samp2dr' ( uniform usampler2DRect)
-0:18            'c2D' ( smooth in 2-component vector of float)
-0:18            'offsets' ( temp 4-element array of 2-component vector of int)
-0:18            Constant:
-0:18              2 (const int)
-0:19      move second child to first child ( temp 4-component vector of uint)
-0:19        'uv4' ( temp 4-component vector of uint)
-0:19        textureGatherOffsets ( global 4-component vector of uint)
-0:19          'samp2dr' ( uniform usampler2DRect)
-0:19          'c2D' ( smooth in 2-component vector of float)
-0:19          Constant:
-0:19            1 (const int)
-0:19            2 (const int)
-0:19            3 (const int)
-0:19            4 (const int)
-0:19            15 (const int)
-0:19            16 (const int)
-0:19            -2 (const int)
-0:19            0 (const int)
-0:19          Constant:
-0:19            2 (const int)
+0:18  Function Definition: atomicOpPass( ( global void)
+0:18    Function Parameters: 
+0:20    Sequence
 0:20      Sequence
-0:20        move second child to first child ( temp 4-component vector of float)
-0:20          'v4' ( temp 4-component vector of float)
-0:20          textureGather ( global 4-component vector of float)
-0:20            direct index ( temp sampler2D)
-0:20              'arrayedSampler' ( uniform 5-element array of sampler2D)
+0:20        move second child to first child ( temp int)
+0:20          'origi' ( temp int)
+0:20          AtomicAdd ( global int)
+0:20            atomi: direct index for structure (layout( column_major shared) buffer int)
+0:20              'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer int atomi, layout( column_major shared) buffer uint atomu})
 0:20              Constant:
-0:20                0 (const int)
-0:20            'c2D' ( smooth in 2-component vector of float)
+0:20                0 (const uint)
+0:20            Constant:
+0:20              3 (const int)
 0:21      Sequence
-0:21        move second child to first child ( temp 4-component vector of int)
-0:21          'iv4' ( temp 4-component vector of int)
-0:21          textureGatherOffset ( global 4-component vector of int)
-0:21            'isamp2DA' ( uniform isampler2DArray)
+0:21        move second child to first child ( temp uint)
+0:21          'origu' ( temp uint)
+0:21          AtomicAnd ( global uint)
+0:21            atomu: direct index for structure (layout( column_major shared) buffer uint)
+0:21              'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer int atomi, layout( column_major shared) buffer uint atomu})
+0:21              Constant:
+0:21                1 (const uint)
 0:21            Constant:
-0:21              0.100000
-0:21              0.100000
-0:21              0.100000
-0:21            Constant:
-0:21              1 (const int)
-0:21              1 (const int)
-0:21            Constant:
-0:21              3 (const int)
-0:22      move second child to first child ( temp 4-component vector of int)
-0:22        'iv4' ( temp 4-component vector of int)
-0:22        textureGatherOffset ( global 4-component vector of int)
-0:22          'isamp2DA' ( uniform isampler2DArray)
+0:21              7 (const uint)
+0:22      move second child to first child ( temp int)
+0:22        'origi' ( temp int)
+0:22        AtomicExchange ( global int)
+0:22          atomi: direct index for structure (layout( column_major shared) buffer int)
+0:22            'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer int atomi, layout( column_major shared) buffer uint atomu})
+0:22            Constant:
+0:22              0 (const uint)
 0:22          Constant:
-0:22            0.100000
-0:22            0.100000
-0:22            0.100000
-0:22          Constant:
-0:22            1 (const int)
-0:22            1 (const int)
-0:22          'i' ( flat in int)
-0:23      move second child to first child ( temp 4-component vector of int)
-0:23        'iv4' ( temp 4-component vector of int)
-0:23        textureGatherOffset ( global 4-component vector of int)
-0:23          'isamp2DA' ( uniform isampler2DArray)
+0:22            4 (const int)
+0:23      move second child to first child ( temp uint)
+0:23        'origu' ( temp uint)
+0:23        AtomicCompSwap ( global uint)
+0:23          atomu: direct index for structure (layout( column_major shared) buffer uint)
+0:23            'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer int atomi, layout( column_major shared) buffer uint atomu})
+0:23            Constant:
+0:23              1 (const uint)
 0:23          Constant:
-0:23            0.100000
-0:23            0.100000
-0:23            0.100000
+0:23            10 (const uint)
 0:23          Constant:
-0:23            1 (const int)
-0:23            1 (const int)
-0:23          Constant:
-0:23            4 (const int)
-0:24      move second child to first child ( temp 4-component vector of int)
-0:24        'iv4' ( temp 4-component vector of int)
-0:24        textureGatherOffset ( global 4-component vector of int)
-0:24          'isamp2DA' ( uniform isampler2DArray)
-0:24          Constant:
-0:24            0.100000
-0:24            0.100000
-0:24            0.100000
-0:24          Constant:
-0:24            1 (const int)
-0:24            1 (const int)
-0:24          Constant:
-0:24            3 (const int)
-0:25      move second child to first child ( temp 4-component vector of int)
-0:25        'iv4' ( temp 4-component vector of int)
-0:25        textureGatherOffset ( global 4-component vector of int)
-0:25          'isamp2DA' ( uniform isampler2DArray)
-0:25          Constant:
-0:25            0.100000
-0:25            0.100000
-0:25            0.100000
-0:25          Construct ivec2 ( temp 2-component vector of int)
-0:25            'i' ( flat in int)
-0:27      Sequence
-0:27        move second child to first child ( temp 4-component vector of float)
-0:27          'c' ( temp 4-component vector of float)
-0:27          'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord)
-0:47  Function Definition: foo23( ( global void)
-0:47    Function Parameters: 
+0:23            8 (const uint)
+0:43  Function Definition: main( ( global void)
+0:43    Function Parameters: 
 0:?     Sequence
-0:51      textureProjGradOffset ( global float)
-0:51        'u2drs' ( uniform sampler2DRectShadow)
-0:51        'outp' ( out 4-component vector of float)
-0:51        Constant:
-0:51          0.000000
-0:51          0.000000
-0:51        Constant:
-0:51          0.000000
-0:51          0.000000
-0:51        Convert float to int ( temp 2-component vector of int)
-0:51          'c2D' ( smooth in 2-component vector of float)
-0:52      textureProjGradOffset ( global float)
-0:52        'u2drs' ( uniform sampler2DRectShadow)
-0:52        'outp' ( out 4-component vector of float)
-0:52        Constant:
-0:52          0.000000
-0:52          0.000000
-0:52        Constant:
-0:52          0.000000
-0:52          0.000000
-0:52        Constant:
-0:52          3 (const int)
-0:52          4 (const int)
-0:53      textureProjGradOffset ( global float)
-0:53        'u2drs' ( uniform sampler2DRectShadow)
-0:53        'outp' ( out 4-component vector of float)
-0:53        Constant:
-0:53          0.000000
-0:53          0.000000
-0:53        Constant:
-0:53          0.000000
-0:53          0.000000
-0:53        Constant:
-0:53          15 (const int)
-0:53          16 (const int)
-0:54      textureProjGradOffset ( global float)
-0:54        'u2drs' ( uniform sampler2DRectShadow)
-0:54        'outp' ( out 4-component vector of float)
-0:54        Constant:
-0:54          0.000000
-0:54          0.000000
-0:54        Constant:
-0:54          0.000000
-0:54          0.000000
-0:54        Constant:
-0:54          -10 (const int)
-0:54          20 (const int)
-0:60  Function Definition: foo24( ( global void)
-0:60    Function Parameters: 
-0:?     Sequence
-0:63      move second child to first child ( temp 3-component vector of double)
-0:63        'df' ( temp 3-component vector of double)
-0:63        modf ( global 3-component vector of double)
-0:63          Convert float to double ( temp 3-component vector of double)
-0:63            vector swizzle ( temp 3-component vector of float)
-0:63              'outp' ( out 4-component vector of float)
-0:63              Sequence
-0:63                Constant:
-0:63                  0 (const int)
-0:63                Constant:
-0:63                  1 (const int)
-0:63                Constant:
-0:63                  2 (const int)
-0:63          'di' ( temp 3-component vector of double)
-0:71  Function Definition: foodc1( ( global void)
-0:71    Function Parameters: 
-0:73    Sequence
-0:73      Sequence
-0:73        move second child to first child ( temp 2-component vector of float)
-0:73          'v2' ( temp 2-component vector of float)
-0:73          dPdxFine ( global 2-component vector of float)
-0:73            'in2' ( smooth in 2-component vector of float)
-0:74      Sequence
-0:74        move second child to first child ( temp 3-component vector of float)
-0:74          'v3' ( temp 3-component vector of float)
-0:74          dPdyCoarse ( global 3-component vector of float)
-0:74            'in3' ( smooth in 3-component vector of float)
-0:75      Sequence
-0:75        move second child to first child ( temp 4-component vector of float)
-0:75          'v4' ( temp 4-component vector of float)
-0:75          add ( temp 4-component vector of float)
-0:75            fwidthCoarse ( global 4-component vector of float)
-0:75              'in4' ( smooth in 4-component vector of float)
-0:75            fwidthFine ( global 4-component vector of float)
-0:75              'in4' ( smooth in 4-component vector of float)
-0:80  Function Definition: foodc2( ( global void)
+0:46      move second child to first child ( temp 4-component vector of float)
+0:46        'v' ( temp 4-component vector of float)
+0:46        texture ( global 4-component vector of float)
+0:46          indirect index ( temp sampler2D)
+0:46            'arrayedSampler' ( uniform 5-element array of sampler2D)
+0:46            'i' ( flat in int)
+0:46          'c2D' ( smooth in 2-component vector of float)
+0:47      move second child to first child ( temp float)
+0:47        direct index ( temp float)
+0:47          'outp' ( out 4-component vector of float)
+0:47          Constant:
+0:47            0 (const int)
+0:47        direct index ( smooth temp float ClipDistance)
+0:47          'gl_ClipDistance' ( smooth in 4-element array of float ClipDistance)
+0:47          Constant:
+0:47            1 (const int)
+0:51      Sequence
+0:51        move second child to first child ( temp 4-component vector of uint)
+0:51          'uv4' ( temp 4-component vector of uint)
+0:51          textureGatherOffsets ( global 4-component vector of uint)
+0:51            'samp2dr' ( uniform usampler2DRect)
+0:51            'c2D' ( smooth in 2-component vector of float)
+0:51            'offsets' ( temp 4-element array of 2-component vector of int)
+0:51            Constant:
+0:51              2 (const int)
+0:52      move second child to first child ( temp 4-component vector of uint)
+0:52        'uv4' ( temp 4-component vector of uint)
+0:52        textureGatherOffsets ( global 4-component vector of uint)
+0:52          'samp2dr' ( uniform usampler2DRect)
+0:52          'c2D' ( smooth in 2-component vector of float)
+0:52          Constant:
+0:52            1 (const int)
+0:52            2 (const int)
+0:52            3 (const int)
+0:52            4 (const int)
+0:52            15 (const int)
+0:52            16 (const int)
+0:52            -2 (const int)
+0:52            0 (const int)
+0:52          Constant:
+0:52            2 (const int)
+0:53      Sequence
+0:53        move second child to first child ( temp 4-component vector of float)
+0:53          'v4' ( temp 4-component vector of float)
+0:53          textureGather ( global 4-component vector of float)
+0:53            direct index ( temp sampler2D)
+0:53              'arrayedSampler' ( uniform 5-element array of sampler2D)
+0:53              Constant:
+0:53                0 (const int)
+0:53            'c2D' ( smooth in 2-component vector of float)
+0:54      Sequence
+0:54        move second child to first child ( temp 4-component vector of int)
+0:54          'iv4' ( temp 4-component vector of int)
+0:54          textureGatherOffset ( global 4-component vector of int)
+0:54            'isamp2DA' ( uniform isampler2DArray)
+0:54            Constant:
+0:54              0.100000
+0:54              0.100000
+0:54              0.100000
+0:54            Constant:
+0:54              1 (const int)
+0:54              1 (const int)
+0:54            Constant:
+0:54              3 (const int)
+0:55      move second child to first child ( temp 4-component vector of int)
+0:55        'iv4' ( temp 4-component vector of int)
+0:55        textureGatherOffset ( global 4-component vector of int)
+0:55          'isamp2DA' ( uniform isampler2DArray)
+0:55          Constant:
+0:55            0.100000
+0:55            0.100000
+0:55            0.100000
+0:55          Constant:
+0:55            1 (const int)
+0:55            1 (const int)
+0:55          'i' ( flat in int)
+0:56      move second child to first child ( temp 4-component vector of int)
+0:56        'iv4' ( temp 4-component vector of int)
+0:56        textureGatherOffset ( global 4-component vector of int)
+0:56          'isamp2DA' ( uniform isampler2DArray)
+0:56          Constant:
+0:56            0.100000
+0:56            0.100000
+0:56            0.100000
+0:56          Constant:
+0:56            1 (const int)
+0:56            1 (const int)
+0:56          Constant:
+0:56            4 (const int)
+0:57      move second child to first child ( temp 4-component vector of int)
+0:57        'iv4' ( temp 4-component vector of int)
+0:57        textureGatherOffset ( global 4-component vector of int)
+0:57          'isamp2DA' ( uniform isampler2DArray)
+0:57          Constant:
+0:57            0.100000
+0:57            0.100000
+0:57            0.100000
+0:57          Constant:
+0:57            1 (const int)
+0:57            1 (const int)
+0:57          Constant:
+0:57            3 (const int)
+0:58      move second child to first child ( temp 4-component vector of int)
+0:58        'iv4' ( temp 4-component vector of int)
+0:58        textureGatherOffset ( global 4-component vector of int)
+0:58          'isamp2DA' ( uniform isampler2DArray)
+0:58          Constant:
+0:58            0.100000
+0:58            0.100000
+0:58            0.100000
+0:58          Construct ivec2 ( temp 2-component vector of int)
+0:58            'i' ( flat in int)
+0:60      Sequence
+0:60        move second child to first child ( temp 4-component vector of float)
+0:60          'c' ( temp 4-component vector of float)
+0:60          'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord)
+0:80  Function Definition: foo23( ( global void)
 0:80    Function Parameters: 
-0:82    Sequence
-0:82      Sequence
-0:82        move second child to first child ( temp 2-component vector of float)
-0:82          'v2' ( temp 2-component vector of float)
-0:82          dPdxFine ( global 2-component vector of float)
-0:82            'in2' ( smooth in 2-component vector of float)
-0:83      Sequence
-0:83        move second child to first child ( temp 3-component vector of float)
-0:83          'v3' ( temp 3-component vector of float)
-0:83          dPdyCoarse ( global 3-component vector of float)
-0:83            'in3' ( smooth in 3-component vector of float)
-0:84      Sequence
-0:84        move second child to first child ( temp 4-component vector of float)
-0:84          'v4' ( temp 4-component vector of float)
-0:84          add ( temp 4-component vector of float)
-0:84            fwidthCoarse ( global 4-component vector of float)
-0:84              'in4' ( smooth in 4-component vector of float)
-0:84            fwidthFine ( global 4-component vector of float)
-0:84              'in4' ( smooth in 4-component vector of float)
-0:89      move second child to first child ( temp 2-component vector of float)
-0:89        'v2' ( temp 2-component vector of float)
-0:89        frexp ( global 2-component vector of float)
-0:89          'v2' ( temp 2-component vector of float)
-0:89          'i2' ( temp 2-component vector of int)
-0:90      move second child to first child ( temp 3-component vector of float)
-0:90        'v3' ( temp 3-component vector of float)
-0:90        ldexp ( global 3-component vector of float)
-0:90          'v3' ( temp 3-component vector of float)
-0:90          'i3' ( temp 3-component vector of int)
-0:92      move second child to first child ( temp uint)
-0:92        'u1' ( temp uint)
-0:92        PackUnorm4x8 ( global uint)
-0:92          'v4' ( temp 4-component vector of float)
-0:93      move second child to first child ( temp uint)
-0:93        'u1' ( temp uint)
-0:93        PackSnorm4x8 ( global uint)
-0:93          'v4' ( temp 4-component vector of float)
-0:94      move second child to first child ( temp 4-component vector of float)
-0:94        'v4' ( temp 4-component vector of float)
-0:94        UnpackUnorm4x8 ( global 4-component vector of float)
-0:94          'u1' ( temp uint)
-0:95      move second child to first child ( temp 4-component vector of float)
-0:95        'v4' ( temp 4-component vector of float)
-0:95        UnpackSnorm4x8 ( global 4-component vector of float)
-0:95          'u1' ( temp uint)
-0:99      move second child to first child ( temp double)
-0:99        'd' ( temp double)
-0:99        PackDouble2x32 ( global double)
-0:99          'u2' ( temp 2-component vector of uint)
-0:100      move second child to first child ( temp 2-component vector of uint)
-0:100        'u2' ( temp 2-component vector of uint)
-0:100        UnpackDouble2x32 ( global 2-component vector of uint)
-0:100          'd' ( temp double)
-0:117  Function Definition: interp( ( global void)
-0:117    Function Parameters: 
-0:119    Sequence
-0:119      interpolateAtCentroid ( global 2-component vector of float)
-0:119        'colorfc' ( centroid flat in 2-component vector of float)
-0:120      interpolateAtCentroid ( global 4-component vector of float)
-0:120        'colorSampIn' ( smooth sample in 4-component vector of float)
-0:121      interpolateAtCentroid ( global 4-component vector of float)
-0:121        'colorfsi' ( noperspective in 4-component vector of float)
-0:122      interpolateAtCentroid ( global float)
-0:122        'scalarIn' ( smooth in float)
-0:123      Constant:
-0:123        0.000000
-0:124      interpolateAtCentroid ( global 3-component vector of float)
-0:124        direct index ( smooth sample temp 3-component vector of float)
-0:124          'sampInArray' ( smooth sample in 4-element array of 3-component vector of float)
-0:124          Constant:
-0:124            2 (const int)
-0:125      interpolateAtCentroid ( global 2-component vector of float)
-0:125        vector swizzle ( temp 2-component vector of float)
-0:125          direct index ( smooth sample temp 3-component vector of float)
-0:125            'sampInArray' ( smooth sample in 4-element array of 3-component vector of float)
-0:125            Constant:
-0:125              2 (const int)
-0:125          Sequence
-0:125            Constant:
-0:125              0 (const int)
-0:125            Constant:
-0:125              1 (const int)
-0:127      Constant:
-0:127        0.000000
-0:128      interpolateAtSample ( global 3-component vector of float)
-0:128        indirect index ( smooth sample temp 3-component vector of float)
-0:128          'sampInArray' ( smooth sample in 4-element array of 3-component vector of float)
-0:128          'i' ( flat in int)
-0:128        Constant:
-0:128          0 (const int)
-0:129      interpolateAtSample ( global float)
-0:129        x: direct index for structure ( global float)
-0:129          's1' ( smooth in structure{ global float x})
-0:129          Constant:
-0:129            0 (const int)
-0:129        Constant:
-0:129          2 (const int)
-0:130      interpolateAtSample ( global float)
-0:130        'scalarIn' ( smooth in float)
-0:130        Constant:
-0:130          1 (const int)
-0:132      Constant:
-0:132        0.000000
-0:133      interpolateAtOffset ( global 3-component vector of float)
-0:133        direct index ( smooth sample temp 3-component vector of float)
-0:133          'sampInArray' ( smooth sample in 4-element array of 3-component vector of float)
-0:133          Constant:
-0:133            2 (const int)
-0:133        Constant:
-0:133          0.200000
-0:133          0.200000
-0:134      interpolateAtOffset ( global 2-component vector of float)
-0:134        vector swizzle ( temp 2-component vector of float)
-0:134          direct index ( smooth sample temp 3-component vector of float)
-0:134            'sampInArray' ( smooth sample in 4-element array of 3-component vector of float)
-0:134            Constant:
-0:134              2 (const int)
-0:134          Sequence
-0:134            Constant:
-0:134              0 (const int)
-0:134            Constant:
-0:134              1 (const int)
-0:134        Constant:
-0:134          0.200000
-0:134          0.200000
-0:135      interpolateAtOffset ( global float)
-0:135        add ( temp float)
-0:135          'scalarIn' ( smooth in float)
-0:135          'scalarIn' ( smooth in float)
-0:135        Constant:
-0:135          0.200000
-0:135          0.200000
-0:136      interpolateAtOffset ( global float)
-0:136        x: direct index for structure ( global float)
-0:136          's2' ( sample temp structure{ global float x})
-0:136          Constant:
-0:136            0 (const int)
-0:136        Constant:
-0:136          0.200000
-0:136          0.200000
-0:139      interpolateAtCentroid ( global float)
-0:139        'f' ( temp float)
-0:140      interpolateAtSample ( global 4-component vector of float)
-0:140        'outp' ( out 4-component vector of float)
-0:140        Constant:
-0:140          0 (const int)
-0:161  Function Definition: qlod( ( global void)
-0:161    Function Parameters: 
 0:?     Sequence
-0:168      move second child to first child ( temp 2-component vector of float)
-0:168        'lod' ( temp 2-component vector of float)
-0:168        textureQueryLod ( global 2-component vector of float)
-0:168          'samp1D' ( uniform sampler1D)
-0:168          'pf' ( temp float)
-0:169      move second child to first child ( temp 2-component vector of float)
-0:169        'lod' ( temp 2-component vector of float)
-0:169        textureQueryLod ( global 2-component vector of float)
-0:169          'isamp2D' ( uniform isampler2D)
-0:169          'pf2' ( temp 2-component vector of float)
-0:170      move second child to first child ( temp 2-component vector of float)
-0:170        'lod' ( temp 2-component vector of float)
-0:170        textureQueryLod ( global 2-component vector of float)
-0:170          'usamp3D' ( uniform usampler3D)
-0:170          'pf3' ( temp 3-component vector of float)
-0:171      move second child to first child ( temp 2-component vector of float)
-0:171        'lod' ( temp 2-component vector of float)
-0:171        textureQueryLod ( global 2-component vector of float)
-0:171          'sampCube' ( uniform samplerCube)
-0:171          'pf3' ( temp 3-component vector of float)
-0:172      move second child to first child ( temp 2-component vector of float)
-0:172        'lod' ( temp 2-component vector of float)
-0:172        textureQueryLod ( global 2-component vector of float)
-0:172          'isamp1DA' ( uniform isampler1DArray)
-0:172          'pf' ( temp float)
-0:173      move second child to first child ( temp 2-component vector of float)
-0:173        'lod' ( temp 2-component vector of float)
-0:173        textureQueryLod ( global 2-component vector of float)
-0:173          'usamp2DA' ( uniform usampler2DArray)
-0:173          'pf2' ( temp 2-component vector of float)
-0:174      move second child to first child ( temp 2-component vector of float)
-0:174        'lod' ( temp 2-component vector of float)
-0:174        textureQueryLod ( global 2-component vector of float)
-0:174          'isampCubeA' ( uniform isamplerCubeArray)
-0:174          'pf3' ( temp 3-component vector of float)
-0:176      move second child to first child ( temp 2-component vector of float)
-0:176        'lod' ( temp 2-component vector of float)
-0:176        textureQueryLod ( global 2-component vector of float)
-0:176          'samp1Ds' ( uniform sampler1DShadow)
-0:176          'pf' ( temp float)
-0:177      move second child to first child ( temp 2-component vector of float)
-0:177        'lod' ( temp 2-component vector of float)
-0:177        textureQueryLod ( global 2-component vector of float)
-0:177          'samp2Ds' ( uniform sampler2DShadow)
-0:177          'pf2' ( temp 2-component vector of float)
-0:178      move second child to first child ( temp 2-component vector of float)
-0:178        'lod' ( temp 2-component vector of float)
-0:178        textureQueryLod ( global 2-component vector of float)
-0:178          'sampCubes' ( uniform samplerCubeShadow)
-0:178          'pf3' ( temp 3-component vector of float)
-0:179      move second child to first child ( temp 2-component vector of float)
-0:179        'lod' ( temp 2-component vector of float)
-0:179        textureQueryLod ( global 2-component vector of float)
-0:179          'samp1DAs' ( uniform sampler1DArrayShadow)
-0:179          'pf' ( temp float)
-0:180      move second child to first child ( temp 2-component vector of float)
-0:180        'lod' ( temp 2-component vector of float)
-0:180        textureQueryLod ( global 2-component vector of float)
-0:180          'samp2DAs' ( uniform sampler2DArrayShadow)
-0:180          'pf2' ( temp 2-component vector of float)
-0:181      move second child to first child ( temp 2-component vector of float)
-0:181        'lod' ( temp 2-component vector of float)
-0:181        textureQueryLod ( global 2-component vector of float)
-0:181          'sampCubeAs' ( uniform samplerCubeArrayShadow)
-0:181          'pf3' ( temp 3-component vector of float)
-0:183      'lod' ( temp 2-component vector of float)
-0:184      'lod' ( temp 2-component vector of float)
-0:190  Function Definition: bitwiseConv( ( global void)
-0:190    Function Parameters: 
-0:192    Sequence
-0:192      move second child to first child ( temp uint)
-0:192        'iout' ( out uint)
-0:192        bitwise and ( temp uint)
-0:192          'uu' ( uniform uint)
-0:192          Convert int to uint ( temp uint)
-0:192            'i' ( flat in int)
-0:193      add second child into first child ( temp uint)
-0:193        'iout' ( out uint)
-0:193        exclusive-or ( temp uint)
-0:193          'uu' ( uniform uint)
-0:193          Convert int to uint ( temp uint)
-0:193            'i' ( flat in int)
-0:194      add second child into first child ( temp uint)
-0:194        'iout' ( out uint)
-0:194        inclusive-or ( temp uint)
-0:194          Convert int to uint ( temp uint)
-0:194            'i' ( flat in int)
-0:194          'uu' ( uniform uint)
-0:198  Function Definition: subT1( ( temp float)
-0:198    Function Parameters: 
-0:198    Sequence
-0:198      Branch: Return with expression
-0:198        Constant:
-0:198          1.000000
-0:199  Function Definition: subT2( ( temp float)
-0:199    Function Parameters: 
-0:199    Sequence
-0:199      Branch: Return with expression
-0:199        Constant:
-0:199          1.000000
+0:84      textureProjGradOffset ( global float)
+0:84        'u2drs' ( uniform sampler2DRectShadow)
+0:84        'outp' ( out 4-component vector of float)
+0:84        Constant:
+0:84          0.000000
+0:84          0.000000
+0:84        Constant:
+0:84          0.000000
+0:84          0.000000
+0:84        Convert float to int ( temp 2-component vector of int)
+0:84          'c2D' ( smooth in 2-component vector of float)
+0:85      textureProjGradOffset ( global float)
+0:85        'u2drs' ( uniform sampler2DRectShadow)
+0:85        'outp' ( out 4-component vector of float)
+0:85        Constant:
+0:85          0.000000
+0:85          0.000000
+0:85        Constant:
+0:85          0.000000
+0:85          0.000000
+0:85        Constant:
+0:85          3 (const int)
+0:85          4 (const int)
+0:86      textureProjGradOffset ( global float)
+0:86        'u2drs' ( uniform sampler2DRectShadow)
+0:86        'outp' ( out 4-component vector of float)
+0:86        Constant:
+0:86          0.000000
+0:86          0.000000
+0:86        Constant:
+0:86          0.000000
+0:86          0.000000
+0:86        Constant:
+0:86          15 (const int)
+0:86          16 (const int)
+0:87      textureProjGradOffset ( global float)
+0:87        'u2drs' ( uniform sampler2DRectShadow)
+0:87        'outp' ( out 4-component vector of float)
+0:87        Constant:
+0:87          0.000000
+0:87          0.000000
+0:87        Constant:
+0:87          0.000000
+0:87          0.000000
+0:87        Constant:
+0:87          -10 (const int)
+0:87          20 (const int)
+0:93  Function Definition: foo24( ( global void)
+0:93    Function Parameters: 
+0:?     Sequence
+0:96      move second child to first child ( temp 3-component vector of double)
+0:96        'df' ( temp 3-component vector of double)
+0:96        modf ( global 3-component vector of double)
+0:96          Convert float to double ( temp 3-component vector of double)
+0:96            vector swizzle ( temp 3-component vector of float)
+0:96              'outp' ( out 4-component vector of float)
+0:96              Sequence
+0:96                Constant:
+0:96                  0 (const int)
+0:96                Constant:
+0:96                  1 (const int)
+0:96                Constant:
+0:96                  2 (const int)
+0:96          'di' ( temp 3-component vector of double)
+0:104  Function Definition: foodc1( ( global void)
+0:104    Function Parameters: 
+0:106    Sequence
+0:106      Sequence
+0:106        move second child to first child ( temp 2-component vector of float)
+0:106          'v2' ( temp 2-component vector of float)
+0:106          dPdxFine ( global 2-component vector of float)
+0:106            'in2' ( smooth in 2-component vector of float)
+0:107      Sequence
+0:107        move second child to first child ( temp 3-component vector of float)
+0:107          'v3' ( temp 3-component vector of float)
+0:107          dPdyCoarse ( global 3-component vector of float)
+0:107            'in3' ( smooth in 3-component vector of float)
+0:108      Sequence
+0:108        move second child to first child ( temp 4-component vector of float)
+0:108          'v4' ( temp 4-component vector of float)
+0:108          add ( temp 4-component vector of float)
+0:108            fwidthCoarse ( global 4-component vector of float)
+0:108              'in4' ( smooth in 4-component vector of float)
+0:108            fwidthFine ( global 4-component vector of float)
+0:108              'in4' ( smooth in 4-component vector of float)
+0:113  Function Definition: foodc2( ( global void)
+0:113    Function Parameters: 
+0:115    Sequence
+0:115      Sequence
+0:115        move second child to first child ( temp 2-component vector of float)
+0:115          'v2' ( temp 2-component vector of float)
+0:115          dPdxFine ( global 2-component vector of float)
+0:115            'in2' ( smooth in 2-component vector of float)
+0:116      Sequence
+0:116        move second child to first child ( temp 3-component vector of float)
+0:116          'v3' ( temp 3-component vector of float)
+0:116          dPdyCoarse ( global 3-component vector of float)
+0:116            'in3' ( smooth in 3-component vector of float)
+0:117      Sequence
+0:117        move second child to first child ( temp 4-component vector of float)
+0:117          'v4' ( temp 4-component vector of float)
+0:117          add ( temp 4-component vector of float)
+0:117            fwidthCoarse ( global 4-component vector of float)
+0:117              'in4' ( smooth in 4-component vector of float)
+0:117            fwidthFine ( global 4-component vector of float)
+0:117              'in4' ( smooth in 4-component vector of float)
+0:122      move second child to first child ( temp 2-component vector of float)
+0:122        'v2' ( temp 2-component vector of float)
+0:122        frexp ( global 2-component vector of float)
+0:122          'v2' ( temp 2-component vector of float)
+0:122          'i2' ( temp 2-component vector of int)
+0:123      move second child to first child ( temp 3-component vector of float)
+0:123        'v3' ( temp 3-component vector of float)
+0:123        ldexp ( global 3-component vector of float)
+0:123          'v3' ( temp 3-component vector of float)
+0:123          'i3' ( temp 3-component vector of int)
+0:125      move second child to first child ( temp uint)
+0:125        'u1' ( temp uint)
+0:125        PackUnorm4x8 ( global uint)
+0:125          'v4' ( temp 4-component vector of float)
+0:126      move second child to first child ( temp uint)
+0:126        'u1' ( temp uint)
+0:126        PackSnorm4x8 ( global uint)
+0:126          'v4' ( temp 4-component vector of float)
+0:127      move second child to first child ( temp 4-component vector of float)
+0:127        'v4' ( temp 4-component vector of float)
+0:127        UnpackUnorm4x8 ( global 4-component vector of float)
+0:127          'u1' ( temp uint)
+0:128      move second child to first child ( temp 4-component vector of float)
+0:128        'v4' ( temp 4-component vector of float)
+0:128        UnpackSnorm4x8 ( global 4-component vector of float)
+0:128          'u1' ( temp uint)
+0:132      move second child to first child ( temp double)
+0:132        'd' ( temp double)
+0:132        PackDouble2x32 ( global double)
+0:132          'u2' ( temp 2-component vector of uint)
+0:133      move second child to first child ( temp 2-component vector of uint)
+0:133        'u2' ( temp 2-component vector of uint)
+0:133        UnpackDouble2x32 ( global 2-component vector of uint)
+0:133          'd' ( temp double)
+0:150  Function Definition: interp( ( global void)
+0:150    Function Parameters: 
+0:152    Sequence
+0:152      interpolateAtCentroid ( global 2-component vector of float)
+0:152        'colorfc' ( centroid flat in 2-component vector of float)
+0:153      interpolateAtCentroid ( global 4-component vector of float)
+0:153        'colorSampIn' ( smooth sample in 4-component vector of float)
+0:154      interpolateAtCentroid ( global 4-component vector of float)
+0:154        'colorfsi' ( noperspective in 4-component vector of float)
+0:155      interpolateAtCentroid ( global float)
+0:155        'scalarIn' ( smooth in float)
+0:156      Constant:
+0:156        0.000000
+0:157      interpolateAtCentroid ( global 3-component vector of float)
+0:157        direct index ( smooth sample temp 3-component vector of float)
+0:157          'sampInArray' ( smooth sample in 4-element array of 3-component vector of float)
+0:157          Constant:
+0:157            2 (const int)
+0:158      interpolateAtCentroid ( global 2-component vector of float)
+0:158        vector swizzle ( temp 2-component vector of float)
+0:158          direct index ( smooth sample temp 3-component vector of float)
+0:158            'sampInArray' ( smooth sample in 4-element array of 3-component vector of float)
+0:158            Constant:
+0:158              2 (const int)
+0:158          Sequence
+0:158            Constant:
+0:158              0 (const int)
+0:158            Constant:
+0:158              1 (const int)
+0:160      Constant:
+0:160        0.000000
+0:161      interpolateAtSample ( global 3-component vector of float)
+0:161        indirect index ( smooth sample temp 3-component vector of float)
+0:161          'sampInArray' ( smooth sample in 4-element array of 3-component vector of float)
+0:161          'i' ( flat in int)
+0:161        Constant:
+0:161          0 (const int)
+0:162      interpolateAtSample ( global float)
+0:162        x: direct index for structure ( global float)
+0:162          's1' ( smooth in structure{ global float x})
+0:162          Constant:
+0:162            0 (const int)
+0:162        Constant:
+0:162          2 (const int)
+0:163      interpolateAtSample ( global float)
+0:163        'scalarIn' ( smooth in float)
+0:163        Constant:
+0:163          1 (const int)
+0:165      Constant:
+0:165        0.000000
+0:166      interpolateAtOffset ( global 3-component vector of float)
+0:166        direct index ( smooth sample temp 3-component vector of float)
+0:166          'sampInArray' ( smooth sample in 4-element array of 3-component vector of float)
+0:166          Constant:
+0:166            2 (const int)
+0:166        Constant:
+0:166          0.200000
+0:166          0.200000
+0:167      interpolateAtOffset ( global 2-component vector of float)
+0:167        vector swizzle ( temp 2-component vector of float)
+0:167          direct index ( smooth sample temp 3-component vector of float)
+0:167            'sampInArray' ( smooth sample in 4-element array of 3-component vector of float)
+0:167            Constant:
+0:167              2 (const int)
+0:167          Sequence
+0:167            Constant:
+0:167              0 (const int)
+0:167            Constant:
+0:167              1 (const int)
+0:167        Constant:
+0:167          0.200000
+0:167          0.200000
+0:168      interpolateAtOffset ( global float)
+0:168        add ( temp float)
+0:168          'scalarIn' ( smooth in float)
+0:168          'scalarIn' ( smooth in float)
+0:168        Constant:
+0:168          0.200000
+0:168          0.200000
+0:169      interpolateAtOffset ( global float)
+0:169        x: direct index for structure ( global float)
+0:169          's2' ( sample temp structure{ global float x})
+0:169          Constant:
+0:169            0 (const int)
+0:169        Constant:
+0:169          0.200000
+0:169          0.200000
+0:172      interpolateAtCentroid ( global float)
+0:172        'f' ( temp float)
+0:173      interpolateAtSample ( global 4-component vector of float)
+0:173        'outp' ( out 4-component vector of float)
+0:173        Constant:
+0:173          0 (const int)
+0:194  Function Definition: qlod( ( global void)
+0:194    Function Parameters: 
+0:?     Sequence
+0:201      move second child to first child ( temp 2-component vector of float)
+0:201        'lod' ( temp 2-component vector of float)
+0:201        textureQueryLod ( global 2-component vector of float)
+0:201          'samp1D' ( uniform sampler1D)
+0:201          'pf' ( temp float)
+0:202      move second child to first child ( temp 2-component vector of float)
+0:202        'lod' ( temp 2-component vector of float)
+0:202        textureQueryLod ( global 2-component vector of float)
+0:202          'isamp2D' ( uniform isampler2D)
+0:202          'pf2' ( temp 2-component vector of float)
+0:203      move second child to first child ( temp 2-component vector of float)
+0:203        'lod' ( temp 2-component vector of float)
+0:203        textureQueryLod ( global 2-component vector of float)
+0:203          'usamp3D' ( uniform usampler3D)
+0:203          'pf3' ( temp 3-component vector of float)
+0:204      move second child to first child ( temp 2-component vector of float)
+0:204        'lod' ( temp 2-component vector of float)
+0:204        textureQueryLod ( global 2-component vector of float)
+0:204          'sampCube' ( uniform samplerCube)
+0:204          'pf3' ( temp 3-component vector of float)
+0:205      move second child to first child ( temp 2-component vector of float)
+0:205        'lod' ( temp 2-component vector of float)
+0:205        textureQueryLod ( global 2-component vector of float)
+0:205          'isamp1DA' ( uniform isampler1DArray)
+0:205          'pf' ( temp float)
+0:206      move second child to first child ( temp 2-component vector of float)
+0:206        'lod' ( temp 2-component vector of float)
+0:206        textureQueryLod ( global 2-component vector of float)
+0:206          'usamp2DA' ( uniform usampler2DArray)
+0:206          'pf2' ( temp 2-component vector of float)
+0:207      move second child to first child ( temp 2-component vector of float)
+0:207        'lod' ( temp 2-component vector of float)
+0:207        textureQueryLod ( global 2-component vector of float)
+0:207          'isampCubeA' ( uniform isamplerCubeArray)
+0:207          'pf3' ( temp 3-component vector of float)
+0:209      move second child to first child ( temp 2-component vector of float)
+0:209        'lod' ( temp 2-component vector of float)
+0:209        textureQueryLod ( global 2-component vector of float)
+0:209          'samp1Ds' ( uniform sampler1DShadow)
+0:209          'pf' ( temp float)
+0:210      move second child to first child ( temp 2-component vector of float)
+0:210        'lod' ( temp 2-component vector of float)
+0:210        textureQueryLod ( global 2-component vector of float)
+0:210          'samp2Ds' ( uniform sampler2DShadow)
+0:210          'pf2' ( temp 2-component vector of float)
+0:211      move second child to first child ( temp 2-component vector of float)
+0:211        'lod' ( temp 2-component vector of float)
+0:211        textureQueryLod ( global 2-component vector of float)
+0:211          'sampCubes' ( uniform samplerCubeShadow)
+0:211          'pf3' ( temp 3-component vector of float)
+0:212      move second child to first child ( temp 2-component vector of float)
+0:212        'lod' ( temp 2-component vector of float)
+0:212        textureQueryLod ( global 2-component vector of float)
+0:212          'samp1DAs' ( uniform sampler1DArrayShadow)
+0:212          'pf' ( temp float)
+0:213      move second child to first child ( temp 2-component vector of float)
+0:213        'lod' ( temp 2-component vector of float)
+0:213        textureQueryLod ( global 2-component vector of float)
+0:213          'samp2DAs' ( uniform sampler2DArrayShadow)
+0:213          'pf2' ( temp 2-component vector of float)
+0:214      move second child to first child ( temp 2-component vector of float)
+0:214        'lod' ( temp 2-component vector of float)
+0:214        textureQueryLod ( global 2-component vector of float)
+0:214          'sampCubeAs' ( uniform samplerCubeArrayShadow)
+0:214          'pf3' ( temp 3-component vector of float)
+0:216      'lod' ( temp 2-component vector of float)
+0:217      'lod' ( temp 2-component vector of float)
+0:223  Function Definition: bitwiseConv( ( global void)
+0:223    Function Parameters: 
+0:225    Sequence
+0:225      move second child to first child ( temp uint)
+0:225        'iout' ( out uint)
+0:225        bitwise and ( temp uint)
+0:225          'uu' ( uniform uint)
+0:225          Convert int to uint ( temp uint)
+0:225            'i' ( flat in int)
+0:226      add second child into first child ( temp uint)
+0:226        'iout' ( out uint)
+0:226        exclusive-or ( temp uint)
+0:226          'uu' ( uniform uint)
+0:226          Convert int to uint ( temp uint)
+0:226            'i' ( flat in int)
+0:227      add second child into first child ( temp uint)
+0:227        'iout' ( out uint)
+0:227        inclusive-or ( temp uint)
+0:227          Convert int to uint ( temp uint)
+0:227            'i' ( flat in int)
+0:227          'uu' ( uniform uint)
+0:231  Function Definition: subT1( ( temp float)
+0:231    Function Parameters: 
+0:231    Sequence
+0:231      Branch: Return with expression
+0:231        Constant:
+0:231          1.000000
+0:232  Function Definition: subT2( ( temp float)
+0:232    Function Parameters: 
+0:232    Sequence
+0:232      Branch: Return with expression
+0:232        Constant:
+0:232          1.000000
 0:?   Linker Objects
 0:?     'c2D' ( smooth in 2-component vector of float)
 0:?     'i' ( flat in int)
@@ -512,6 +556,9 @@
 0:?     'arrayedSampler' ( uniform 5-element array of sampler2D)
 0:?     'samp2dr' ( uniform usampler2DRect)
 0:?     'isamp2DA' ( uniform isampler2DArray)
+0:?     'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer int atomi, layout( column_major shared) buffer uint atomu})
+0:?     'ssboStd430Arr' (layout( column_major shared) buffer 2-element array of block{layout( column_major shared) buffer int member01, layout( column_major shared) buffer 2-element array of int memberArr01, layout( column_major shared) buffer unsized 1-element array of int memberUnsizedArr01})
+0:?     'ssboSharedArr' (layout( column_major shared) buffer 2-element array of block{layout( column_major shared) buffer int member02, layout( column_major shared) buffer 2-element array of int memberArr02, layout( column_major shared) buffer unsized 1-element array of int memberUnsizedArr02})
 0:?     'gl_ClipDistance' ( smooth in 4-element array of float ClipDistance)
 0:?     'vl' (layout( location=4) smooth in 4-component vector of float)
 0:?     'vl2' (layout( location=6) smooth in 4-component vector of float)
@@ -558,128 +605,129 @@
 Shader version: 400
 Requested GL_ARB_derivative_control
 Requested GL_ARB_separate_shader_objects
+Requested GL_ARB_shader_storage_buffer_object
 gl_FragCoord pixel center is integer
 gl_FragCoord origin is upper left
 ERROR: node is still EOpNull!
-0:10  Function Definition: main( ( global void)
-0:10    Function Parameters: 
+0:43  Function Definition: main( ( global void)
+0:43    Function Parameters: 
 0:?     Sequence
-0:13      move second child to first child ( temp 4-component vector of float)
-0:13        'v' ( temp 4-component vector of float)
-0:13        texture ( global 4-component vector of float)
-0:13          indirect index ( temp sampler2D)
-0:13            'arrayedSampler' ( uniform 5-element array of sampler2D)
-0:13            'i' ( flat in int)
-0:13          'c2D' ( smooth in 2-component vector of float)
-0:14      move second child to first child ( temp float)
-0:14        direct index ( temp float)
-0:14          'outp' ( out 4-component vector of float)
-0:14          Constant:
-0:14            0 (const int)
-0:14        direct index ( smooth temp float ClipDistance)
-0:14          'gl_ClipDistance' ( smooth in 4-element array of float ClipDistance)
-0:14          Constant:
-0:14            1 (const int)
-0:18      Sequence
-0:18        move second child to first child ( temp 4-component vector of uint)
-0:18          'uv4' ( temp 4-component vector of uint)
-0:18          textureGatherOffsets ( global 4-component vector of uint)
-0:18            'samp2dr' ( uniform usampler2DRect)
-0:18            'c2D' ( smooth in 2-component vector of float)
-0:18            'offsets' ( temp 4-element array of 2-component vector of int)
-0:18            Constant:
-0:18              2 (const int)
-0:19      move second child to first child ( temp 4-component vector of uint)
-0:19        'uv4' ( temp 4-component vector of uint)
-0:19        textureGatherOffsets ( global 4-component vector of uint)
-0:19          'samp2dr' ( uniform usampler2DRect)
-0:19          'c2D' ( smooth in 2-component vector of float)
-0:19          Constant:
-0:19            1 (const int)
-0:19            2 (const int)
-0:19            3 (const int)
-0:19            4 (const int)
-0:19            15 (const int)
-0:19            16 (const int)
-0:19            -2 (const int)
-0:19            0 (const int)
-0:19          Constant:
-0:19            2 (const int)
-0:20      Sequence
-0:20        move second child to first child ( temp 4-component vector of float)
-0:20          'v4' ( temp 4-component vector of float)
-0:20          textureGather ( global 4-component vector of float)
-0:20            direct index ( temp sampler2D)
-0:20              'arrayedSampler' ( uniform 5-element array of sampler2D)
-0:20              Constant:
-0:20                0 (const int)
-0:20            'c2D' ( smooth in 2-component vector of float)
-0:21      Sequence
-0:21        move second child to first child ( temp 4-component vector of int)
-0:21          'iv4' ( temp 4-component vector of int)
-0:21          textureGatherOffset ( global 4-component vector of int)
-0:21            'isamp2DA' ( uniform isampler2DArray)
-0:21            Constant:
-0:21              0.100000
-0:21              0.100000
-0:21              0.100000
-0:21            Constant:
-0:21              1 (const int)
-0:21              1 (const int)
-0:21            Constant:
-0:21              3 (const int)
-0:22      move second child to first child ( temp 4-component vector of int)
-0:22        'iv4' ( temp 4-component vector of int)
-0:22        textureGatherOffset ( global 4-component vector of int)
-0:22          'isamp2DA' ( uniform isampler2DArray)
-0:22          Constant:
-0:22            0.100000
-0:22            0.100000
-0:22            0.100000
-0:22          Constant:
-0:22            1 (const int)
-0:22            1 (const int)
-0:22          'i' ( flat in int)
-0:23      move second child to first child ( temp 4-component vector of int)
-0:23        'iv4' ( temp 4-component vector of int)
-0:23        textureGatherOffset ( global 4-component vector of int)
-0:23          'isamp2DA' ( uniform isampler2DArray)
-0:23          Constant:
-0:23            0.100000
-0:23            0.100000
-0:23            0.100000
-0:23          Constant:
-0:23            1 (const int)
-0:23            1 (const int)
-0:23          Constant:
-0:23            4 (const int)
-0:24      move second child to first child ( temp 4-component vector of int)
-0:24        'iv4' ( temp 4-component vector of int)
-0:24        textureGatherOffset ( global 4-component vector of int)
-0:24          'isamp2DA' ( uniform isampler2DArray)
-0:24          Constant:
-0:24            0.100000
-0:24            0.100000
-0:24            0.100000
-0:24          Constant:
-0:24            1 (const int)
-0:24            1 (const int)
-0:24          Constant:
-0:24            3 (const int)
-0:25      move second child to first child ( temp 4-component vector of int)
-0:25        'iv4' ( temp 4-component vector of int)
-0:25        textureGatherOffset ( global 4-component vector of int)
-0:25          'isamp2DA' ( uniform isampler2DArray)
-0:25          Constant:
-0:25            0.100000
-0:25            0.100000
-0:25            0.100000
-0:25          Construct ivec2 ( temp 2-component vector of int)
-0:25            'i' ( flat in int)
-0:27      Sequence
-0:27        move second child to first child ( temp 4-component vector of float)
-0:27          'c' ( temp 4-component vector of float)
-0:27          'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord)
+0:46      move second child to first child ( temp 4-component vector of float)
+0:46        'v' ( temp 4-component vector of float)
+0:46        texture ( global 4-component vector of float)
+0:46          indirect index ( temp sampler2D)
+0:46            'arrayedSampler' ( uniform 5-element array of sampler2D)
+0:46            'i' ( flat in int)
+0:46          'c2D' ( smooth in 2-component vector of float)
+0:47      move second child to first child ( temp float)
+0:47        direct index ( temp float)
+0:47          'outp' ( out 4-component vector of float)
+0:47          Constant:
+0:47            0 (const int)
+0:47        direct index ( smooth temp float ClipDistance)
+0:47          'gl_ClipDistance' ( smooth in 4-element array of float ClipDistance)
+0:47          Constant:
+0:47            1 (const int)
+0:51      Sequence
+0:51        move second child to first child ( temp 4-component vector of uint)
+0:51          'uv4' ( temp 4-component vector of uint)
+0:51          textureGatherOffsets ( global 4-component vector of uint)
+0:51            'samp2dr' ( uniform usampler2DRect)
+0:51            'c2D' ( smooth in 2-component vector of float)
+0:51            'offsets' ( temp 4-element array of 2-component vector of int)
+0:51            Constant:
+0:51              2 (const int)
+0:52      move second child to first child ( temp 4-component vector of uint)
+0:52        'uv4' ( temp 4-component vector of uint)
+0:52        textureGatherOffsets ( global 4-component vector of uint)
+0:52          'samp2dr' ( uniform usampler2DRect)
+0:52          'c2D' ( smooth in 2-component vector of float)
+0:52          Constant:
+0:52            1 (const int)
+0:52            2 (const int)
+0:52            3 (const int)
+0:52            4 (const int)
+0:52            15 (const int)
+0:52            16 (const int)
+0:52            -2 (const int)
+0:52            0 (const int)
+0:52          Constant:
+0:52            2 (const int)
+0:53      Sequence
+0:53        move second child to first child ( temp 4-component vector of float)
+0:53          'v4' ( temp 4-component vector of float)
+0:53          textureGather ( global 4-component vector of float)
+0:53            direct index ( temp sampler2D)
+0:53              'arrayedSampler' ( uniform 5-element array of sampler2D)
+0:53              Constant:
+0:53                0 (const int)
+0:53            'c2D' ( smooth in 2-component vector of float)
+0:54      Sequence
+0:54        move second child to first child ( temp 4-component vector of int)
+0:54          'iv4' ( temp 4-component vector of int)
+0:54          textureGatherOffset ( global 4-component vector of int)
+0:54            'isamp2DA' ( uniform isampler2DArray)
+0:54            Constant:
+0:54              0.100000
+0:54              0.100000
+0:54              0.100000
+0:54            Constant:
+0:54              1 (const int)
+0:54              1 (const int)
+0:54            Constant:
+0:54              3 (const int)
+0:55      move second child to first child ( temp 4-component vector of int)
+0:55        'iv4' ( temp 4-component vector of int)
+0:55        textureGatherOffset ( global 4-component vector of int)
+0:55          'isamp2DA' ( uniform isampler2DArray)
+0:55          Constant:
+0:55            0.100000
+0:55            0.100000
+0:55            0.100000
+0:55          Constant:
+0:55            1 (const int)
+0:55            1 (const int)
+0:55          'i' ( flat in int)
+0:56      move second child to first child ( temp 4-component vector of int)
+0:56        'iv4' ( temp 4-component vector of int)
+0:56        textureGatherOffset ( global 4-component vector of int)
+0:56          'isamp2DA' ( uniform isampler2DArray)
+0:56          Constant:
+0:56            0.100000
+0:56            0.100000
+0:56            0.100000
+0:56          Constant:
+0:56            1 (const int)
+0:56            1 (const int)
+0:56          Constant:
+0:56            4 (const int)
+0:57      move second child to first child ( temp 4-component vector of int)
+0:57        'iv4' ( temp 4-component vector of int)
+0:57        textureGatherOffset ( global 4-component vector of int)
+0:57          'isamp2DA' ( uniform isampler2DArray)
+0:57          Constant:
+0:57            0.100000
+0:57            0.100000
+0:57            0.100000
+0:57          Constant:
+0:57            1 (const int)
+0:57            1 (const int)
+0:57          Constant:
+0:57            3 (const int)
+0:58      move second child to first child ( temp 4-component vector of int)
+0:58        'iv4' ( temp 4-component vector of int)
+0:58        textureGatherOffset ( global 4-component vector of int)
+0:58          'isamp2DA' ( uniform isampler2DArray)
+0:58          Constant:
+0:58            0.100000
+0:58            0.100000
+0:58            0.100000
+0:58          Construct ivec2 ( temp 2-component vector of int)
+0:58            'i' ( flat in int)
+0:60      Sequence
+0:60        move second child to first child ( temp 4-component vector of float)
+0:60          'c' ( temp 4-component vector of float)
+0:60          'gl_FragCoord' ( gl_FragCoord 4-component vector of float FragCoord)
 0:?   Linker Objects
 0:?     'c2D' ( smooth in 2-component vector of float)
 0:?     'i' ( flat in int)
@@ -687,6 +735,9 @@
 0:?     'arrayedSampler' ( uniform 5-element array of sampler2D)
 0:?     'samp2dr' ( uniform usampler2DRect)
 0:?     'isamp2DA' ( uniform isampler2DArray)
+0:?     'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer int atomi, layout( column_major shared) buffer uint atomu})
+0:?     'ssboStd430Arr' (layout( column_major shared) buffer 2-element array of block{layout( column_major shared) buffer int member01, layout( column_major shared) buffer 2-element array of int memberArr01, layout( column_major shared) buffer unsized 1-element array of int memberUnsizedArr01})
+0:?     'ssboSharedArr' (layout( column_major shared) buffer 2-element array of block{layout( column_major shared) buffer int member02, layout( column_major shared) buffer 2-element array of int memberArr02, layout( column_major shared) buffer unsized 1-element array of int memberUnsizedArr02})
 0:?     'gl_ClipDistance' ( smooth in 4-element array of float ClipDistance)
 0:?     'vl' (layout( location=4) smooth in 4-component vector of float)
 0:?     'vl2' (layout( location=6) smooth in 4-component vector of float)
diff --git a/Test/baseResults/GL_ARB_texture_multisample.vert.out b/Test/baseResults/GL_ARB_texture_multisample.vert.out
new file mode 100644
index 0000000..16912a4
--- /dev/null
+++ b/Test/baseResults/GL_ARB_texture_multisample.vert.out
@@ -0,0 +1,245 @@
+GL_ARB_texture_multisample.vert
+Shader version: 140
+Requested GL_ARB_texture_multisample
+0:? Sequence
+0:14  Function Definition: main( ( global void)
+0:14    Function Parameters: 
+0:16    Sequence
+0:16      move second child to first child ( temp float)
+0:16        'result' ( smooth out float)
+0:16        direct index ( temp float)
+0:16          textureFetch ( global 4-component vector of float)
+0:16            'data' ( uniform sampler2DMS)
+0:16            Constant:
+0:16              0 (const int)
+0:16              0 (const int)
+0:16            Constant:
+0:16              3 (const int)
+0:16          Constant:
+0:16            0 (const int)
+0:17      Sequence
+0:17        move second child to first child ( temp 2-component vector of int)
+0:17          'temp' ( temp 2-component vector of int)
+0:17          textureSize ( global 2-component vector of int)
+0:17            'data' ( uniform sampler2DMS)
+0:18      move second child to first child ( temp float)
+0:18        'result' ( smooth out float)
+0:18        direct index ( temp float)
+0:18          textureFetch ( global 4-component vector of float)
+0:18            'data1' ( uniform sampler2DMSArray)
+0:18            Constant:
+0:18              0 (const int)
+0:18              0 (const int)
+0:18              0 (const int)
+0:18            Constant:
+0:18              3 (const int)
+0:18          Constant:
+0:18            0 (const int)
+0:19      Sequence
+0:19        move second child to first child ( temp 3-component vector of int)
+0:19          'temp1' ( temp 3-component vector of int)
+0:19          textureSize ( global 3-component vector of int)
+0:19            'data1' ( uniform sampler2DMSArray)
+0:20      move second child to first child ( temp int)
+0:20        'result1' ( smooth out int)
+0:20        direct index ( temp int)
+0:20          textureFetch ( global 4-component vector of int)
+0:20            'data2' ( uniform isampler2DMS)
+0:20            Constant:
+0:20              0 (const int)
+0:20              0 (const int)
+0:20            Constant:
+0:20              3 (const int)
+0:20          Constant:
+0:20            0 (const int)
+0:21      move second child to first child ( temp 2-component vector of int)
+0:21        'temp' ( temp 2-component vector of int)
+0:21        textureSize ( global 2-component vector of int)
+0:21          'data2' ( uniform isampler2DMS)
+0:22      move second child to first child ( temp uint)
+0:22        'result2' ( smooth out uint)
+0:22        direct index ( temp uint)
+0:22          textureFetch ( global 4-component vector of uint)
+0:22            'data3' ( uniform usampler2DMSArray)
+0:22            Constant:
+0:22              0 (const int)
+0:22              0 (const int)
+0:22              0 (const int)
+0:22            Constant:
+0:22              3 (const int)
+0:22          Constant:
+0:22            0 (const int)
+0:23      move second child to first child ( temp 3-component vector of int)
+0:23        'temp1' ( temp 3-component vector of int)
+0:23        textureSize ( global 3-component vector of int)
+0:23          'data3' ( uniform usampler2DMSArray)
+0:24      move second child to first child ( temp uint)
+0:24        'result2' ( smooth out uint)
+0:24        direct index ( temp uint)
+0:24          textureFetch ( global 4-component vector of uint)
+0:24            'data4' ( uniform usampler2DMS)
+0:24            Constant:
+0:24              0 (const int)
+0:24              0 (const int)
+0:24            Constant:
+0:24              3 (const int)
+0:24          Constant:
+0:24            0 (const int)
+0:25      move second child to first child ( temp 2-component vector of int)
+0:25        'temp' ( temp 2-component vector of int)
+0:25        textureSize ( global 2-component vector of int)
+0:25          'data4' ( uniform usampler2DMS)
+0:26      move second child to first child ( temp int)
+0:26        'result1' ( smooth out int)
+0:26        direct index ( temp int)
+0:26          textureFetch ( global 4-component vector of int)
+0:26            'data5' ( uniform isampler2DMSArray)
+0:26            Constant:
+0:26              0 (const int)
+0:26              0 (const int)
+0:26              0 (const int)
+0:26            Constant:
+0:26              3 (const int)
+0:26          Constant:
+0:26            0 (const int)
+0:27      move second child to first child ( temp 3-component vector of int)
+0:27        'temp1' ( temp 3-component vector of int)
+0:27        textureSize ( global 3-component vector of int)
+0:27          'data5' ( uniform isampler2DMSArray)
+0:?   Linker Objects
+0:?     'result' ( smooth out float)
+0:?     'result1' ( smooth out int)
+0:?     'result2' ( smooth out uint)
+0:?     'data' ( uniform sampler2DMS)
+0:?     'data1' ( uniform sampler2DMSArray)
+0:?     'data2' ( uniform isampler2DMS)
+0:?     'data3' ( uniform usampler2DMSArray)
+0:?     'data4' ( uniform usampler2DMS)
+0:?     'data5' ( uniform isampler2DMSArray)
+0:?     'gl_VertexID' ( gl_VertexId int VertexId)
+0:?     'gl_InstanceID' ( gl_InstanceId int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 140
+Requested GL_ARB_texture_multisample
+0:? Sequence
+0:14  Function Definition: main( ( global void)
+0:14    Function Parameters: 
+0:16    Sequence
+0:16      move second child to first child ( temp float)
+0:16        'result' ( smooth out float)
+0:16        direct index ( temp float)
+0:16          textureFetch ( global 4-component vector of float)
+0:16            'data' ( uniform sampler2DMS)
+0:16            Constant:
+0:16              0 (const int)
+0:16              0 (const int)
+0:16            Constant:
+0:16              3 (const int)
+0:16          Constant:
+0:16            0 (const int)
+0:17      Sequence
+0:17        move second child to first child ( temp 2-component vector of int)
+0:17          'temp' ( temp 2-component vector of int)
+0:17          textureSize ( global 2-component vector of int)
+0:17            'data' ( uniform sampler2DMS)
+0:18      move second child to first child ( temp float)
+0:18        'result' ( smooth out float)
+0:18        direct index ( temp float)
+0:18          textureFetch ( global 4-component vector of float)
+0:18            'data1' ( uniform sampler2DMSArray)
+0:18            Constant:
+0:18              0 (const int)
+0:18              0 (const int)
+0:18              0 (const int)
+0:18            Constant:
+0:18              3 (const int)
+0:18          Constant:
+0:18            0 (const int)
+0:19      Sequence
+0:19        move second child to first child ( temp 3-component vector of int)
+0:19          'temp1' ( temp 3-component vector of int)
+0:19          textureSize ( global 3-component vector of int)
+0:19            'data1' ( uniform sampler2DMSArray)
+0:20      move second child to first child ( temp int)
+0:20        'result1' ( smooth out int)
+0:20        direct index ( temp int)
+0:20          textureFetch ( global 4-component vector of int)
+0:20            'data2' ( uniform isampler2DMS)
+0:20            Constant:
+0:20              0 (const int)
+0:20              0 (const int)
+0:20            Constant:
+0:20              3 (const int)
+0:20          Constant:
+0:20            0 (const int)
+0:21      move second child to first child ( temp 2-component vector of int)
+0:21        'temp' ( temp 2-component vector of int)
+0:21        textureSize ( global 2-component vector of int)
+0:21          'data2' ( uniform isampler2DMS)
+0:22      move second child to first child ( temp uint)
+0:22        'result2' ( smooth out uint)
+0:22        direct index ( temp uint)
+0:22          textureFetch ( global 4-component vector of uint)
+0:22            'data3' ( uniform usampler2DMSArray)
+0:22            Constant:
+0:22              0 (const int)
+0:22              0 (const int)
+0:22              0 (const int)
+0:22            Constant:
+0:22              3 (const int)
+0:22          Constant:
+0:22            0 (const int)
+0:23      move second child to first child ( temp 3-component vector of int)
+0:23        'temp1' ( temp 3-component vector of int)
+0:23        textureSize ( global 3-component vector of int)
+0:23          'data3' ( uniform usampler2DMSArray)
+0:24      move second child to first child ( temp uint)
+0:24        'result2' ( smooth out uint)
+0:24        direct index ( temp uint)
+0:24          textureFetch ( global 4-component vector of uint)
+0:24            'data4' ( uniform usampler2DMS)
+0:24            Constant:
+0:24              0 (const int)
+0:24              0 (const int)
+0:24            Constant:
+0:24              3 (const int)
+0:24          Constant:
+0:24            0 (const int)
+0:25      move second child to first child ( temp 2-component vector of int)
+0:25        'temp' ( temp 2-component vector of int)
+0:25        textureSize ( global 2-component vector of int)
+0:25          'data4' ( uniform usampler2DMS)
+0:26      move second child to first child ( temp int)
+0:26        'result1' ( smooth out int)
+0:26        direct index ( temp int)
+0:26          textureFetch ( global 4-component vector of int)
+0:26            'data5' ( uniform isampler2DMSArray)
+0:26            Constant:
+0:26              0 (const int)
+0:26              0 (const int)
+0:26              0 (const int)
+0:26            Constant:
+0:26              3 (const int)
+0:26          Constant:
+0:26            0 (const int)
+0:27      move second child to first child ( temp 3-component vector of int)
+0:27        'temp1' ( temp 3-component vector of int)
+0:27        textureSize ( global 3-component vector of int)
+0:27          'data5' ( uniform isampler2DMSArray)
+0:?   Linker Objects
+0:?     'result' ( smooth out float)
+0:?     'result1' ( smooth out int)
+0:?     'result2' ( smooth out uint)
+0:?     'data' ( uniform sampler2DMS)
+0:?     'data1' ( uniform sampler2DMSArray)
+0:?     'data2' ( uniform isampler2DMS)
+0:?     'data3' ( uniform usampler2DMSArray)
+0:?     'data4' ( uniform usampler2DMS)
+0:?     'data5' ( uniform isampler2DMSArray)
+0:?     'gl_VertexID' ( gl_VertexId int VertexId)
+0:?     'gl_InstanceID' ( gl_InstanceId int InstanceId)
+
diff --git a/Test/baseResults/GL_EXT_draw_instanced.vert.out b/Test/baseResults/GL_EXT_draw_instanced.vert.out
new file mode 100644
index 0000000..cce01a1
--- /dev/null
+++ b/Test/baseResults/GL_EXT_draw_instanced.vert.out
@@ -0,0 +1,173 @@
+GL_EXT_draw_instanced.vert
+Shader version: 120
+Requested GL_EXT_draw_instanced
+0:? Sequence
+0:10  Function Definition: main( ( global void)
+0:10    Function Parameters: 
+0:12    Sequence
+0:12      Sequence
+0:12        move second child to first child ( temp 4-component vector of float)
+0:12          'vertex' ( temp 4-component vector of float)
+0:12          add ( temp 4-component vector of float)
+0:12            Construct vec4 ( temp 4-component vector of float)
+0:12              divide ( temp 2-component vector of float)
+0:12                vector swizzle ( temp 2-component vector of float)
+0:12                  direct index ( temp 4-component vector of float)
+0:12                    'va' ( uniform 64-element array of 4-component vector of float)
+0:12                    Constant:
+0:12                      0 (const int)
+0:12                  Sequence
+0:12                    Constant:
+0:12                      0 (const int)
+0:12                    Constant:
+0:12                      1 (const int)
+0:12                Constant:
+0:12                  3.000000
+0:12              vector swizzle ( temp 2-component vector of float)
+0:12                direct index ( temp 4-component vector of float)
+0:12                  'va' ( uniform 64-element array of 4-component vector of float)
+0:12                  Constant:
+0:12                    0 (const int)
+0:12                Sequence
+0:12                  Constant:
+0:12                    2 (const int)
+0:12                  Constant:
+0:12                    3 (const int)
+0:12            Construct vec4 ( temp 4-component vector of float)
+0:12              indirect index ( temp 3-component vector of float)
+0:12                'instanceOffsets' ( uniform 3-element array of 3-component vector of float)
+0:12                'gl_InstanceID' ( gl_InstanceId int InstanceId)
+0:12              Constant:
+0:12                1.000000
+0:13      move second child to first child ( temp 4-component vector of float)
+0:13        'color' ( global 4-component vector of float)
+0:13        Constant:
+0:13          0.000000
+0:13          0.000000
+0:13          0.000000
+0:13          0.000000
+0:14      Sequence
+0:14        Sequence
+0:14          move second child to first child ( temp int)
+0:14            'i' ( temp int)
+0:14            Constant:
+0:14              1 (const int)
+0:14        Loop with condition tested first
+0:14          Loop Condition
+0:14          Compare Less Than ( temp bool)
+0:14            'i' ( temp int)
+0:14            Constant:
+0:14              64 (const int)
+0:14          Loop Body
+0:15          add second child into first child ( temp 4-component vector of float)
+0:15            'color' ( global 4-component vector of float)
+0:15            indirect index ( temp 4-component vector of float)
+0:15              'va' ( uniform 64-element array of 4-component vector of float)
+0:15              'i' ( temp int)
+0:14          Loop Terminal Expression
+0:14          Post-Increment ( temp int)
+0:14            'i' ( temp int)
+0:16      move second child to first child ( temp 4-component vector of float)
+0:16        'gl_Position' ( gl_Position 4-component vector of float Position)
+0:16        matrix-times-vector ( temp 4-component vector of float)
+0:16          'gtf_ModelViewProjectionMatrix' ( uniform 4X4 matrix of float)
+0:16          'vertex' ( temp 4-component vector of float)
+0:17      move second child to first child ( temp float)
+0:17        'gl_PointSize' ( gl_PointSize float PointSize)
+0:17        Constant:
+0:17          1.000000
+0:?   Linker Objects
+0:?     'gtf_ModelViewProjectionMatrix' ( uniform 4X4 matrix of float)
+0:?     'instanceOffsets' ( uniform 3-element array of 3-component vector of float)
+0:?     'va' ( uniform 64-element array of 4-component vector of float)
+0:?     'color' ( global 4-component vector of float)
+0:?     'gl_InstanceID' ( gl_InstanceId int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 120
+Requested GL_EXT_draw_instanced
+0:? Sequence
+0:10  Function Definition: main( ( global void)
+0:10    Function Parameters: 
+0:12    Sequence
+0:12      Sequence
+0:12        move second child to first child ( temp 4-component vector of float)
+0:12          'vertex' ( temp 4-component vector of float)
+0:12          add ( temp 4-component vector of float)
+0:12            Construct vec4 ( temp 4-component vector of float)
+0:12              divide ( temp 2-component vector of float)
+0:12                vector swizzle ( temp 2-component vector of float)
+0:12                  direct index ( temp 4-component vector of float)
+0:12                    'va' ( uniform 64-element array of 4-component vector of float)
+0:12                    Constant:
+0:12                      0 (const int)
+0:12                  Sequence
+0:12                    Constant:
+0:12                      0 (const int)
+0:12                    Constant:
+0:12                      1 (const int)
+0:12                Constant:
+0:12                  3.000000
+0:12              vector swizzle ( temp 2-component vector of float)
+0:12                direct index ( temp 4-component vector of float)
+0:12                  'va' ( uniform 64-element array of 4-component vector of float)
+0:12                  Constant:
+0:12                    0 (const int)
+0:12                Sequence
+0:12                  Constant:
+0:12                    2 (const int)
+0:12                  Constant:
+0:12                    3 (const int)
+0:12            Construct vec4 ( temp 4-component vector of float)
+0:12              indirect index ( temp 3-component vector of float)
+0:12                'instanceOffsets' ( uniform 3-element array of 3-component vector of float)
+0:12                'gl_InstanceID' ( gl_InstanceId int InstanceId)
+0:12              Constant:
+0:12                1.000000
+0:13      move second child to first child ( temp 4-component vector of float)
+0:13        'color' ( global 4-component vector of float)
+0:13        Constant:
+0:13          0.000000
+0:13          0.000000
+0:13          0.000000
+0:13          0.000000
+0:14      Sequence
+0:14        Sequence
+0:14          move second child to first child ( temp int)
+0:14            'i' ( temp int)
+0:14            Constant:
+0:14              1 (const int)
+0:14        Loop with condition tested first
+0:14          Loop Condition
+0:14          Compare Less Than ( temp bool)
+0:14            'i' ( temp int)
+0:14            Constant:
+0:14              64 (const int)
+0:14          Loop Body
+0:15          add second child into first child ( temp 4-component vector of float)
+0:15            'color' ( global 4-component vector of float)
+0:15            indirect index ( temp 4-component vector of float)
+0:15              'va' ( uniform 64-element array of 4-component vector of float)
+0:15              'i' ( temp int)
+0:14          Loop Terminal Expression
+0:14          Post-Increment ( temp int)
+0:14            'i' ( temp int)
+0:16      move second child to first child ( temp 4-component vector of float)
+0:16        'gl_Position' ( gl_Position 4-component vector of float Position)
+0:16        matrix-times-vector ( temp 4-component vector of float)
+0:16          'gtf_ModelViewProjectionMatrix' ( uniform 4X4 matrix of float)
+0:16          'vertex' ( temp 4-component vector of float)
+0:17      move second child to first child ( temp float)
+0:17        'gl_PointSize' ( gl_PointSize float PointSize)
+0:17        Constant:
+0:17          1.000000
+0:?   Linker Objects
+0:?     'gtf_ModelViewProjectionMatrix' ( uniform 4X4 matrix of float)
+0:?     'instanceOffsets' ( uniform 3-element array of 3-component vector of float)
+0:?     'va' ( uniform 64-element array of 4-component vector of float)
+0:?     'color' ( global 4-component vector of float)
+0:?     'gl_InstanceID' ( gl_InstanceId int InstanceId)
+
diff --git a/Test/baseResults/GL_EXT_texture_array.frag.out b/Test/baseResults/GL_EXT_texture_array.frag.out
new file mode 100644
index 0000000..977d932
--- /dev/null
+++ b/Test/baseResults/GL_EXT_texture_array.frag.out
@@ -0,0 +1,149 @@
+GL_EXT_texture_array.frag
+Shader version: 110
+Requested GL_EXT_texture_array
+0:? Sequence
+0:10  Function Definition: foo( ( global void)
+0:10    Function Parameters: 
+0:?     Sequence
+0:17      move second child to first child ( temp 4-component vector of float)
+0:17        'v4' ( temp 4-component vector of float)
+0:17        texture ( global 4-component vector of float)
+0:17          's1DA' ( uniform sampler1DArray)
+0:17          'v2' ( temp 2-component vector of float)
+0:18      move second child to first child ( temp 4-component vector of float)
+0:18        'v4' ( temp 4-component vector of float)
+0:18        texture ( global 4-component vector of float)
+0:18          's2DA' ( uniform sampler2DArray)
+0:18          'v3' ( temp 3-component vector of float)
+0:19      move second child to first child ( temp 4-component vector of float)
+0:19        'v4' ( temp 4-component vector of float)
+0:19        texture ( global 4-component vector of float)
+0:19          's1DAS' ( uniform sampler1DArrayShadow)
+0:19          'v3' ( temp 3-component vector of float)
+0:20      move second child to first child ( temp 4-component vector of float)
+0:20        'v4' ( temp 4-component vector of float)
+0:20        texture ( global 4-component vector of float)
+0:20          's2DAS' ( uniform sampler2DArrayShadow)
+0:20          'v4' ( temp 4-component vector of float)
+0:22      move second child to first child ( temp 4-component vector of float)
+0:22        'v4' ( temp 4-component vector of float)
+0:22        texture ( global 4-component vector of float)
+0:22          's1DA' ( uniform sampler1DArray)
+0:22          'v2' ( temp 2-component vector of float)
+0:22          'f' ( temp float)
+0:23      move second child to first child ( temp 4-component vector of float)
+0:23        'v4' ( temp 4-component vector of float)
+0:23        texture ( global 4-component vector of float)
+0:23          's2DA' ( uniform sampler2DArray)
+0:23          'v3' ( temp 3-component vector of float)
+0:23          'f' ( temp float)
+0:24      move second child to first child ( temp 4-component vector of float)
+0:24        'v4' ( temp 4-component vector of float)
+0:24        texture ( global 4-component vector of float)
+0:24          's1DAS' ( uniform sampler1DArrayShadow)
+0:24          'v3' ( temp 3-component vector of float)
+0:24          'f' ( temp float)
+0:26      move second child to first child ( temp 4-component vector of float)
+0:26        'v4' ( temp 4-component vector of float)
+0:26        textureLod ( global 4-component vector of float)
+0:26          's1DA' ( uniform sampler1DArray)
+0:26          'v2' ( temp 2-component vector of float)
+0:26          'f' ( temp float)
+0:27      move second child to first child ( temp 4-component vector of float)
+0:27        'v4' ( temp 4-component vector of float)
+0:27        textureLod ( global 4-component vector of float)
+0:27          's2DA' ( uniform sampler2DArray)
+0:27          'v3' ( temp 3-component vector of float)
+0:27          'f' ( temp float)
+0:28      move second child to first child ( temp 4-component vector of float)
+0:28        'v4' ( temp 4-component vector of float)
+0:28        textureLod ( global 4-component vector of float)
+0:28          's1DAS' ( uniform sampler1DArrayShadow)
+0:28          'v3' ( temp 3-component vector of float)
+0:28          'f' ( temp float)
+0:31  Function Definition: main( ( global void)
+0:31    Function Parameters: 
+0:33    Sequence
+0:33      Function Call: foo( ( global void)
+0:?   Linker Objects
+0:?     's1DA' ( uniform sampler1DArray)
+0:?     's2DA' ( uniform sampler2DArray)
+0:?     's1DAS' ( uniform sampler1DArrayShadow)
+0:?     's2DAS' ( uniform sampler2DArrayShadow)
+
+
+Linked fragment stage:
+
+
+Shader version: 110
+Requested GL_EXT_texture_array
+0:? Sequence
+0:10  Function Definition: foo( ( global void)
+0:10    Function Parameters: 
+0:?     Sequence
+0:17      move second child to first child ( temp 4-component vector of float)
+0:17        'v4' ( temp 4-component vector of float)
+0:17        texture ( global 4-component vector of float)
+0:17          's1DA' ( uniform sampler1DArray)
+0:17          'v2' ( temp 2-component vector of float)
+0:18      move second child to first child ( temp 4-component vector of float)
+0:18        'v4' ( temp 4-component vector of float)
+0:18        texture ( global 4-component vector of float)
+0:18          's2DA' ( uniform sampler2DArray)
+0:18          'v3' ( temp 3-component vector of float)
+0:19      move second child to first child ( temp 4-component vector of float)
+0:19        'v4' ( temp 4-component vector of float)
+0:19        texture ( global 4-component vector of float)
+0:19          's1DAS' ( uniform sampler1DArrayShadow)
+0:19          'v3' ( temp 3-component vector of float)
+0:20      move second child to first child ( temp 4-component vector of float)
+0:20        'v4' ( temp 4-component vector of float)
+0:20        texture ( global 4-component vector of float)
+0:20          's2DAS' ( uniform sampler2DArrayShadow)
+0:20          'v4' ( temp 4-component vector of float)
+0:22      move second child to first child ( temp 4-component vector of float)
+0:22        'v4' ( temp 4-component vector of float)
+0:22        texture ( global 4-component vector of float)
+0:22          's1DA' ( uniform sampler1DArray)
+0:22          'v2' ( temp 2-component vector of float)
+0:22          'f' ( temp float)
+0:23      move second child to first child ( temp 4-component vector of float)
+0:23        'v4' ( temp 4-component vector of float)
+0:23        texture ( global 4-component vector of float)
+0:23          's2DA' ( uniform sampler2DArray)
+0:23          'v3' ( temp 3-component vector of float)
+0:23          'f' ( temp float)
+0:24      move second child to first child ( temp 4-component vector of float)
+0:24        'v4' ( temp 4-component vector of float)
+0:24        texture ( global 4-component vector of float)
+0:24          's1DAS' ( uniform sampler1DArrayShadow)
+0:24          'v3' ( temp 3-component vector of float)
+0:24          'f' ( temp float)
+0:26      move second child to first child ( temp 4-component vector of float)
+0:26        'v4' ( temp 4-component vector of float)
+0:26        textureLod ( global 4-component vector of float)
+0:26          's1DA' ( uniform sampler1DArray)
+0:26          'v2' ( temp 2-component vector of float)
+0:26          'f' ( temp float)
+0:27      move second child to first child ( temp 4-component vector of float)
+0:27        'v4' ( temp 4-component vector of float)
+0:27        textureLod ( global 4-component vector of float)
+0:27          's2DA' ( uniform sampler2DArray)
+0:27          'v3' ( temp 3-component vector of float)
+0:27          'f' ( temp float)
+0:28      move second child to first child ( temp 4-component vector of float)
+0:28        'v4' ( temp 4-component vector of float)
+0:28        textureLod ( global 4-component vector of float)
+0:28          's1DAS' ( uniform sampler1DArrayShadow)
+0:28          'v3' ( temp 3-component vector of float)
+0:28          'f' ( temp float)
+0:31  Function Definition: main( ( global void)
+0:31    Function Parameters: 
+0:33    Sequence
+0:33      Function Call: foo( ( global void)
+0:?   Linker Objects
+0:?     's1DA' ( uniform sampler1DArray)
+0:?     's2DA' ( uniform sampler2DArray)
+0:?     's1DAS' ( uniform sampler1DArrayShadow)
+0:?     's2DAS' ( uniform sampler2DArrayShadow)
+
diff --git a/Test/baseResults/atomicAdd.comp.out b/Test/baseResults/atomicAdd.comp.out
index 6752a71..5c9afc8 100644
--- a/Test/baseResults/atomicAdd.comp.out
+++ b/Test/baseResults/atomicAdd.comp.out
@@ -1,5 +1,5 @@
 atomicAdd.comp
-ERROR: 0:18: 'atomicAdd' : Atomic memory function can only be used for shader storage block member or shared variable. 
+ERROR: 0:18: 'atomicAdd' : Only l-values corresponding to shader block storage or shared variables can be used with atomic memory functions. 
 ERROR: 1 compilation errors.  No code generated.
 
 
diff --git a/Test/baseResults/constFoldIntMin.frag.out b/Test/baseResults/constFoldIntMin.frag.out
index 2c45ca8..e7dd353 100644
--- a/Test/baseResults/constFoldIntMin.frag.out
+++ b/Test/baseResults/constFoldIntMin.frag.out
@@ -25,7 +25,7 @@
 0:9        move second child to first child ( temp int16_t)
 0:9          'x' ( temp int16_t)
 0:9          Constant:
-0:9            0 (const int8_t)
+0:9            0 (const int16_t)
 0:10      Sequence
 0:10        move second child to first child ( temp int)
 0:10          'y' ( temp int)
diff --git a/Test/baseResults/cppBad.vert.out b/Test/baseResults/cppBad.vert.out
index 8ab04bc..e0a1504 100644
--- a/Test/baseResults/cppBad.vert.out
+++ b/Test/baseResults/cppBad.vert.out
@@ -1,5 +1,7 @@
 cppBad.vert
 WARNING: 0:1: '#define' : missing space after macro name 
+ERROR: 0:1: '#' : (#) can be preceded in its line only by spaces or horizontal tabs 
+ERROR: 0:2: '#' : (#) can be preceded in its line only by spaces or horizontal tabs 
 ERROR: 0:3: 'preprocessor evaluation' : bad expression 
 ERROR: 0:3: '#if' : unexpected tokens following directive 
 ERROR: 0:6: 'string' : End of line in string 
@@ -7,7 +9,7 @@
 GL_EXT_debug_printf
 GL_EXT_spirv_intrinsics
 ERROR: 0:6: '' :  syntax error, unexpected INT, expecting COMMA or SEMICOLON
-ERROR: 5 compilation errors.  No code generated.
+ERROR: 7 compilation errors.  No code generated.
 
 
 Shader version: 100
diff --git a/Test/baseResults/cppBad4.vert.out b/Test/baseResults/cppBad4.vert.out
index 693ea8e..23f149d 100644
--- a/Test/baseResults/cppBad4.vert.out
+++ b/Test/baseResults/cppBad4.vert.out
@@ -1,7 +1,8 @@
 cppBad4.vert
+ERROR: 0:2: '#' : (#) can be preceded in its line only by spaces or horizontal tabs 
 ERROR: 0:4: 'macro expansion' : unexpected '#' g
 ERROR: 0:5: '' :  syntax error, unexpected SEMICOLON, expecting LEFT_PAREN
-ERROR: 2 compilation errors.  No code generated.
+ERROR: 3 compilation errors.  No code generated.
 
 
 Shader version: 100
diff --git a/Test/baseResults/gl_samplemask_array_size.frag.out b/Test/baseResults/gl_samplemask_array_size.frag.out
new file mode 100644
index 0000000..a7d5b76
--- /dev/null
+++ b/Test/baseResults/gl_samplemask_array_size.frag.out
@@ -0,0 +1,81 @@
+gl_samplemask_array_size.frag
+Shader version: 320
+0:? Sequence
+0:4  Function Definition: main( ( global void)
+0:4    Function Parameters: 
+0:6    Sequence
+0:6      Sequence
+0:6        Sequence
+0:6          move second child to first child ( temp mediump int)
+0:6            'i' ( temp mediump int)
+0:6            Constant:
+0:6              0 (const int)
+0:6        Loop with condition tested first
+0:6          Loop Condition
+0:6          Compare Less Than ( temp bool)
+0:6            'i' ( temp mediump int)
+0:6            Constant:
+0:6              1 (const int)
+0:6          Loop Body
+0:7          move second child to first child ( temp highp int)
+0:7            indirect index ( temp highp int SampleMaskIn)
+0:7              'gl_SampleMask' ( out runtime-sized array of highp int SampleMaskIn)
+0:7              'i' ( temp mediump int)
+0:7            Constant:
+0:7              -1431655766 (const int)
+0:6          Loop Terminal Expression
+0:6          Pre-Increment ( temp mediump int)
+0:6            'i' ( temp mediump int)
+0:9      move second child to first child ( temp mediump 4-component vector of float)
+0:9        'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:9        Constant:
+0:9          0.000000
+0:9          1.000000
+0:9          0.000000
+0:9          1.000000
+0:?   Linker Objects
+0:?     'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:?     'gl_SampleMask' ( out runtime-sized array of highp int SampleMaskIn)
+
+
+Linked fragment stage:
+
+
+Shader version: 320
+0:? Sequence
+0:4  Function Definition: main( ( global void)
+0:4    Function Parameters: 
+0:6    Sequence
+0:6      Sequence
+0:6        Sequence
+0:6          move second child to first child ( temp mediump int)
+0:6            'i' ( temp mediump int)
+0:6            Constant:
+0:6              0 (const int)
+0:6        Loop with condition tested first
+0:6          Loop Condition
+0:6          Compare Less Than ( temp bool)
+0:6            'i' ( temp mediump int)
+0:6            Constant:
+0:6              1 (const int)
+0:6          Loop Body
+0:7          move second child to first child ( temp highp int)
+0:7            indirect index ( temp highp int SampleMaskIn)
+0:7              'gl_SampleMask' ( out 1-element array of highp int SampleMaskIn)
+0:7              'i' ( temp mediump int)
+0:7            Constant:
+0:7              -1431655766 (const int)
+0:6          Loop Terminal Expression
+0:6          Pre-Increment ( temp mediump int)
+0:6            'i' ( temp mediump int)
+0:9      move second child to first child ( temp mediump 4-component vector of float)
+0:9        'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:9        Constant:
+0:9          0.000000
+0:9          1.000000
+0:9          0.000000
+0:9          1.000000
+0:?   Linker Objects
+0:?     'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:?     'gl_SampleMask' ( out 1-element array of highp int SampleMaskIn)
+
diff --git a/Test/baseResults/gl_samplemask_array_size_32.frag.out b/Test/baseResults/gl_samplemask_array_size_32.frag.out
new file mode 100644
index 0000000..0569873
--- /dev/null
+++ b/Test/baseResults/gl_samplemask_array_size_32.frag.out
@@ -0,0 +1,39 @@
+gl_samplemask_array_size.frag
+Shader version: 320
+0:? Sequence
+0:4  Function Definition: main( ( global void)
+0:4    Function Parameters: 
+0:6    Sequence
+0:6      Sequence
+0:6        Sequence
+0:6          move second child to first child ( temp mediump int)
+0:6            'i' ( temp mediump int)
+0:6            Constant:
+0:6              0 (const int)
+0:6        Loop with condition tested first
+0:6          Loop Condition
+0:6          Compare Less Than ( temp bool)
+0:6            'i' ( temp mediump int)
+0:6            Constant:
+0:6              1 (const int)
+0:6          Loop Body
+0:7          move second child to first child ( temp highp int)
+0:7            indirect index ( temp highp int SampleMaskIn)
+0:7              'gl_SampleMask' ( out runtime-sized array of highp int SampleMaskIn)
+0:7              'i' ( temp mediump int)
+0:7            Constant:
+0:7              -1431655766 (const int)
+0:6          Loop Terminal Expression
+0:6          Pre-Increment ( temp mediump int)
+0:6            'i' ( temp mediump int)
+0:9      move second child to first child ( temp mediump 4-component vector of float)
+0:9        'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:9        Constant:
+0:9          0.000000
+0:9          1.000000
+0:9          0.000000
+0:9          1.000000
+0:?   Linker Objects
+0:?     'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:?     'gl_SampleMask' ( out runtime-sized array of highp int SampleMaskIn)
+
diff --git a/Test/baseResults/gl_samplemask_array_size_64.frag.out b/Test/baseResults/gl_samplemask_array_size_64.frag.out
new file mode 100644
index 0000000..3780bec
--- /dev/null
+++ b/Test/baseResults/gl_samplemask_array_size_64.frag.out
@@ -0,0 +1,39 @@
+gl_samplemask_array_size.frag
+Shader version: 320
+0:? Sequence
+0:4  Function Definition: main( ( global void)
+0:4    Function Parameters: 
+0:6    Sequence
+0:6      Sequence
+0:6        Sequence
+0:6          move second child to first child ( temp mediump int)
+0:6            'i' ( temp mediump int)
+0:6            Constant:
+0:6              0 (const int)
+0:6        Loop with condition tested first
+0:6          Loop Condition
+0:6          Compare Less Than ( temp bool)
+0:6            'i' ( temp mediump int)
+0:6            Constant:
+0:6              2 (const int)
+0:6          Loop Body
+0:7          move second child to first child ( temp highp int)
+0:7            indirect index ( temp highp int SampleMaskIn)
+0:7              'gl_SampleMask' ( out runtime-sized array of highp int SampleMaskIn)
+0:7              'i' ( temp mediump int)
+0:7            Constant:
+0:7              -1431655766 (const int)
+0:6          Loop Terminal Expression
+0:6          Pre-Increment ( temp mediump int)
+0:6            'i' ( temp mediump int)
+0:9      move second child to first child ( temp mediump 4-component vector of float)
+0:9        'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:9        Constant:
+0:9          0.000000
+0:9          1.000000
+0:9          0.000000
+0:9          1.000000
+0:?   Linker Objects
+0:?     'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:?     'gl_SampleMask' ( out runtime-sized array of highp int SampleMaskIn)
+
diff --git a/Test/baseResults/glsl.450.subgroupRotate.comp.out b/Test/baseResults/glsl.450.subgroupRotate.comp.out
new file mode 100644
index 0000000..31d025b
--- /dev/null
+++ b/Test/baseResults/glsl.450.subgroupRotate.comp.out
@@ -0,0 +1,2177 @@
+glsl.450.subgroupRotate.comp
+Shader version: 450
+Requested GL_KHR_shader_subgroup_rotate
+local_size = (8, 8, 1)
+0:? Sequence
+0:20  Function Definition: main( ( global void)
+0:20    Function Parameters: 
+0:22    Sequence
+0:22      Sequence
+0:22        move second child to first child ( temp uint)
+0:22          'delta' ( temp uint)
+0:22          delta: direct index for structure (layout( column_major shared) readonly buffer uint)
+0:22            'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) readonly buffer uint delta})
+0:22            Constant:
+0:22              0 (const int)
+0:24      move second child to first child ( temp float)
+0:24        direct index ( temp float)
+0:24          f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
+0:24            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:24              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:24              'delta' ( temp uint)
+0:24            Constant:
+0:24              0 (const int)
+0:24          Constant:
+0:24            0 (const int)
+0:24        subgroupRotate ( global float)
+0:24          direct index ( temp float)
+0:24            f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
+0:24              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:24                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:24                Constant:
+0:24                  0 (const int)
+0:24              Constant:
+0:24                0 (const int)
+0:24            Constant:
+0:24              0 (const int)
+0:24          'delta' ( temp uint)
+0:25      move second child to first child ( temp 2-component vector of float)
+0:25        vector swizzle ( temp 2-component vector of float)
+0:25          f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
+0:25            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:25              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:25              'delta' ( temp uint)
+0:25            Constant:
+0:25              0 (const int)
+0:25          Sequence
+0:25            Constant:
+0:25              0 (const int)
+0:25            Constant:
+0:25              1 (const int)
+0:25        subgroupRotate ( global 2-component vector of float)
+0:25          vector swizzle ( temp 2-component vector of float)
+0:25            f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
+0:25              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:25                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:25                Constant:
+0:25                  1 (const int)
+0:25              Constant:
+0:25                0 (const int)
+0:25            Sequence
+0:25              Constant:
+0:25                0 (const int)
+0:25              Constant:
+0:25                1 (const int)
+0:25          'delta' ( temp uint)
+0:26      move second child to first child ( temp 3-component vector of float)
+0:26        vector swizzle ( temp 3-component vector of float)
+0:26          f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
+0:26            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:26              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:26              'delta' ( temp uint)
+0:26            Constant:
+0:26              0 (const int)
+0:26          Sequence
+0:26            Constant:
+0:26              0 (const int)
+0:26            Constant:
+0:26              1 (const int)
+0:26            Constant:
+0:26              2 (const int)
+0:26        subgroupRotate ( global 3-component vector of float)
+0:26          vector swizzle ( temp 3-component vector of float)
+0:26            f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
+0:26              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:26                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:26                Constant:
+0:26                  2 (const int)
+0:26              Constant:
+0:26                0 (const int)
+0:26            Sequence
+0:26              Constant:
+0:26                0 (const int)
+0:26              Constant:
+0:26                1 (const int)
+0:26              Constant:
+0:26                2 (const int)
+0:26          'delta' ( temp uint)
+0:27      move second child to first child ( temp 4-component vector of float)
+0:27        f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
+0:27          indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:27            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:27            'delta' ( temp uint)
+0:27          Constant:
+0:27            0 (const int)
+0:27        subgroupRotate ( global 4-component vector of float)
+0:27          f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
+0:27            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:27              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:27              Constant:
+0:27                3 (const int)
+0:27            Constant:
+0:27              0 (const int)
+0:27          'delta' ( temp uint)
+0:29      move second child to first child ( temp int)
+0:29        direct index ( temp int)
+0:29          i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:29            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:29              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:29              'delta' ( temp uint)
+0:29            Constant:
+0:29              1 (const int)
+0:29          Constant:
+0:29            0 (const int)
+0:29        subgroupRotate ( global int)
+0:29          direct index ( temp int)
+0:29            i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:29              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:29                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:29                Constant:
+0:29                  0 (const int)
+0:29              Constant:
+0:29                1 (const int)
+0:29            Constant:
+0:29              0 (const int)
+0:29          'delta' ( temp uint)
+0:30      move second child to first child ( temp 2-component vector of int)
+0:30        vector swizzle ( temp 2-component vector of int)
+0:30          i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:30            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:30              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:30              'delta' ( temp uint)
+0:30            Constant:
+0:30              1 (const int)
+0:30          Sequence
+0:30            Constant:
+0:30              0 (const int)
+0:30            Constant:
+0:30              1 (const int)
+0:30        subgroupRotate ( global 2-component vector of int)
+0:30          vector swizzle ( temp 2-component vector of int)
+0:30            i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:30              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:30                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:30                Constant:
+0:30                  1 (const int)
+0:30              Constant:
+0:30                1 (const int)
+0:30            Sequence
+0:30              Constant:
+0:30                0 (const int)
+0:30              Constant:
+0:30                1 (const int)
+0:30          'delta' ( temp uint)
+0:31      move second child to first child ( temp 3-component vector of int)
+0:31        vector swizzle ( temp 3-component vector of int)
+0:31          i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:31            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:31              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:31              'delta' ( temp uint)
+0:31            Constant:
+0:31              1 (const int)
+0:31          Sequence
+0:31            Constant:
+0:31              0 (const int)
+0:31            Constant:
+0:31              1 (const int)
+0:31            Constant:
+0:31              2 (const int)
+0:31        subgroupRotate ( global 3-component vector of int)
+0:31          vector swizzle ( temp 3-component vector of int)
+0:31            i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:31              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:31                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:31                Constant:
+0:31                  2 (const int)
+0:31              Constant:
+0:31                1 (const int)
+0:31            Sequence
+0:31              Constant:
+0:31                0 (const int)
+0:31              Constant:
+0:31                1 (const int)
+0:31              Constant:
+0:31                2 (const int)
+0:31          'delta' ( temp uint)
+0:32      move second child to first child ( temp 4-component vector of int)
+0:32        i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:32          indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:32            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:32            'delta' ( temp uint)
+0:32          Constant:
+0:32            1 (const int)
+0:32        subgroupRotate ( global 4-component vector of int)
+0:32          i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:32            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:32              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:32              Constant:
+0:32                3 (const int)
+0:32            Constant:
+0:32              1 (const int)
+0:32          'delta' ( temp uint)
+0:34      move second child to first child ( temp uint)
+0:34        direct index ( temp uint)
+0:34          u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
+0:34            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:34              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:34              'delta' ( temp uint)
+0:34            Constant:
+0:34              2 (const int)
+0:34          Constant:
+0:34            0 (const int)
+0:34        subgroupRotate ( global uint)
+0:34          direct index ( temp uint)
+0:34            u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
+0:34              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:34                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:34                Constant:
+0:34                  0 (const int)
+0:34              Constant:
+0:34                2 (const int)
+0:34            Constant:
+0:34              0 (const int)
+0:34          'delta' ( temp uint)
+0:35      move second child to first child ( temp 2-component vector of uint)
+0:35        vector swizzle ( temp 2-component vector of uint)
+0:35          u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
+0:35            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:35              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:35              'delta' ( temp uint)
+0:35            Constant:
+0:35              2 (const int)
+0:35          Sequence
+0:35            Constant:
+0:35              0 (const int)
+0:35            Constant:
+0:35              1 (const int)
+0:35        subgroupRotate ( global 2-component vector of uint)
+0:35          vector swizzle ( temp 2-component vector of uint)
+0:35            u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
+0:35              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:35                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:35                Constant:
+0:35                  1 (const int)
+0:35              Constant:
+0:35                2 (const int)
+0:35            Sequence
+0:35              Constant:
+0:35                0 (const int)
+0:35              Constant:
+0:35                1 (const int)
+0:35          'delta' ( temp uint)
+0:36      move second child to first child ( temp 3-component vector of uint)
+0:36        vector swizzle ( temp 3-component vector of uint)
+0:36          u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
+0:36            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:36              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:36              'delta' ( temp uint)
+0:36            Constant:
+0:36              2 (const int)
+0:36          Sequence
+0:36            Constant:
+0:36              0 (const int)
+0:36            Constant:
+0:36              1 (const int)
+0:36            Constant:
+0:36              2 (const int)
+0:36        subgroupRotate ( global 3-component vector of uint)
+0:36          vector swizzle ( temp 3-component vector of uint)
+0:36            u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
+0:36              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:36                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:36                Constant:
+0:36                  2 (const int)
+0:36              Constant:
+0:36                2 (const int)
+0:36            Sequence
+0:36              Constant:
+0:36                0 (const int)
+0:36              Constant:
+0:36                1 (const int)
+0:36              Constant:
+0:36                2 (const int)
+0:36          'delta' ( temp uint)
+0:37      move second child to first child ( temp 4-component vector of uint)
+0:37        u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
+0:37          indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:37            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:37            'delta' ( temp uint)
+0:37          Constant:
+0:37            2 (const int)
+0:37        subgroupRotate ( global 4-component vector of uint)
+0:37          u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
+0:37            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:37              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:37              Constant:
+0:37                3 (const int)
+0:37            Constant:
+0:37              2 (const int)
+0:37          'delta' ( temp uint)
+0:39      move second child to first child ( temp double)
+0:39        direct index ( temp double)
+0:39          d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
+0:39            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:39              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:39              'delta' ( temp uint)
+0:39            Constant:
+0:39              3 (const int)
+0:39          Constant:
+0:39            0 (const int)
+0:39        subgroupRotate ( global double)
+0:39          direct index ( temp double)
+0:39            d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
+0:39              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:39                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:39                Constant:
+0:39                  0 (const int)
+0:39              Constant:
+0:39                3 (const int)
+0:39            Constant:
+0:39              0 (const int)
+0:39          'delta' ( temp uint)
+0:40      move second child to first child ( temp 2-component vector of double)
+0:40        vector swizzle ( temp 2-component vector of double)
+0:40          d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
+0:40            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:40              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:40              'delta' ( temp uint)
+0:40            Constant:
+0:40              3 (const int)
+0:40          Sequence
+0:40            Constant:
+0:40              0 (const int)
+0:40            Constant:
+0:40              1 (const int)
+0:40        subgroupRotate ( global 2-component vector of double)
+0:40          vector swizzle ( temp 2-component vector of double)
+0:40            d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
+0:40              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:40                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:40                Constant:
+0:40                  1 (const int)
+0:40              Constant:
+0:40                3 (const int)
+0:40            Sequence
+0:40              Constant:
+0:40                0 (const int)
+0:40              Constant:
+0:40                1 (const int)
+0:40          'delta' ( temp uint)
+0:41      move second child to first child ( temp 3-component vector of double)
+0:41        vector swizzle ( temp 3-component vector of double)
+0:41          d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
+0:41            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:41              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:41              'delta' ( temp uint)
+0:41            Constant:
+0:41              3 (const int)
+0:41          Sequence
+0:41            Constant:
+0:41              0 (const int)
+0:41            Constant:
+0:41              1 (const int)
+0:41            Constant:
+0:41              2 (const int)
+0:41        subgroupRotate ( global 3-component vector of double)
+0:41          vector swizzle ( temp 3-component vector of double)
+0:41            d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
+0:41              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:41                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:41                Constant:
+0:41                  2 (const int)
+0:41              Constant:
+0:41                3 (const int)
+0:41            Sequence
+0:41              Constant:
+0:41                0 (const int)
+0:41              Constant:
+0:41                1 (const int)
+0:41              Constant:
+0:41                2 (const int)
+0:41          'delta' ( temp uint)
+0:42      move second child to first child ( temp 4-component vector of double)
+0:42        d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
+0:42          indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:42            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:42            'delta' ( temp uint)
+0:42          Constant:
+0:42            3 (const int)
+0:42        subgroupRotate ( global 4-component vector of double)
+0:42          d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
+0:42            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:42              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:42              Constant:
+0:42                3 (const int)
+0:42            Constant:
+0:42              3 (const int)
+0:42          'delta' ( temp uint)
+0:44      move second child to first child ( temp int)
+0:44        direct index ( temp int)
+0:44          i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:44            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:44              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:44              'delta' ( temp uint)
+0:44            Constant:
+0:44              1 (const int)
+0:44          Constant:
+0:44            0 (const int)
+0:44        Convert bool to int ( temp int)
+0:44          subgroupRotate ( global bool)
+0:44            Compare Less Than ( temp bool)
+0:44              direct index ( temp int)
+0:44                i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:44                  direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:44                    'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:44                    Constant:
+0:44                      0 (const int)
+0:44                  Constant:
+0:44                    1 (const int)
+0:44                Constant:
+0:44                  0 (const int)
+0:44              Constant:
+0:44                0 (const int)
+0:44            'delta' ( temp uint)
+0:45      move second child to first child ( temp 2-component vector of int)
+0:45        vector swizzle ( temp 2-component vector of int)
+0:45          i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:45            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:45              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:45              'delta' ( temp uint)
+0:45            Constant:
+0:45              1 (const int)
+0:45          Sequence
+0:45            Constant:
+0:45              0 (const int)
+0:45            Constant:
+0:45              1 (const int)
+0:45        Convert bool to int ( temp 2-component vector of int)
+0:45          subgroupRotate ( global 2-component vector of bool)
+0:45            Compare Less Than ( global 2-component vector of bool)
+0:45              vector swizzle ( temp 2-component vector of int)
+0:45                i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:45                  direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:45                    'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:45                    Constant:
+0:45                      1 (const int)
+0:45                  Constant:
+0:45                    1 (const int)
+0:45                Sequence
+0:45                  Constant:
+0:45                    0 (const int)
+0:45                  Constant:
+0:45                    1 (const int)
+0:45              Constant:
+0:45                0 (const int)
+0:45                0 (const int)
+0:45            'delta' ( temp uint)
+0:46      move second child to first child ( temp 3-component vector of int)
+0:46        vector swizzle ( temp 3-component vector of int)
+0:46          i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:46            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:46              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:46              'delta' ( temp uint)
+0:46            Constant:
+0:46              1 (const int)
+0:46          Sequence
+0:46            Constant:
+0:46              0 (const int)
+0:46            Constant:
+0:46              1 (const int)
+0:46            Constant:
+0:46              2 (const int)
+0:46        Convert bool to int ( temp 3-component vector of int)
+0:46          subgroupRotate ( global 3-component vector of bool)
+0:46            Compare Less Than ( global 3-component vector of bool)
+0:46              vector swizzle ( temp 3-component vector of int)
+0:46                i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:46                  direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:46                    'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:46                    Constant:
+0:46                      1 (const int)
+0:46                  Constant:
+0:46                    1 (const int)
+0:46                Sequence
+0:46                  Constant:
+0:46                    0 (const int)
+0:46                  Constant:
+0:46                    1 (const int)
+0:46                  Constant:
+0:46                    2 (const int)
+0:46              Constant:
+0:46                0 (const int)
+0:46                0 (const int)
+0:46                0 (const int)
+0:46            'delta' ( temp uint)
+0:47      move second child to first child ( temp 4-component vector of int)
+0:47        i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:47          indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:47            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:47            'delta' ( temp uint)
+0:47          Constant:
+0:47            1 (const int)
+0:47        Convert bool to int ( temp 4-component vector of int)
+0:47          subgroupRotate ( global 4-component vector of bool)
+0:47            Compare Less Than ( global 4-component vector of bool)
+0:47              i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:47                direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:47                  'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:47                  Constant:
+0:47                    1 (const int)
+0:47                Constant:
+0:47                  1 (const int)
+0:47              Constant:
+0:47                0 (const int)
+0:47                0 (const int)
+0:47                0 (const int)
+0:47                0 (const int)
+0:47            'delta' ( temp uint)
+0:49      move second child to first child ( temp float)
+0:49        direct index ( temp float)
+0:49          f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
+0:49            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:49              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:49              'delta' ( temp uint)
+0:49            Constant:
+0:49              0 (const int)
+0:49          Constant:
+0:49            0 (const int)
+0:49        subgroupClusteredRotate ( global float)
+0:49          direct index ( temp float)
+0:49            f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
+0:49              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:49                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:49                Constant:
+0:49                  0 (const int)
+0:49              Constant:
+0:49                0 (const int)
+0:49            Constant:
+0:49              0 (const int)
+0:49          'delta' ( temp uint)
+0:49          Constant:
+0:49            1 (const uint)
+0:50      move second child to first child ( temp 2-component vector of float)
+0:50        vector swizzle ( temp 2-component vector of float)
+0:50          f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
+0:50            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:50              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:50              'delta' ( temp uint)
+0:50            Constant:
+0:50              0 (const int)
+0:50          Sequence
+0:50            Constant:
+0:50              0 (const int)
+0:50            Constant:
+0:50              1 (const int)
+0:50        subgroupClusteredRotate ( global 2-component vector of float)
+0:50          vector swizzle ( temp 2-component vector of float)
+0:50            f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
+0:50              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:50                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:50                Constant:
+0:50                  1 (const int)
+0:50              Constant:
+0:50                0 (const int)
+0:50            Sequence
+0:50              Constant:
+0:50                0 (const int)
+0:50              Constant:
+0:50                1 (const int)
+0:50          'delta' ( temp uint)
+0:50          Constant:
+0:50            1 (const uint)
+0:51      move second child to first child ( temp 3-component vector of float)
+0:51        vector swizzle ( temp 3-component vector of float)
+0:51          f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
+0:51            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:51              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:51              'delta' ( temp uint)
+0:51            Constant:
+0:51              0 (const int)
+0:51          Sequence
+0:51            Constant:
+0:51              0 (const int)
+0:51            Constant:
+0:51              1 (const int)
+0:51            Constant:
+0:51              2 (const int)
+0:51        subgroupClusteredRotate ( global 3-component vector of float)
+0:51          vector swizzle ( temp 3-component vector of float)
+0:51            f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
+0:51              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:51                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:51                Constant:
+0:51                  2 (const int)
+0:51              Constant:
+0:51                0 (const int)
+0:51            Sequence
+0:51              Constant:
+0:51                0 (const int)
+0:51              Constant:
+0:51                1 (const int)
+0:51              Constant:
+0:51                2 (const int)
+0:51          'delta' ( temp uint)
+0:51          Constant:
+0:51            1 (const uint)
+0:52      move second child to first child ( temp 4-component vector of float)
+0:52        f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
+0:52          indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:52            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:52            'delta' ( temp uint)
+0:52          Constant:
+0:52            0 (const int)
+0:52        subgroupClusteredRotate ( global 4-component vector of float)
+0:52          f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
+0:52            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:52              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:52              Constant:
+0:52                3 (const int)
+0:52            Constant:
+0:52              0 (const int)
+0:52          'delta' ( temp uint)
+0:52          Constant:
+0:52            1 (const uint)
+0:54      move second child to first child ( temp int)
+0:54        direct index ( temp int)
+0:54          i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:54            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:54              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:54              'delta' ( temp uint)
+0:54            Constant:
+0:54              1 (const int)
+0:54          Constant:
+0:54            0 (const int)
+0:54        subgroupClusteredRotate ( global int)
+0:54          direct index ( temp int)
+0:54            i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:54              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:54                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:54                Constant:
+0:54                  0 (const int)
+0:54              Constant:
+0:54                1 (const int)
+0:54            Constant:
+0:54              0 (const int)
+0:54          'delta' ( temp uint)
+0:54          Constant:
+0:54            1 (const uint)
+0:55      move second child to first child ( temp 2-component vector of int)
+0:55        vector swizzle ( temp 2-component vector of int)
+0:55          i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:55            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:55              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:55              'delta' ( temp uint)
+0:55            Constant:
+0:55              1 (const int)
+0:55          Sequence
+0:55            Constant:
+0:55              0 (const int)
+0:55            Constant:
+0:55              1 (const int)
+0:55        subgroupClusteredRotate ( global 2-component vector of int)
+0:55          vector swizzle ( temp 2-component vector of int)
+0:55            i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:55              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:55                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:55                Constant:
+0:55                  1 (const int)
+0:55              Constant:
+0:55                1 (const int)
+0:55            Sequence
+0:55              Constant:
+0:55                0 (const int)
+0:55              Constant:
+0:55                1 (const int)
+0:55          'delta' ( temp uint)
+0:55          Constant:
+0:55            1 (const uint)
+0:56      move second child to first child ( temp 3-component vector of int)
+0:56        vector swizzle ( temp 3-component vector of int)
+0:56          i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:56            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:56              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:56              'delta' ( temp uint)
+0:56            Constant:
+0:56              1 (const int)
+0:56          Sequence
+0:56            Constant:
+0:56              0 (const int)
+0:56            Constant:
+0:56              1 (const int)
+0:56            Constant:
+0:56              2 (const int)
+0:56        subgroupClusteredRotate ( global 3-component vector of int)
+0:56          vector swizzle ( temp 3-component vector of int)
+0:56            i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:56              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:56                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:56                Constant:
+0:56                  2 (const int)
+0:56              Constant:
+0:56                1 (const int)
+0:56            Sequence
+0:56              Constant:
+0:56                0 (const int)
+0:56              Constant:
+0:56                1 (const int)
+0:56              Constant:
+0:56                2 (const int)
+0:56          'delta' ( temp uint)
+0:56          Constant:
+0:56            1 (const uint)
+0:57      move second child to first child ( temp 4-component vector of int)
+0:57        i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:57          indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:57            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:57            'delta' ( temp uint)
+0:57          Constant:
+0:57            1 (const int)
+0:57        subgroupClusteredRotate ( global 4-component vector of int)
+0:57          i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:57            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:57              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:57              Constant:
+0:57                3 (const int)
+0:57            Constant:
+0:57              1 (const int)
+0:57          'delta' ( temp uint)
+0:57          Constant:
+0:57            1 (const uint)
+0:59      move second child to first child ( temp uint)
+0:59        direct index ( temp uint)
+0:59          u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
+0:59            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:59              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:59              'delta' ( temp uint)
+0:59            Constant:
+0:59              2 (const int)
+0:59          Constant:
+0:59            0 (const int)
+0:59        subgroupClusteredRotate ( global uint)
+0:59          direct index ( temp uint)
+0:59            u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
+0:59              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:59                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:59                Constant:
+0:59                  0 (const int)
+0:59              Constant:
+0:59                2 (const int)
+0:59            Constant:
+0:59              0 (const int)
+0:59          'delta' ( temp uint)
+0:59          Constant:
+0:59            1 (const uint)
+0:60      move second child to first child ( temp 2-component vector of uint)
+0:60        vector swizzle ( temp 2-component vector of uint)
+0:60          u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
+0:60            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:60              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:60              'delta' ( temp uint)
+0:60            Constant:
+0:60              2 (const int)
+0:60          Sequence
+0:60            Constant:
+0:60              0 (const int)
+0:60            Constant:
+0:60              1 (const int)
+0:60        subgroupClusteredRotate ( global 2-component vector of uint)
+0:60          vector swizzle ( temp 2-component vector of uint)
+0:60            u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
+0:60              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:60                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:60                Constant:
+0:60                  1 (const int)
+0:60              Constant:
+0:60                2 (const int)
+0:60            Sequence
+0:60              Constant:
+0:60                0 (const int)
+0:60              Constant:
+0:60                1 (const int)
+0:60          'delta' ( temp uint)
+0:60          Constant:
+0:60            1 (const uint)
+0:61      move second child to first child ( temp 3-component vector of uint)
+0:61        vector swizzle ( temp 3-component vector of uint)
+0:61          u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
+0:61            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:61              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:61              'delta' ( temp uint)
+0:61            Constant:
+0:61              2 (const int)
+0:61          Sequence
+0:61            Constant:
+0:61              0 (const int)
+0:61            Constant:
+0:61              1 (const int)
+0:61            Constant:
+0:61              2 (const int)
+0:61        subgroupClusteredRotate ( global 3-component vector of uint)
+0:61          vector swizzle ( temp 3-component vector of uint)
+0:61            u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
+0:61              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:61                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:61                Constant:
+0:61                  2 (const int)
+0:61              Constant:
+0:61                2 (const int)
+0:61            Sequence
+0:61              Constant:
+0:61                0 (const int)
+0:61              Constant:
+0:61                1 (const int)
+0:61              Constant:
+0:61                2 (const int)
+0:61          'delta' ( temp uint)
+0:61          Constant:
+0:61            1 (const uint)
+0:62      move second child to first child ( temp 4-component vector of uint)
+0:62        u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
+0:62          indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:62            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:62            'delta' ( temp uint)
+0:62          Constant:
+0:62            2 (const int)
+0:62        subgroupClusteredRotate ( global 4-component vector of uint)
+0:62          u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
+0:62            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:62              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:62              Constant:
+0:62                3 (const int)
+0:62            Constant:
+0:62              2 (const int)
+0:62          'delta' ( temp uint)
+0:62          Constant:
+0:62            1 (const uint)
+0:64      move second child to first child ( temp double)
+0:64        direct index ( temp double)
+0:64          d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
+0:64            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:64              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:64              'delta' ( temp uint)
+0:64            Constant:
+0:64              3 (const int)
+0:64          Constant:
+0:64            0 (const int)
+0:64        subgroupClusteredRotate ( global double)
+0:64          direct index ( temp double)
+0:64            d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
+0:64              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:64                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:64                Constant:
+0:64                  0 (const int)
+0:64              Constant:
+0:64                3 (const int)
+0:64            Constant:
+0:64              0 (const int)
+0:64          'delta' ( temp uint)
+0:64          Constant:
+0:64            1 (const uint)
+0:65      move second child to first child ( temp 2-component vector of double)
+0:65        vector swizzle ( temp 2-component vector of double)
+0:65          d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
+0:65            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:65              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:65              'delta' ( temp uint)
+0:65            Constant:
+0:65              3 (const int)
+0:65          Sequence
+0:65            Constant:
+0:65              0 (const int)
+0:65            Constant:
+0:65              1 (const int)
+0:65        subgroupClusteredRotate ( global 2-component vector of double)
+0:65          vector swizzle ( temp 2-component vector of double)
+0:65            d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
+0:65              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:65                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:65                Constant:
+0:65                  1 (const int)
+0:65              Constant:
+0:65                3 (const int)
+0:65            Sequence
+0:65              Constant:
+0:65                0 (const int)
+0:65              Constant:
+0:65                1 (const int)
+0:65          'delta' ( temp uint)
+0:65          Constant:
+0:65            1 (const uint)
+0:66      move second child to first child ( temp 3-component vector of double)
+0:66        vector swizzle ( temp 3-component vector of double)
+0:66          d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
+0:66            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:66              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:66              'delta' ( temp uint)
+0:66            Constant:
+0:66              3 (const int)
+0:66          Sequence
+0:66            Constant:
+0:66              0 (const int)
+0:66            Constant:
+0:66              1 (const int)
+0:66            Constant:
+0:66              2 (const int)
+0:66        subgroupClusteredRotate ( global 3-component vector of double)
+0:66          vector swizzle ( temp 3-component vector of double)
+0:66            d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
+0:66              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:66                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:66                Constant:
+0:66                  2 (const int)
+0:66              Constant:
+0:66                3 (const int)
+0:66            Sequence
+0:66              Constant:
+0:66                0 (const int)
+0:66              Constant:
+0:66                1 (const int)
+0:66              Constant:
+0:66                2 (const int)
+0:66          'delta' ( temp uint)
+0:66          Constant:
+0:66            1 (const uint)
+0:67      move second child to first child ( temp 4-component vector of double)
+0:67        d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
+0:67          indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:67            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:67            'delta' ( temp uint)
+0:67          Constant:
+0:67            3 (const int)
+0:67        subgroupClusteredRotate ( global 4-component vector of double)
+0:67          d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
+0:67            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:67              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:67              Constant:
+0:67                3 (const int)
+0:67            Constant:
+0:67              3 (const int)
+0:67          'delta' ( temp uint)
+0:67          Constant:
+0:67            1 (const uint)
+0:69      move second child to first child ( temp int)
+0:69        direct index ( temp int)
+0:69          i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:69            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:69              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:69              'delta' ( temp uint)
+0:69            Constant:
+0:69              1 (const int)
+0:69          Constant:
+0:69            0 (const int)
+0:69        Convert bool to int ( temp int)
+0:69          subgroupClusteredRotate ( global bool)
+0:69            Compare Less Than ( temp bool)
+0:69              direct index ( temp int)
+0:69                i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:69                  direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:69                    'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:69                    Constant:
+0:69                      0 (const int)
+0:69                  Constant:
+0:69                    1 (const int)
+0:69                Constant:
+0:69                  0 (const int)
+0:69              Constant:
+0:69                0 (const int)
+0:69            'delta' ( temp uint)
+0:69            Constant:
+0:69              1 (const uint)
+0:70      move second child to first child ( temp 2-component vector of int)
+0:70        vector swizzle ( temp 2-component vector of int)
+0:70          i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:70            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:70              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:70              'delta' ( temp uint)
+0:70            Constant:
+0:70              1 (const int)
+0:70          Sequence
+0:70            Constant:
+0:70              0 (const int)
+0:70            Constant:
+0:70              1 (const int)
+0:70        Convert bool to int ( temp 2-component vector of int)
+0:70          subgroupClusteredRotate ( global 2-component vector of bool)
+0:70            Compare Less Than ( global 2-component vector of bool)
+0:70              vector swizzle ( temp 2-component vector of int)
+0:70                i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:70                  direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:70                    'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:70                    Constant:
+0:70                      1 (const int)
+0:70                  Constant:
+0:70                    1 (const int)
+0:70                Sequence
+0:70                  Constant:
+0:70                    0 (const int)
+0:70                  Constant:
+0:70                    1 (const int)
+0:70              Constant:
+0:70                0 (const int)
+0:70                0 (const int)
+0:70            'delta' ( temp uint)
+0:70            Constant:
+0:70              1 (const uint)
+0:71      move second child to first child ( temp 3-component vector of int)
+0:71        vector swizzle ( temp 3-component vector of int)
+0:71          i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:71            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:71              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:71              'delta' ( temp uint)
+0:71            Constant:
+0:71              1 (const int)
+0:71          Sequence
+0:71            Constant:
+0:71              0 (const int)
+0:71            Constant:
+0:71              1 (const int)
+0:71            Constant:
+0:71              2 (const int)
+0:71        Convert bool to int ( temp 3-component vector of int)
+0:71          subgroupClusteredRotate ( global 3-component vector of bool)
+0:71            Compare Less Than ( global 3-component vector of bool)
+0:71              vector swizzle ( temp 3-component vector of int)
+0:71                i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:71                  direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:71                    'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:71                    Constant:
+0:71                      1 (const int)
+0:71                  Constant:
+0:71                    1 (const int)
+0:71                Sequence
+0:71                  Constant:
+0:71                    0 (const int)
+0:71                  Constant:
+0:71                    1 (const int)
+0:71                  Constant:
+0:71                    2 (const int)
+0:71              Constant:
+0:71                0 (const int)
+0:71                0 (const int)
+0:71                0 (const int)
+0:71            'delta' ( temp uint)
+0:71            Constant:
+0:71              1 (const uint)
+0:72      move second child to first child ( temp 4-component vector of int)
+0:72        i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:72          indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:72            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:72            'delta' ( temp uint)
+0:72          Constant:
+0:72            1 (const int)
+0:72        Convert bool to int ( temp 4-component vector of int)
+0:72          subgroupClusteredRotate ( global 4-component vector of bool)
+0:72            Compare Less Than ( global 4-component vector of bool)
+0:72              i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:72                direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:72                  'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:72                  Constant:
+0:72                    1 (const int)
+0:72                Constant:
+0:72                  1 (const int)
+0:72              Constant:
+0:72                0 (const int)
+0:72                0 (const int)
+0:72                0 (const int)
+0:72                0 (const int)
+0:72            'delta' ( temp uint)
+0:72            Constant:
+0:72              1 (const uint)
+0:?   Linker Objects
+0:?     'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
+0:?       8 (const uint)
+0:?       8 (const uint)
+0:?       1 (const uint)
+0:?     'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) readonly buffer uint delta})
+0:?     'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+
+
+Linked compute stage:
+
+
+Shader version: 450
+Requested GL_KHR_shader_subgroup_rotate
+local_size = (8, 8, 1)
+0:? Sequence
+0:20  Function Definition: main( ( global void)
+0:20    Function Parameters: 
+0:22    Sequence
+0:22      Sequence
+0:22        move second child to first child ( temp uint)
+0:22          'delta' ( temp uint)
+0:22          delta: direct index for structure (layout( column_major shared) readonly buffer uint)
+0:22            'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) readonly buffer uint delta})
+0:22            Constant:
+0:22              0 (const int)
+0:24      move second child to first child ( temp float)
+0:24        direct index ( temp float)
+0:24          f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
+0:24            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:24              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:24              'delta' ( temp uint)
+0:24            Constant:
+0:24              0 (const int)
+0:24          Constant:
+0:24            0 (const int)
+0:24        subgroupRotate ( global float)
+0:24          direct index ( temp float)
+0:24            f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
+0:24              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:24                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:24                Constant:
+0:24                  0 (const int)
+0:24              Constant:
+0:24                0 (const int)
+0:24            Constant:
+0:24              0 (const int)
+0:24          'delta' ( temp uint)
+0:25      move second child to first child ( temp 2-component vector of float)
+0:25        vector swizzle ( temp 2-component vector of float)
+0:25          f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
+0:25            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:25              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:25              'delta' ( temp uint)
+0:25            Constant:
+0:25              0 (const int)
+0:25          Sequence
+0:25            Constant:
+0:25              0 (const int)
+0:25            Constant:
+0:25              1 (const int)
+0:25        subgroupRotate ( global 2-component vector of float)
+0:25          vector swizzle ( temp 2-component vector of float)
+0:25            f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
+0:25              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:25                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:25                Constant:
+0:25                  1 (const int)
+0:25              Constant:
+0:25                0 (const int)
+0:25            Sequence
+0:25              Constant:
+0:25                0 (const int)
+0:25              Constant:
+0:25                1 (const int)
+0:25          'delta' ( temp uint)
+0:26      move second child to first child ( temp 3-component vector of float)
+0:26        vector swizzle ( temp 3-component vector of float)
+0:26          f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
+0:26            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:26              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:26              'delta' ( temp uint)
+0:26            Constant:
+0:26              0 (const int)
+0:26          Sequence
+0:26            Constant:
+0:26              0 (const int)
+0:26            Constant:
+0:26              1 (const int)
+0:26            Constant:
+0:26              2 (const int)
+0:26        subgroupRotate ( global 3-component vector of float)
+0:26          vector swizzle ( temp 3-component vector of float)
+0:26            f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
+0:26              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:26                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:26                Constant:
+0:26                  2 (const int)
+0:26              Constant:
+0:26                0 (const int)
+0:26            Sequence
+0:26              Constant:
+0:26                0 (const int)
+0:26              Constant:
+0:26                1 (const int)
+0:26              Constant:
+0:26                2 (const int)
+0:26          'delta' ( temp uint)
+0:27      move second child to first child ( temp 4-component vector of float)
+0:27        f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
+0:27          indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:27            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:27            'delta' ( temp uint)
+0:27          Constant:
+0:27            0 (const int)
+0:27        subgroupRotate ( global 4-component vector of float)
+0:27          f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
+0:27            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:27              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:27              Constant:
+0:27                3 (const int)
+0:27            Constant:
+0:27              0 (const int)
+0:27          'delta' ( temp uint)
+0:29      move second child to first child ( temp int)
+0:29        direct index ( temp int)
+0:29          i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:29            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:29              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:29              'delta' ( temp uint)
+0:29            Constant:
+0:29              1 (const int)
+0:29          Constant:
+0:29            0 (const int)
+0:29        subgroupRotate ( global int)
+0:29          direct index ( temp int)
+0:29            i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:29              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:29                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:29                Constant:
+0:29                  0 (const int)
+0:29              Constant:
+0:29                1 (const int)
+0:29            Constant:
+0:29              0 (const int)
+0:29          'delta' ( temp uint)
+0:30      move second child to first child ( temp 2-component vector of int)
+0:30        vector swizzle ( temp 2-component vector of int)
+0:30          i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:30            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:30              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:30              'delta' ( temp uint)
+0:30            Constant:
+0:30              1 (const int)
+0:30          Sequence
+0:30            Constant:
+0:30              0 (const int)
+0:30            Constant:
+0:30              1 (const int)
+0:30        subgroupRotate ( global 2-component vector of int)
+0:30          vector swizzle ( temp 2-component vector of int)
+0:30            i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:30              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:30                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:30                Constant:
+0:30                  1 (const int)
+0:30              Constant:
+0:30                1 (const int)
+0:30            Sequence
+0:30              Constant:
+0:30                0 (const int)
+0:30              Constant:
+0:30                1 (const int)
+0:30          'delta' ( temp uint)
+0:31      move second child to first child ( temp 3-component vector of int)
+0:31        vector swizzle ( temp 3-component vector of int)
+0:31          i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:31            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:31              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:31              'delta' ( temp uint)
+0:31            Constant:
+0:31              1 (const int)
+0:31          Sequence
+0:31            Constant:
+0:31              0 (const int)
+0:31            Constant:
+0:31              1 (const int)
+0:31            Constant:
+0:31              2 (const int)
+0:31        subgroupRotate ( global 3-component vector of int)
+0:31          vector swizzle ( temp 3-component vector of int)
+0:31            i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:31              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:31                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:31                Constant:
+0:31                  2 (const int)
+0:31              Constant:
+0:31                1 (const int)
+0:31            Sequence
+0:31              Constant:
+0:31                0 (const int)
+0:31              Constant:
+0:31                1 (const int)
+0:31              Constant:
+0:31                2 (const int)
+0:31          'delta' ( temp uint)
+0:32      move second child to first child ( temp 4-component vector of int)
+0:32        i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:32          indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:32            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:32            'delta' ( temp uint)
+0:32          Constant:
+0:32            1 (const int)
+0:32        subgroupRotate ( global 4-component vector of int)
+0:32          i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:32            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:32              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:32              Constant:
+0:32                3 (const int)
+0:32            Constant:
+0:32              1 (const int)
+0:32          'delta' ( temp uint)
+0:34      move second child to first child ( temp uint)
+0:34        direct index ( temp uint)
+0:34          u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
+0:34            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:34              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:34              'delta' ( temp uint)
+0:34            Constant:
+0:34              2 (const int)
+0:34          Constant:
+0:34            0 (const int)
+0:34        subgroupRotate ( global uint)
+0:34          direct index ( temp uint)
+0:34            u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
+0:34              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:34                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:34                Constant:
+0:34                  0 (const int)
+0:34              Constant:
+0:34                2 (const int)
+0:34            Constant:
+0:34              0 (const int)
+0:34          'delta' ( temp uint)
+0:35      move second child to first child ( temp 2-component vector of uint)
+0:35        vector swizzle ( temp 2-component vector of uint)
+0:35          u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
+0:35            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:35              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:35              'delta' ( temp uint)
+0:35            Constant:
+0:35              2 (const int)
+0:35          Sequence
+0:35            Constant:
+0:35              0 (const int)
+0:35            Constant:
+0:35              1 (const int)
+0:35        subgroupRotate ( global 2-component vector of uint)
+0:35          vector swizzle ( temp 2-component vector of uint)
+0:35            u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
+0:35              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:35                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:35                Constant:
+0:35                  1 (const int)
+0:35              Constant:
+0:35                2 (const int)
+0:35            Sequence
+0:35              Constant:
+0:35                0 (const int)
+0:35              Constant:
+0:35                1 (const int)
+0:35          'delta' ( temp uint)
+0:36      move second child to first child ( temp 3-component vector of uint)
+0:36        vector swizzle ( temp 3-component vector of uint)
+0:36          u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
+0:36            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:36              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:36              'delta' ( temp uint)
+0:36            Constant:
+0:36              2 (const int)
+0:36          Sequence
+0:36            Constant:
+0:36              0 (const int)
+0:36            Constant:
+0:36              1 (const int)
+0:36            Constant:
+0:36              2 (const int)
+0:36        subgroupRotate ( global 3-component vector of uint)
+0:36          vector swizzle ( temp 3-component vector of uint)
+0:36            u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
+0:36              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:36                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:36                Constant:
+0:36                  2 (const int)
+0:36              Constant:
+0:36                2 (const int)
+0:36            Sequence
+0:36              Constant:
+0:36                0 (const int)
+0:36              Constant:
+0:36                1 (const int)
+0:36              Constant:
+0:36                2 (const int)
+0:36          'delta' ( temp uint)
+0:37      move second child to first child ( temp 4-component vector of uint)
+0:37        u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
+0:37          indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:37            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:37            'delta' ( temp uint)
+0:37          Constant:
+0:37            2 (const int)
+0:37        subgroupRotate ( global 4-component vector of uint)
+0:37          u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
+0:37            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:37              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:37              Constant:
+0:37                3 (const int)
+0:37            Constant:
+0:37              2 (const int)
+0:37          'delta' ( temp uint)
+0:39      move second child to first child ( temp double)
+0:39        direct index ( temp double)
+0:39          d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
+0:39            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:39              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:39              'delta' ( temp uint)
+0:39            Constant:
+0:39              3 (const int)
+0:39          Constant:
+0:39            0 (const int)
+0:39        subgroupRotate ( global double)
+0:39          direct index ( temp double)
+0:39            d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
+0:39              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:39                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:39                Constant:
+0:39                  0 (const int)
+0:39              Constant:
+0:39                3 (const int)
+0:39            Constant:
+0:39              0 (const int)
+0:39          'delta' ( temp uint)
+0:40      move second child to first child ( temp 2-component vector of double)
+0:40        vector swizzle ( temp 2-component vector of double)
+0:40          d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
+0:40            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:40              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:40              'delta' ( temp uint)
+0:40            Constant:
+0:40              3 (const int)
+0:40          Sequence
+0:40            Constant:
+0:40              0 (const int)
+0:40            Constant:
+0:40              1 (const int)
+0:40        subgroupRotate ( global 2-component vector of double)
+0:40          vector swizzle ( temp 2-component vector of double)
+0:40            d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
+0:40              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:40                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:40                Constant:
+0:40                  1 (const int)
+0:40              Constant:
+0:40                3 (const int)
+0:40            Sequence
+0:40              Constant:
+0:40                0 (const int)
+0:40              Constant:
+0:40                1 (const int)
+0:40          'delta' ( temp uint)
+0:41      move second child to first child ( temp 3-component vector of double)
+0:41        vector swizzle ( temp 3-component vector of double)
+0:41          d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
+0:41            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:41              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:41              'delta' ( temp uint)
+0:41            Constant:
+0:41              3 (const int)
+0:41          Sequence
+0:41            Constant:
+0:41              0 (const int)
+0:41            Constant:
+0:41              1 (const int)
+0:41            Constant:
+0:41              2 (const int)
+0:41        subgroupRotate ( global 3-component vector of double)
+0:41          vector swizzle ( temp 3-component vector of double)
+0:41            d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
+0:41              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:41                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:41                Constant:
+0:41                  2 (const int)
+0:41              Constant:
+0:41                3 (const int)
+0:41            Sequence
+0:41              Constant:
+0:41                0 (const int)
+0:41              Constant:
+0:41                1 (const int)
+0:41              Constant:
+0:41                2 (const int)
+0:41          'delta' ( temp uint)
+0:42      move second child to first child ( temp 4-component vector of double)
+0:42        d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
+0:42          indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:42            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:42            'delta' ( temp uint)
+0:42          Constant:
+0:42            3 (const int)
+0:42        subgroupRotate ( global 4-component vector of double)
+0:42          d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
+0:42            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:42              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:42              Constant:
+0:42                3 (const int)
+0:42            Constant:
+0:42              3 (const int)
+0:42          'delta' ( temp uint)
+0:44      move second child to first child ( temp int)
+0:44        direct index ( temp int)
+0:44          i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:44            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:44              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:44              'delta' ( temp uint)
+0:44            Constant:
+0:44              1 (const int)
+0:44          Constant:
+0:44            0 (const int)
+0:44        Convert bool to int ( temp int)
+0:44          subgroupRotate ( global bool)
+0:44            Compare Less Than ( temp bool)
+0:44              direct index ( temp int)
+0:44                i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:44                  direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:44                    'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:44                    Constant:
+0:44                      0 (const int)
+0:44                  Constant:
+0:44                    1 (const int)
+0:44                Constant:
+0:44                  0 (const int)
+0:44              Constant:
+0:44                0 (const int)
+0:44            'delta' ( temp uint)
+0:45      move second child to first child ( temp 2-component vector of int)
+0:45        vector swizzle ( temp 2-component vector of int)
+0:45          i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:45            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:45              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:45              'delta' ( temp uint)
+0:45            Constant:
+0:45              1 (const int)
+0:45          Sequence
+0:45            Constant:
+0:45              0 (const int)
+0:45            Constant:
+0:45              1 (const int)
+0:45        Convert bool to int ( temp 2-component vector of int)
+0:45          subgroupRotate ( global 2-component vector of bool)
+0:45            Compare Less Than ( global 2-component vector of bool)
+0:45              vector swizzle ( temp 2-component vector of int)
+0:45                i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:45                  direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:45                    'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:45                    Constant:
+0:45                      1 (const int)
+0:45                  Constant:
+0:45                    1 (const int)
+0:45                Sequence
+0:45                  Constant:
+0:45                    0 (const int)
+0:45                  Constant:
+0:45                    1 (const int)
+0:45              Constant:
+0:45                0 (const int)
+0:45                0 (const int)
+0:45            'delta' ( temp uint)
+0:46      move second child to first child ( temp 3-component vector of int)
+0:46        vector swizzle ( temp 3-component vector of int)
+0:46          i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:46            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:46              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:46              'delta' ( temp uint)
+0:46            Constant:
+0:46              1 (const int)
+0:46          Sequence
+0:46            Constant:
+0:46              0 (const int)
+0:46            Constant:
+0:46              1 (const int)
+0:46            Constant:
+0:46              2 (const int)
+0:46        Convert bool to int ( temp 3-component vector of int)
+0:46          subgroupRotate ( global 3-component vector of bool)
+0:46            Compare Less Than ( global 3-component vector of bool)
+0:46              vector swizzle ( temp 3-component vector of int)
+0:46                i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:46                  direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:46                    'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:46                    Constant:
+0:46                      1 (const int)
+0:46                  Constant:
+0:46                    1 (const int)
+0:46                Sequence
+0:46                  Constant:
+0:46                    0 (const int)
+0:46                  Constant:
+0:46                    1 (const int)
+0:46                  Constant:
+0:46                    2 (const int)
+0:46              Constant:
+0:46                0 (const int)
+0:46                0 (const int)
+0:46                0 (const int)
+0:46            'delta' ( temp uint)
+0:47      move second child to first child ( temp 4-component vector of int)
+0:47        i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:47          indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:47            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:47            'delta' ( temp uint)
+0:47          Constant:
+0:47            1 (const int)
+0:47        Convert bool to int ( temp 4-component vector of int)
+0:47          subgroupRotate ( global 4-component vector of bool)
+0:47            Compare Less Than ( global 4-component vector of bool)
+0:47              i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:47                direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:47                  'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:47                  Constant:
+0:47                    1 (const int)
+0:47                Constant:
+0:47                  1 (const int)
+0:47              Constant:
+0:47                0 (const int)
+0:47                0 (const int)
+0:47                0 (const int)
+0:47                0 (const int)
+0:47            'delta' ( temp uint)
+0:49      move second child to first child ( temp float)
+0:49        direct index ( temp float)
+0:49          f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
+0:49            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:49              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:49              'delta' ( temp uint)
+0:49            Constant:
+0:49              0 (const int)
+0:49          Constant:
+0:49            0 (const int)
+0:49        subgroupClusteredRotate ( global float)
+0:49          direct index ( temp float)
+0:49            f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
+0:49              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:49                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:49                Constant:
+0:49                  0 (const int)
+0:49              Constant:
+0:49                0 (const int)
+0:49            Constant:
+0:49              0 (const int)
+0:49          'delta' ( temp uint)
+0:49          Constant:
+0:49            1 (const uint)
+0:50      move second child to first child ( temp 2-component vector of float)
+0:50        vector swizzle ( temp 2-component vector of float)
+0:50          f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
+0:50            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:50              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:50              'delta' ( temp uint)
+0:50            Constant:
+0:50              0 (const int)
+0:50          Sequence
+0:50            Constant:
+0:50              0 (const int)
+0:50            Constant:
+0:50              1 (const int)
+0:50        subgroupClusteredRotate ( global 2-component vector of float)
+0:50          vector swizzle ( temp 2-component vector of float)
+0:50            f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
+0:50              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:50                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:50                Constant:
+0:50                  1 (const int)
+0:50              Constant:
+0:50                0 (const int)
+0:50            Sequence
+0:50              Constant:
+0:50                0 (const int)
+0:50              Constant:
+0:50                1 (const int)
+0:50          'delta' ( temp uint)
+0:50          Constant:
+0:50            1 (const uint)
+0:51      move second child to first child ( temp 3-component vector of float)
+0:51        vector swizzle ( temp 3-component vector of float)
+0:51          f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
+0:51            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:51              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:51              'delta' ( temp uint)
+0:51            Constant:
+0:51              0 (const int)
+0:51          Sequence
+0:51            Constant:
+0:51              0 (const int)
+0:51            Constant:
+0:51              1 (const int)
+0:51            Constant:
+0:51              2 (const int)
+0:51        subgroupClusteredRotate ( global 3-component vector of float)
+0:51          vector swizzle ( temp 3-component vector of float)
+0:51            f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
+0:51              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:51                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:51                Constant:
+0:51                  2 (const int)
+0:51              Constant:
+0:51                0 (const int)
+0:51            Sequence
+0:51              Constant:
+0:51                0 (const int)
+0:51              Constant:
+0:51                1 (const int)
+0:51              Constant:
+0:51                2 (const int)
+0:51          'delta' ( temp uint)
+0:51          Constant:
+0:51            1 (const uint)
+0:52      move second child to first child ( temp 4-component vector of float)
+0:52        f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
+0:52          indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:52            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:52            'delta' ( temp uint)
+0:52          Constant:
+0:52            0 (const int)
+0:52        subgroupClusteredRotate ( global 4-component vector of float)
+0:52          f4: direct index for structure (layout( column_major shared) buffer 4-component vector of float)
+0:52            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:52              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:52              Constant:
+0:52                3 (const int)
+0:52            Constant:
+0:52              0 (const int)
+0:52          'delta' ( temp uint)
+0:52          Constant:
+0:52            1 (const uint)
+0:54      move second child to first child ( temp int)
+0:54        direct index ( temp int)
+0:54          i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:54            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:54              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:54              'delta' ( temp uint)
+0:54            Constant:
+0:54              1 (const int)
+0:54          Constant:
+0:54            0 (const int)
+0:54        subgroupClusteredRotate ( global int)
+0:54          direct index ( temp int)
+0:54            i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:54              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:54                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:54                Constant:
+0:54                  0 (const int)
+0:54              Constant:
+0:54                1 (const int)
+0:54            Constant:
+0:54              0 (const int)
+0:54          'delta' ( temp uint)
+0:54          Constant:
+0:54            1 (const uint)
+0:55      move second child to first child ( temp 2-component vector of int)
+0:55        vector swizzle ( temp 2-component vector of int)
+0:55          i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:55            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:55              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:55              'delta' ( temp uint)
+0:55            Constant:
+0:55              1 (const int)
+0:55          Sequence
+0:55            Constant:
+0:55              0 (const int)
+0:55            Constant:
+0:55              1 (const int)
+0:55        subgroupClusteredRotate ( global 2-component vector of int)
+0:55          vector swizzle ( temp 2-component vector of int)
+0:55            i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:55              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:55                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:55                Constant:
+0:55                  1 (const int)
+0:55              Constant:
+0:55                1 (const int)
+0:55            Sequence
+0:55              Constant:
+0:55                0 (const int)
+0:55              Constant:
+0:55                1 (const int)
+0:55          'delta' ( temp uint)
+0:55          Constant:
+0:55            1 (const uint)
+0:56      move second child to first child ( temp 3-component vector of int)
+0:56        vector swizzle ( temp 3-component vector of int)
+0:56          i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:56            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:56              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:56              'delta' ( temp uint)
+0:56            Constant:
+0:56              1 (const int)
+0:56          Sequence
+0:56            Constant:
+0:56              0 (const int)
+0:56            Constant:
+0:56              1 (const int)
+0:56            Constant:
+0:56              2 (const int)
+0:56        subgroupClusteredRotate ( global 3-component vector of int)
+0:56          vector swizzle ( temp 3-component vector of int)
+0:56            i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:56              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:56                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:56                Constant:
+0:56                  2 (const int)
+0:56              Constant:
+0:56                1 (const int)
+0:56            Sequence
+0:56              Constant:
+0:56                0 (const int)
+0:56              Constant:
+0:56                1 (const int)
+0:56              Constant:
+0:56                2 (const int)
+0:56          'delta' ( temp uint)
+0:56          Constant:
+0:56            1 (const uint)
+0:57      move second child to first child ( temp 4-component vector of int)
+0:57        i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:57          indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:57            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:57            'delta' ( temp uint)
+0:57          Constant:
+0:57            1 (const int)
+0:57        subgroupClusteredRotate ( global 4-component vector of int)
+0:57          i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:57            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:57              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:57              Constant:
+0:57                3 (const int)
+0:57            Constant:
+0:57              1 (const int)
+0:57          'delta' ( temp uint)
+0:57          Constant:
+0:57            1 (const uint)
+0:59      move second child to first child ( temp uint)
+0:59        direct index ( temp uint)
+0:59          u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
+0:59            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:59              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:59              'delta' ( temp uint)
+0:59            Constant:
+0:59              2 (const int)
+0:59          Constant:
+0:59            0 (const int)
+0:59        subgroupClusteredRotate ( global uint)
+0:59          direct index ( temp uint)
+0:59            u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
+0:59              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:59                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:59                Constant:
+0:59                  0 (const int)
+0:59              Constant:
+0:59                2 (const int)
+0:59            Constant:
+0:59              0 (const int)
+0:59          'delta' ( temp uint)
+0:59          Constant:
+0:59            1 (const uint)
+0:60      move second child to first child ( temp 2-component vector of uint)
+0:60        vector swizzle ( temp 2-component vector of uint)
+0:60          u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
+0:60            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:60              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:60              'delta' ( temp uint)
+0:60            Constant:
+0:60              2 (const int)
+0:60          Sequence
+0:60            Constant:
+0:60              0 (const int)
+0:60            Constant:
+0:60              1 (const int)
+0:60        subgroupClusteredRotate ( global 2-component vector of uint)
+0:60          vector swizzle ( temp 2-component vector of uint)
+0:60            u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
+0:60              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:60                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:60                Constant:
+0:60                  1 (const int)
+0:60              Constant:
+0:60                2 (const int)
+0:60            Sequence
+0:60              Constant:
+0:60                0 (const int)
+0:60              Constant:
+0:60                1 (const int)
+0:60          'delta' ( temp uint)
+0:60          Constant:
+0:60            1 (const uint)
+0:61      move second child to first child ( temp 3-component vector of uint)
+0:61        vector swizzle ( temp 3-component vector of uint)
+0:61          u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
+0:61            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:61              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:61              'delta' ( temp uint)
+0:61            Constant:
+0:61              2 (const int)
+0:61          Sequence
+0:61            Constant:
+0:61              0 (const int)
+0:61            Constant:
+0:61              1 (const int)
+0:61            Constant:
+0:61              2 (const int)
+0:61        subgroupClusteredRotate ( global 3-component vector of uint)
+0:61          vector swizzle ( temp 3-component vector of uint)
+0:61            u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
+0:61              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:61                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:61                Constant:
+0:61                  2 (const int)
+0:61              Constant:
+0:61                2 (const int)
+0:61            Sequence
+0:61              Constant:
+0:61                0 (const int)
+0:61              Constant:
+0:61                1 (const int)
+0:61              Constant:
+0:61                2 (const int)
+0:61          'delta' ( temp uint)
+0:61          Constant:
+0:61            1 (const uint)
+0:62      move second child to first child ( temp 4-component vector of uint)
+0:62        u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
+0:62          indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:62            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:62            'delta' ( temp uint)
+0:62          Constant:
+0:62            2 (const int)
+0:62        subgroupClusteredRotate ( global 4-component vector of uint)
+0:62          u4: direct index for structure (layout( column_major shared) buffer 4-component vector of uint)
+0:62            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:62              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:62              Constant:
+0:62                3 (const int)
+0:62            Constant:
+0:62              2 (const int)
+0:62          'delta' ( temp uint)
+0:62          Constant:
+0:62            1 (const uint)
+0:64      move second child to first child ( temp double)
+0:64        direct index ( temp double)
+0:64          d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
+0:64            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:64              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:64              'delta' ( temp uint)
+0:64            Constant:
+0:64              3 (const int)
+0:64          Constant:
+0:64            0 (const int)
+0:64        subgroupClusteredRotate ( global double)
+0:64          direct index ( temp double)
+0:64            d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
+0:64              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:64                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:64                Constant:
+0:64                  0 (const int)
+0:64              Constant:
+0:64                3 (const int)
+0:64            Constant:
+0:64              0 (const int)
+0:64          'delta' ( temp uint)
+0:64          Constant:
+0:64            1 (const uint)
+0:65      move second child to first child ( temp 2-component vector of double)
+0:65        vector swizzle ( temp 2-component vector of double)
+0:65          d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
+0:65            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:65              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:65              'delta' ( temp uint)
+0:65            Constant:
+0:65              3 (const int)
+0:65          Sequence
+0:65            Constant:
+0:65              0 (const int)
+0:65            Constant:
+0:65              1 (const int)
+0:65        subgroupClusteredRotate ( global 2-component vector of double)
+0:65          vector swizzle ( temp 2-component vector of double)
+0:65            d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
+0:65              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:65                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:65                Constant:
+0:65                  1 (const int)
+0:65              Constant:
+0:65                3 (const int)
+0:65            Sequence
+0:65              Constant:
+0:65                0 (const int)
+0:65              Constant:
+0:65                1 (const int)
+0:65          'delta' ( temp uint)
+0:65          Constant:
+0:65            1 (const uint)
+0:66      move second child to first child ( temp 3-component vector of double)
+0:66        vector swizzle ( temp 3-component vector of double)
+0:66          d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
+0:66            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:66              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:66              'delta' ( temp uint)
+0:66            Constant:
+0:66              3 (const int)
+0:66          Sequence
+0:66            Constant:
+0:66              0 (const int)
+0:66            Constant:
+0:66              1 (const int)
+0:66            Constant:
+0:66              2 (const int)
+0:66        subgroupClusteredRotate ( global 3-component vector of double)
+0:66          vector swizzle ( temp 3-component vector of double)
+0:66            d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
+0:66              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:66                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:66                Constant:
+0:66                  2 (const int)
+0:66              Constant:
+0:66                3 (const int)
+0:66            Sequence
+0:66              Constant:
+0:66                0 (const int)
+0:66              Constant:
+0:66                1 (const int)
+0:66              Constant:
+0:66                2 (const int)
+0:66          'delta' ( temp uint)
+0:66          Constant:
+0:66            1 (const uint)
+0:67      move second child to first child ( temp 4-component vector of double)
+0:67        d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
+0:67          indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:67            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:67            'delta' ( temp uint)
+0:67          Constant:
+0:67            3 (const int)
+0:67        subgroupClusteredRotate ( global 4-component vector of double)
+0:67          d4: direct index for structure (layout( column_major shared) buffer 4-component vector of double)
+0:67            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:67              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:67              Constant:
+0:67                3 (const int)
+0:67            Constant:
+0:67              3 (const int)
+0:67          'delta' ( temp uint)
+0:67          Constant:
+0:67            1 (const uint)
+0:69      move second child to first child ( temp int)
+0:69        direct index ( temp int)
+0:69          i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:69            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:69              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:69              'delta' ( temp uint)
+0:69            Constant:
+0:69              1 (const int)
+0:69          Constant:
+0:69            0 (const int)
+0:69        Convert bool to int ( temp int)
+0:69          subgroupClusteredRotate ( global bool)
+0:69            Compare Less Than ( temp bool)
+0:69              direct index ( temp int)
+0:69                i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:69                  direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:69                    'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:69                    Constant:
+0:69                      0 (const int)
+0:69                  Constant:
+0:69                    1 (const int)
+0:69                Constant:
+0:69                  0 (const int)
+0:69              Constant:
+0:69                0 (const int)
+0:69            'delta' ( temp uint)
+0:69            Constant:
+0:69              1 (const uint)
+0:70      move second child to first child ( temp 2-component vector of int)
+0:70        vector swizzle ( temp 2-component vector of int)
+0:70          i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:70            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:70              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:70              'delta' ( temp uint)
+0:70            Constant:
+0:70              1 (const int)
+0:70          Sequence
+0:70            Constant:
+0:70              0 (const int)
+0:70            Constant:
+0:70              1 (const int)
+0:70        Convert bool to int ( temp 2-component vector of int)
+0:70          subgroupClusteredRotate ( global 2-component vector of bool)
+0:70            Compare Less Than ( global 2-component vector of bool)
+0:70              vector swizzle ( temp 2-component vector of int)
+0:70                i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:70                  direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:70                    'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:70                    Constant:
+0:70                      1 (const int)
+0:70                  Constant:
+0:70                    1 (const int)
+0:70                Sequence
+0:70                  Constant:
+0:70                    0 (const int)
+0:70                  Constant:
+0:70                    1 (const int)
+0:70              Constant:
+0:70                0 (const int)
+0:70                0 (const int)
+0:70            'delta' ( temp uint)
+0:70            Constant:
+0:70              1 (const uint)
+0:71      move second child to first child ( temp 3-component vector of int)
+0:71        vector swizzle ( temp 3-component vector of int)
+0:71          i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:71            indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:71              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:71              'delta' ( temp uint)
+0:71            Constant:
+0:71              1 (const int)
+0:71          Sequence
+0:71            Constant:
+0:71              0 (const int)
+0:71            Constant:
+0:71              1 (const int)
+0:71            Constant:
+0:71              2 (const int)
+0:71        Convert bool to int ( temp 3-component vector of int)
+0:71          subgroupClusteredRotate ( global 3-component vector of bool)
+0:71            Compare Less Than ( global 3-component vector of bool)
+0:71              vector swizzle ( temp 3-component vector of int)
+0:71                i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:71                  direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:71                    'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:71                    Constant:
+0:71                      1 (const int)
+0:71                  Constant:
+0:71                    1 (const int)
+0:71                Sequence
+0:71                  Constant:
+0:71                    0 (const int)
+0:71                  Constant:
+0:71                    1 (const int)
+0:71                  Constant:
+0:71                    2 (const int)
+0:71              Constant:
+0:71                0 (const int)
+0:71                0 (const int)
+0:71                0 (const int)
+0:71            'delta' ( temp uint)
+0:71            Constant:
+0:71              1 (const uint)
+0:72      move second child to first child ( temp 4-component vector of int)
+0:72        i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:72          indirect index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:72            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:72            'delta' ( temp uint)
+0:72          Constant:
+0:72            1 (const int)
+0:72        Convert bool to int ( temp 4-component vector of int)
+0:72          subgroupClusteredRotate ( global 4-component vector of bool)
+0:72            Compare Less Than ( global 4-component vector of bool)
+0:72              i4: direct index for structure (layout( column_major shared) buffer 4-component vector of int)
+0:72                direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:72                  'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+0:72                  Constant:
+0:72                    1 (const int)
+0:72                Constant:
+0:72                  1 (const int)
+0:72              Constant:
+0:72                0 (const int)
+0:72                0 (const int)
+0:72                0 (const int)
+0:72                0 (const int)
+0:72            'delta' ( temp uint)
+0:72            Constant:
+0:72              1 (const uint)
+0:?   Linker Objects
+0:?     'gl_WorkGroupSize' ( const 3-component vector of uint WorkGroupSize)
+0:?       8 (const uint)
+0:?       8 (const uint)
+0:?       1 (const uint)
+0:?     'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) readonly buffer uint delta})
+0:?     'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer 4-component vector of float f4, layout( column_major shared) buffer 4-component vector of int i4, layout( column_major shared) buffer 4-component vector of uint u4, layout( column_major shared) buffer 4-component vector of double d4})
+
diff --git a/Test/baseResults/glsl.es320.extTextureShadowLod.frag.out b/Test/baseResults/glsl.es320.extTextureShadowLod.frag.out
new file mode 100644
index 0000000..ae385ae
--- /dev/null
+++ b/Test/baseResults/glsl.es320.extTextureShadowLod.frag.out
@@ -0,0 +1,149 @@
+glsl.es320.extTextureShadowLod.frag
+Shader version: 320
+Requested GL_EXT_texture_shadow_lod
+0:? Sequence
+0:12  Function Definition: main( ( global void)
+0:12    Function Parameters: 
+0:14    Sequence
+0:14      move second child to first child ( temp lowp float)
+0:14        'c' ( out lowp float)
+0:14        texture ( global lowp float)
+0:14          's2da' ( uniform lowp sampler2DArrayShadow)
+0:14          'tc' ( smooth in lowp 4-component vector of float)
+0:14          Constant:
+0:14            0.000000
+0:15      move second child to first child ( temp lowp float)
+0:15        'c' ( out lowp float)
+0:15        texture ( global lowp float)
+0:15          'sca' ( uniform lowp samplerCubeArrayShadow)
+0:15          'tc' ( smooth in lowp 4-component vector of float)
+0:15          Constant:
+0:15            0.000000
+0:15          Constant:
+0:15            0.000000
+0:16      move second child to first child ( temp lowp float)
+0:16        'c' ( out lowp float)
+0:16        textureOffset ( global lowp float)
+0:16          's2da' ( uniform lowp sampler2DArrayShadow)
+0:16          'tc' ( smooth in lowp 4-component vector of float)
+0:16          Constant:
+0:16            0 (const int)
+0:16            0 (const int)
+0:16          Constant:
+0:16            0.000000
+0:17      move second child to first child ( temp lowp float)
+0:17        'c' ( out lowp float)
+0:17        textureLod ( global lowp float)
+0:17          's2da' ( uniform lowp sampler2DArrayShadow)
+0:17          'tc' ( smooth in lowp 4-component vector of float)
+0:17          Constant:
+0:17            0.000000
+0:18      move second child to first child ( temp lowp float)
+0:18        'c' ( out lowp float)
+0:18        textureLod ( global lowp float)
+0:18          'sc' ( uniform lowp samplerCubeShadow)
+0:18          'tc' ( smooth in lowp 4-component vector of float)
+0:18          Constant:
+0:18            0.000000
+0:19      move second child to first child ( temp lowp float)
+0:19        'c' ( out lowp float)
+0:19        textureLod ( global lowp float)
+0:19          'sca' ( uniform lowp samplerCubeArrayShadow)
+0:19          'tc' ( smooth in lowp 4-component vector of float)
+0:19          Constant:
+0:19            0.000000
+0:19          Constant:
+0:19            0.000000
+0:20      move second child to first child ( temp lowp float)
+0:20        'c' ( out lowp float)
+0:20        textureLodOffset ( global lowp float)
+0:20          's2da' ( uniform lowp sampler2DArrayShadow)
+0:20          'tc' ( smooth in lowp 4-component vector of float)
+0:20          Constant:
+0:20            0.000000
+0:20          Constant:
+0:20            0 (const int)
+0:20            0 (const int)
+0:?   Linker Objects
+0:?     's2da' ( uniform lowp sampler2DArrayShadow)
+0:?     'sca' ( uniform lowp samplerCubeArrayShadow)
+0:?     'sc' ( uniform lowp samplerCubeShadow)
+0:?     'tc' ( smooth in lowp 4-component vector of float)
+0:?     'c' ( out lowp float)
+
+
+Linked fragment stage:
+
+
+Shader version: 320
+Requested GL_EXT_texture_shadow_lod
+0:? Sequence
+0:12  Function Definition: main( ( global void)
+0:12    Function Parameters: 
+0:14    Sequence
+0:14      move second child to first child ( temp lowp float)
+0:14        'c' ( out lowp float)
+0:14        texture ( global lowp float)
+0:14          's2da' ( uniform lowp sampler2DArrayShadow)
+0:14          'tc' ( smooth in lowp 4-component vector of float)
+0:14          Constant:
+0:14            0.000000
+0:15      move second child to first child ( temp lowp float)
+0:15        'c' ( out lowp float)
+0:15        texture ( global lowp float)
+0:15          'sca' ( uniform lowp samplerCubeArrayShadow)
+0:15          'tc' ( smooth in lowp 4-component vector of float)
+0:15          Constant:
+0:15            0.000000
+0:15          Constant:
+0:15            0.000000
+0:16      move second child to first child ( temp lowp float)
+0:16        'c' ( out lowp float)
+0:16        textureOffset ( global lowp float)
+0:16          's2da' ( uniform lowp sampler2DArrayShadow)
+0:16          'tc' ( smooth in lowp 4-component vector of float)
+0:16          Constant:
+0:16            0 (const int)
+0:16            0 (const int)
+0:16          Constant:
+0:16            0.000000
+0:17      move second child to first child ( temp lowp float)
+0:17        'c' ( out lowp float)
+0:17        textureLod ( global lowp float)
+0:17          's2da' ( uniform lowp sampler2DArrayShadow)
+0:17          'tc' ( smooth in lowp 4-component vector of float)
+0:17          Constant:
+0:17            0.000000
+0:18      move second child to first child ( temp lowp float)
+0:18        'c' ( out lowp float)
+0:18        textureLod ( global lowp float)
+0:18          'sc' ( uniform lowp samplerCubeShadow)
+0:18          'tc' ( smooth in lowp 4-component vector of float)
+0:18          Constant:
+0:18            0.000000
+0:19      move second child to first child ( temp lowp float)
+0:19        'c' ( out lowp float)
+0:19        textureLod ( global lowp float)
+0:19          'sca' ( uniform lowp samplerCubeArrayShadow)
+0:19          'tc' ( smooth in lowp 4-component vector of float)
+0:19          Constant:
+0:19            0.000000
+0:19          Constant:
+0:19            0.000000
+0:20      move second child to first child ( temp lowp float)
+0:20        'c' ( out lowp float)
+0:20        textureLodOffset ( global lowp float)
+0:20          's2da' ( uniform lowp sampler2DArrayShadow)
+0:20          'tc' ( smooth in lowp 4-component vector of float)
+0:20          Constant:
+0:20            0.000000
+0:20          Constant:
+0:20            0 (const int)
+0:20            0 (const int)
+0:?   Linker Objects
+0:?     's2da' ( uniform lowp sampler2DArrayShadow)
+0:?     'sca' ( uniform lowp samplerCubeArrayShadow)
+0:?     'sc' ( uniform lowp samplerCubeShadow)
+0:?     'tc' ( smooth in lowp 4-component vector of float)
+0:?     'c' ( out lowp float)
+
diff --git a/Test/baseResults/glsl.es320.subgroupRotate.comp.out b/Test/baseResults/glsl.es320.subgroupRotate.comp.out
new file mode 100644
index 0000000..8aaa371
--- /dev/null
+++ b/Test/baseResults/glsl.es320.subgroupRotate.comp.out
@@ -0,0 +1,1833 @@
+glsl.es320.subgroupRotate.comp
+Shader version: 320
+Requested GL_KHR_shader_subgroup_rotate
+local_size = (8, 8, 1)
+0:? Sequence
+0:19  Function Definition: main( ( global void)
+0:19    Function Parameters: 
+0:21    Sequence
+0:21      Sequence
+0:21        move second child to first child ( temp highp uint)
+0:21          'delta' ( temp highp uint)
+0:21          delta: direct index for structure (layout( column_major shared) readonly buffer highp uint)
+0:21            'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) readonly buffer highp uint delta})
+0:21            Constant:
+0:21              0 (const int)
+0:23      move second child to first child ( temp highp float)
+0:23        direct index ( temp highp float)
+0:23          f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
+0:23            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:23              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:23              Constant:
+0:23                0 (const int)
+0:23            Constant:
+0:23              0 (const int)
+0:23          Constant:
+0:23            0 (const int)
+0:23        subgroupRotate ( global highp float)
+0:23          direct index ( temp highp float)
+0:23            f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
+0:23              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:23                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:23                Constant:
+0:23                  0 (const int)
+0:23              Constant:
+0:23                0 (const int)
+0:23            Constant:
+0:23              0 (const int)
+0:23          'delta' ( temp highp uint)
+0:24      move second child to first child ( temp highp 2-component vector of float)
+0:24        vector swizzle ( temp highp 2-component vector of float)
+0:24          f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
+0:24            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:24              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:24              Constant:
+0:24                0 (const int)
+0:24            Constant:
+0:24              0 (const int)
+0:24          Sequence
+0:24            Constant:
+0:24              0 (const int)
+0:24            Constant:
+0:24              1 (const int)
+0:24        subgroupRotate ( global highp 2-component vector of float)
+0:24          vector swizzle ( temp highp 2-component vector of float)
+0:24            f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
+0:24              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:24                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:24                Constant:
+0:24                  1 (const int)
+0:24              Constant:
+0:24                0 (const int)
+0:24            Sequence
+0:24              Constant:
+0:24                0 (const int)
+0:24              Constant:
+0:24                1 (const int)
+0:24          'delta' ( temp highp uint)
+0:25      move second child to first child ( temp highp 3-component vector of float)
+0:25        vector swizzle ( temp highp 3-component vector of float)
+0:25          f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
+0:25            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:25              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:25              Constant:
+0:25                0 (const int)
+0:25            Constant:
+0:25              0 (const int)
+0:25          Sequence
+0:25            Constant:
+0:25              0 (const int)
+0:25            Constant:
+0:25              1 (const int)
+0:25            Constant:
+0:25              2 (const int)
+0:25        subgroupRotate ( global highp 3-component vector of float)
+0:25          vector swizzle ( temp highp 3-component vector of float)
+0:25            f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
+0:25              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:25                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:25                Constant:
+0:25                  2 (const int)
+0:25              Constant:
+0:25                0 (const int)
+0:25            Sequence
+0:25              Constant:
+0:25                0 (const int)
+0:25              Constant:
+0:25                1 (const int)
+0:25              Constant:
+0:25                2 (const int)
+0:25          'delta' ( temp highp uint)
+0:26      move second child to first child ( temp highp 4-component vector of float)
+0:26        f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
+0:26          direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:26            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:26            Constant:
+0:26              0 (const int)
+0:26          Constant:
+0:26            0 (const int)
+0:26        subgroupRotate ( global highp 4-component vector of float)
+0:26          f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
+0:26            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:26              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:26              Constant:
+0:26                3 (const int)
+0:26            Constant:
+0:26              0 (const int)
+0:26          'delta' ( temp highp uint)
+0:28      move second child to first child ( temp highp int)
+0:28        direct index ( temp highp int)
+0:28          i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:28            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:28              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:28              Constant:
+0:28                0 (const int)
+0:28            Constant:
+0:28              1 (const int)
+0:28          Constant:
+0:28            0 (const int)
+0:28        subgroupRotate ( global highp int)
+0:28          direct index ( temp highp int)
+0:28            i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:28              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:28                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:28                Constant:
+0:28                  0 (const int)
+0:28              Constant:
+0:28                1 (const int)
+0:28            Constant:
+0:28              0 (const int)
+0:28          'delta' ( temp highp uint)
+0:29      move second child to first child ( temp highp 2-component vector of int)
+0:29        vector swizzle ( temp highp 2-component vector of int)
+0:29          i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:29            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:29              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:29              Constant:
+0:29                0 (const int)
+0:29            Constant:
+0:29              1 (const int)
+0:29          Sequence
+0:29            Constant:
+0:29              0 (const int)
+0:29            Constant:
+0:29              1 (const int)
+0:29        subgroupRotate ( global highp 2-component vector of int)
+0:29          vector swizzle ( temp highp 2-component vector of int)
+0:29            i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:29              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:29                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:29                Constant:
+0:29                  1 (const int)
+0:29              Constant:
+0:29                1 (const int)
+0:29            Sequence
+0:29              Constant:
+0:29                0 (const int)
+0:29              Constant:
+0:29                1 (const int)
+0:29          'delta' ( temp highp uint)
+0:30      move second child to first child ( temp highp 3-component vector of int)
+0:30        vector swizzle ( temp highp 3-component vector of int)
+0:30          i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:30            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:30              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:30              Constant:
+0:30                0 (const int)
+0:30            Constant:
+0:30              1 (const int)
+0:30          Sequence
+0:30            Constant:
+0:30              0 (const int)
+0:30            Constant:
+0:30              1 (const int)
+0:30            Constant:
+0:30              2 (const int)
+0:30        subgroupRotate ( global highp 3-component vector of int)
+0:30          vector swizzle ( temp highp 3-component vector of int)
+0:30            i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:30              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:30                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:30                Constant:
+0:30                  2 (const int)
+0:30              Constant:
+0:30                1 (const int)
+0:30            Sequence
+0:30              Constant:
+0:30                0 (const int)
+0:30              Constant:
+0:30                1 (const int)
+0:30              Constant:
+0:30                2 (const int)
+0:30          'delta' ( temp highp uint)
+0:31      move second child to first child ( temp highp 4-component vector of int)
+0:31        i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:31          direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:31            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:31            Constant:
+0:31              0 (const int)
+0:31          Constant:
+0:31            1 (const int)
+0:31        subgroupRotate ( global highp 4-component vector of int)
+0:31          i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:31            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:31              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:31              Constant:
+0:31                3 (const int)
+0:31            Constant:
+0:31              1 (const int)
+0:31          'delta' ( temp highp uint)
+0:33      move second child to first child ( temp highp uint)
+0:33        direct index ( temp highp uint)
+0:33          u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
+0:33            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:33              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:33              Constant:
+0:33                1 (const int)
+0:33            Constant:
+0:33              2 (const int)
+0:33          Constant:
+0:33            0 (const int)
+0:33        subgroupRotate ( global highp uint)
+0:33          direct index ( temp highp uint)
+0:33            u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
+0:33              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:33                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:33                Constant:
+0:33                  0 (const int)
+0:33              Constant:
+0:33                2 (const int)
+0:33            Constant:
+0:33              0 (const int)
+0:33          'delta' ( temp highp uint)
+0:34      move second child to first child ( temp highp 2-component vector of uint)
+0:34        vector swizzle ( temp highp 2-component vector of uint)
+0:34          u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
+0:34            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:34              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:34              Constant:
+0:34                1 (const int)
+0:34            Constant:
+0:34              2 (const int)
+0:34          Sequence
+0:34            Constant:
+0:34              0 (const int)
+0:34            Constant:
+0:34              1 (const int)
+0:34        subgroupRotate ( global highp 2-component vector of uint)
+0:34          vector swizzle ( temp highp 2-component vector of uint)
+0:34            u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
+0:34              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:34                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:34                Constant:
+0:34                  1 (const int)
+0:34              Constant:
+0:34                2 (const int)
+0:34            Sequence
+0:34              Constant:
+0:34                0 (const int)
+0:34              Constant:
+0:34                1 (const int)
+0:34          'delta' ( temp highp uint)
+0:35      move second child to first child ( temp highp 3-component vector of uint)
+0:35        vector swizzle ( temp highp 3-component vector of uint)
+0:35          u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
+0:35            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:35              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:35              Constant:
+0:35                1 (const int)
+0:35            Constant:
+0:35              2 (const int)
+0:35          Sequence
+0:35            Constant:
+0:35              0 (const int)
+0:35            Constant:
+0:35              1 (const int)
+0:35            Constant:
+0:35              2 (const int)
+0:35        subgroupRotate ( global highp 3-component vector of uint)
+0:35          vector swizzle ( temp highp 3-component vector of uint)
+0:35            u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
+0:35              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:35                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:35                Constant:
+0:35                  2 (const int)
+0:35              Constant:
+0:35                2 (const int)
+0:35            Sequence
+0:35              Constant:
+0:35                0 (const int)
+0:35              Constant:
+0:35                1 (const int)
+0:35              Constant:
+0:35                2 (const int)
+0:35          'delta' ( temp highp uint)
+0:36      move second child to first child ( temp highp 4-component vector of uint)
+0:36        u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
+0:36          direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:36            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:36            Constant:
+0:36              1 (const int)
+0:36          Constant:
+0:36            2 (const int)
+0:36        subgroupRotate ( global highp 4-component vector of uint)
+0:36          u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
+0:36            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:36              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:36              Constant:
+0:36                3 (const int)
+0:36            Constant:
+0:36              2 (const int)
+0:36          'delta' ( temp highp uint)
+0:38      move second child to first child ( temp highp int)
+0:38        direct index ( temp highp int)
+0:38          i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:38            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:38              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:38              Constant:
+0:38                1 (const int)
+0:38            Constant:
+0:38              1 (const int)
+0:38          Constant:
+0:38            0 (const int)
+0:38        Convert bool to int ( temp highp int)
+0:38          subgroupRotate ( global bool, operation at highp)
+0:38            Compare Less Than ( temp bool)
+0:38              direct index ( temp highp int)
+0:38                i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:38                  direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:38                    'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:38                    Constant:
+0:38                      0 (const int)
+0:38                  Constant:
+0:38                    1 (const int)
+0:38                Constant:
+0:38                  0 (const int)
+0:38              Constant:
+0:38                0 (const int)
+0:38            'delta' ( temp highp uint)
+0:39      move second child to first child ( temp highp 2-component vector of int)
+0:39        vector swizzle ( temp highp 2-component vector of int)
+0:39          i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:39            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:39              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:39              Constant:
+0:39                1 (const int)
+0:39            Constant:
+0:39              1 (const int)
+0:39          Sequence
+0:39            Constant:
+0:39              0 (const int)
+0:39            Constant:
+0:39              1 (const int)
+0:39        Convert bool to int ( temp highp 2-component vector of int)
+0:39          subgroupRotate ( global 2-component vector of bool, operation at highp)
+0:39            Compare Less Than ( global 2-component vector of bool, operation at highp)
+0:39              vector swizzle ( temp highp 2-component vector of int)
+0:39                i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:39                  direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:39                    'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:39                    Constant:
+0:39                      1 (const int)
+0:39                  Constant:
+0:39                    1 (const int)
+0:39                Sequence
+0:39                  Constant:
+0:39                    0 (const int)
+0:39                  Constant:
+0:39                    1 (const int)
+0:39              Constant:
+0:39                0 (const int)
+0:39                0 (const int)
+0:39            'delta' ( temp highp uint)
+0:40      move second child to first child ( temp highp 3-component vector of int)
+0:40        vector swizzle ( temp highp 3-component vector of int)
+0:40          i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:40            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:40              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:40              Constant:
+0:40                1 (const int)
+0:40            Constant:
+0:40              1 (const int)
+0:40          Sequence
+0:40            Constant:
+0:40              0 (const int)
+0:40            Constant:
+0:40              1 (const int)
+0:40            Constant:
+0:40              2 (const int)
+0:40        Convert bool to int ( temp highp 3-component vector of int)
+0:40          subgroupRotate ( global 3-component vector of bool, operation at highp)
+0:40            Compare Less Than ( global 3-component vector of bool, operation at highp)
+0:40              vector swizzle ( temp highp 3-component vector of int)
+0:40                i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:40                  direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:40                    'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:40                    Constant:
+0:40                      1 (const int)
+0:40                  Constant:
+0:40                    1 (const int)
+0:40                Sequence
+0:40                  Constant:
+0:40                    0 (const int)
+0:40                  Constant:
+0:40                    1 (const int)
+0:40                  Constant:
+0:40                    2 (const int)
+0:40              Constant:
+0:40                0 (const int)
+0:40                0 (const int)
+0:40                0 (const int)
+0:40            'delta' ( temp highp uint)
+0:41      move second child to first child ( temp highp 4-component vector of int)
+0:41        i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:41          direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:41            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:41            Constant:
+0:41              1 (const int)
+0:41          Constant:
+0:41            1 (const int)
+0:41        Convert bool to int ( temp highp 4-component vector of int)
+0:41          subgroupRotate ( global 4-component vector of bool, operation at highp)
+0:41            Compare Less Than ( global 4-component vector of bool, operation at highp)
+0:41              i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:41                direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:41                  'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:41                  Constant:
+0:41                    1 (const int)
+0:41                Constant:
+0:41                  1 (const int)
+0:41              Constant:
+0:41                0 (const int)
+0:41                0 (const int)
+0:41                0 (const int)
+0:41                0 (const int)
+0:41            'delta' ( temp highp uint)
+0:43      move second child to first child ( temp highp float)
+0:43        direct index ( temp highp float)
+0:43          f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
+0:43            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:43              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:43              Constant:
+0:43                2 (const int)
+0:43            Constant:
+0:43              0 (const int)
+0:43          Constant:
+0:43            0 (const int)
+0:43        subgroupClusteredRotate ( global highp float)
+0:43          direct index ( temp highp float)
+0:43            f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
+0:43              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:43                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:43                Constant:
+0:43                  0 (const int)
+0:43              Constant:
+0:43                0 (const int)
+0:43            Constant:
+0:43              0 (const int)
+0:43          'delta' ( temp highp uint)
+0:43          Constant:
+0:43            1 (const uint)
+0:44      move second child to first child ( temp highp 2-component vector of float)
+0:44        vector swizzle ( temp highp 2-component vector of float)
+0:44          f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
+0:44            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:44              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:44              Constant:
+0:44                2 (const int)
+0:44            Constant:
+0:44              0 (const int)
+0:44          Sequence
+0:44            Constant:
+0:44              0 (const int)
+0:44            Constant:
+0:44              1 (const int)
+0:44        subgroupClusteredRotate ( global highp 2-component vector of float)
+0:44          vector swizzle ( temp highp 2-component vector of float)
+0:44            f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
+0:44              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:44                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:44                Constant:
+0:44                  1 (const int)
+0:44              Constant:
+0:44                0 (const int)
+0:44            Sequence
+0:44              Constant:
+0:44                0 (const int)
+0:44              Constant:
+0:44                1 (const int)
+0:44          'delta' ( temp highp uint)
+0:44          Constant:
+0:44            1 (const uint)
+0:45      move second child to first child ( temp highp 3-component vector of float)
+0:45        vector swizzle ( temp highp 3-component vector of float)
+0:45          f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
+0:45            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:45              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:45              Constant:
+0:45                2 (const int)
+0:45            Constant:
+0:45              0 (const int)
+0:45          Sequence
+0:45            Constant:
+0:45              0 (const int)
+0:45            Constant:
+0:45              1 (const int)
+0:45            Constant:
+0:45              2 (const int)
+0:45        subgroupClusteredRotate ( global highp 3-component vector of float)
+0:45          vector swizzle ( temp highp 3-component vector of float)
+0:45            f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
+0:45              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:45                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:45                Constant:
+0:45                  2 (const int)
+0:45              Constant:
+0:45                0 (const int)
+0:45            Sequence
+0:45              Constant:
+0:45                0 (const int)
+0:45              Constant:
+0:45                1 (const int)
+0:45              Constant:
+0:45                2 (const int)
+0:45          'delta' ( temp highp uint)
+0:45          Constant:
+0:45            1 (const uint)
+0:46      move second child to first child ( temp highp 4-component vector of float)
+0:46        f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
+0:46          direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:46            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:46            Constant:
+0:46              2 (const int)
+0:46          Constant:
+0:46            0 (const int)
+0:46        subgroupClusteredRotate ( global highp 4-component vector of float)
+0:46          f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
+0:46            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:46              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:46              Constant:
+0:46                3 (const int)
+0:46            Constant:
+0:46              0 (const int)
+0:46          'delta' ( temp highp uint)
+0:46          Constant:
+0:46            1 (const uint)
+0:48      move second child to first child ( temp highp int)
+0:48        direct index ( temp highp int)
+0:48          i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:48            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:48              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:48              Constant:
+0:48                2 (const int)
+0:48            Constant:
+0:48              1 (const int)
+0:48          Constant:
+0:48            0 (const int)
+0:48        subgroupClusteredRotate ( global highp int)
+0:48          direct index ( temp highp int)
+0:48            i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:48              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:48                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:48                Constant:
+0:48                  0 (const int)
+0:48              Constant:
+0:48                1 (const int)
+0:48            Constant:
+0:48              0 (const int)
+0:48          'delta' ( temp highp uint)
+0:48          Constant:
+0:48            1 (const uint)
+0:49      move second child to first child ( temp highp 2-component vector of int)
+0:49        vector swizzle ( temp highp 2-component vector of int)
+0:49          i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:49            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:49              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:49              Constant:
+0:49                2 (const int)
+0:49            Constant:
+0:49              1 (const int)
+0:49          Sequence
+0:49            Constant:
+0:49              0 (const int)
+0:49            Constant:
+0:49              1 (const int)
+0:49        subgroupClusteredRotate ( global highp 2-component vector of int)
+0:49          vector swizzle ( temp highp 2-component vector of int)
+0:49            i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:49              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:49                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:49                Constant:
+0:49                  1 (const int)
+0:49              Constant:
+0:49                1 (const int)
+0:49            Sequence
+0:49              Constant:
+0:49                0 (const int)
+0:49              Constant:
+0:49                1 (const int)
+0:49          'delta' ( temp highp uint)
+0:49          Constant:
+0:49            1 (const uint)
+0:50      move second child to first child ( temp highp 3-component vector of int)
+0:50        vector swizzle ( temp highp 3-component vector of int)
+0:50          i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:50            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:50              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:50              Constant:
+0:50                2 (const int)
+0:50            Constant:
+0:50              1 (const int)
+0:50          Sequence
+0:50            Constant:
+0:50              0 (const int)
+0:50            Constant:
+0:50              1 (const int)
+0:50            Constant:
+0:50              2 (const int)
+0:50        subgroupClusteredRotate ( global highp 3-component vector of int)
+0:50          vector swizzle ( temp highp 3-component vector of int)
+0:50            i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:50              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:50                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:50                Constant:
+0:50                  2 (const int)
+0:50              Constant:
+0:50                1 (const int)
+0:50            Sequence
+0:50              Constant:
+0:50                0 (const int)
+0:50              Constant:
+0:50                1 (const int)
+0:50              Constant:
+0:50                2 (const int)
+0:50          'delta' ( temp highp uint)
+0:50          Constant:
+0:50            1 (const uint)
+0:51      move second child to first child ( temp highp 4-component vector of int)
+0:51        i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:51          direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:51            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:51            Constant:
+0:51              2 (const int)
+0:51          Constant:
+0:51            1 (const int)
+0:51        subgroupClusteredRotate ( global highp 4-component vector of int)
+0:51          i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:51            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:51              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:51              Constant:
+0:51                3 (const int)
+0:51            Constant:
+0:51              1 (const int)
+0:51          'delta' ( temp highp uint)
+0:51          Constant:
+0:51            1 (const uint)
+0:53      move second child to first child ( temp highp uint)
+0:53        direct index ( temp highp uint)
+0:53          u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
+0:53            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:53              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:53              Constant:
+0:53                3 (const int)
+0:53            Constant:
+0:53              2 (const int)
+0:53          Constant:
+0:53            0 (const int)
+0:53        subgroupClusteredRotate ( global highp uint)
+0:53          direct index ( temp highp uint)
+0:53            u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
+0:53              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:53                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:53                Constant:
+0:53                  0 (const int)
+0:53              Constant:
+0:53                2 (const int)
+0:53            Constant:
+0:53              0 (const int)
+0:53          'delta' ( temp highp uint)
+0:53          Constant:
+0:53            1 (const uint)
+0:54      move second child to first child ( temp highp 2-component vector of uint)
+0:54        vector swizzle ( temp highp 2-component vector of uint)
+0:54          u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
+0:54            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:54              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:54              Constant:
+0:54                3 (const int)
+0:54            Constant:
+0:54              2 (const int)
+0:54          Sequence
+0:54            Constant:
+0:54              0 (const int)
+0:54            Constant:
+0:54              1 (const int)
+0:54        subgroupClusteredRotate ( global highp 2-component vector of uint)
+0:54          vector swizzle ( temp highp 2-component vector of uint)
+0:54            u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
+0:54              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:54                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:54                Constant:
+0:54                  1 (const int)
+0:54              Constant:
+0:54                2 (const int)
+0:54            Sequence
+0:54              Constant:
+0:54                0 (const int)
+0:54              Constant:
+0:54                1 (const int)
+0:54          'delta' ( temp highp uint)
+0:54          Constant:
+0:54            1 (const uint)
+0:55      move second child to first child ( temp highp 3-component vector of uint)
+0:55        vector swizzle ( temp highp 3-component vector of uint)
+0:55          u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
+0:55            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:55              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:55              Constant:
+0:55                3 (const int)
+0:55            Constant:
+0:55              2 (const int)
+0:55          Sequence
+0:55            Constant:
+0:55              0 (const int)
+0:55            Constant:
+0:55              1 (const int)
+0:55            Constant:
+0:55              2 (const int)
+0:55        subgroupClusteredRotate ( global highp 3-component vector of uint)
+0:55          vector swizzle ( temp highp 3-component vector of uint)
+0:55            u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
+0:55              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:55                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:55                Constant:
+0:55                  2 (const int)
+0:55              Constant:
+0:55                2 (const int)
+0:55            Sequence
+0:55              Constant:
+0:55                0 (const int)
+0:55              Constant:
+0:55                1 (const int)
+0:55              Constant:
+0:55                2 (const int)
+0:55          'delta' ( temp highp uint)
+0:55          Constant:
+0:55            1 (const uint)
+0:56      move second child to first child ( temp highp 4-component vector of uint)
+0:56        u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
+0:56          direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:56            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:56            Constant:
+0:56              3 (const int)
+0:56          Constant:
+0:56            2 (const int)
+0:56        subgroupClusteredRotate ( global highp 4-component vector of uint)
+0:56          u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
+0:56            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:56              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:56              Constant:
+0:56                3 (const int)
+0:56            Constant:
+0:56              2 (const int)
+0:56          'delta' ( temp highp uint)
+0:56          Constant:
+0:56            1 (const uint)
+0:58      move second child to first child ( temp highp int)
+0:58        direct index ( temp highp int)
+0:58          i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:58            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:58              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:58              Constant:
+0:58                3 (const int)
+0:58            Constant:
+0:58              1 (const int)
+0:58          Constant:
+0:58            0 (const int)
+0:58        Convert bool to int ( temp highp int)
+0:58          subgroupClusteredRotate ( global bool, operation at highp)
+0:58            Compare Less Than ( temp bool)
+0:58              direct index ( temp highp int)
+0:58                i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:58                  direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:58                    'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:58                    Constant:
+0:58                      0 (const int)
+0:58                  Constant:
+0:58                    1 (const int)
+0:58                Constant:
+0:58                  0 (const int)
+0:58              Constant:
+0:58                0 (const int)
+0:58            'delta' ( temp highp uint)
+0:58            Constant:
+0:58              1 (const uint)
+0:59      move second child to first child ( temp highp 2-component vector of int)
+0:59        vector swizzle ( temp highp 2-component vector of int)
+0:59          i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:59            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:59              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:59              Constant:
+0:59                3 (const int)
+0:59            Constant:
+0:59              1 (const int)
+0:59          Sequence
+0:59            Constant:
+0:59              0 (const int)
+0:59            Constant:
+0:59              1 (const int)
+0:59        Convert bool to int ( temp highp 2-component vector of int)
+0:59          subgroupClusteredRotate ( global 2-component vector of bool, operation at highp)
+0:59            Compare Less Than ( global 2-component vector of bool, operation at highp)
+0:59              vector swizzle ( temp highp 2-component vector of int)
+0:59                i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:59                  direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:59                    'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:59                    Constant:
+0:59                      1 (const int)
+0:59                  Constant:
+0:59                    1 (const int)
+0:59                Sequence
+0:59                  Constant:
+0:59                    0 (const int)
+0:59                  Constant:
+0:59                    1 (const int)
+0:59              Constant:
+0:59                0 (const int)
+0:59                0 (const int)
+0:59            'delta' ( temp highp uint)
+0:59            Constant:
+0:59              1 (const uint)
+0:60      move second child to first child ( temp highp 3-component vector of int)
+0:60        vector swizzle ( temp highp 3-component vector of int)
+0:60          i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:60            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:60              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:60              Constant:
+0:60                3 (const int)
+0:60            Constant:
+0:60              1 (const int)
+0:60          Sequence
+0:60            Constant:
+0:60              0 (const int)
+0:60            Constant:
+0:60              1 (const int)
+0:60            Constant:
+0:60              2 (const int)
+0:60        Convert bool to int ( temp highp 3-component vector of int)
+0:60          subgroupClusteredRotate ( global 3-component vector of bool, operation at highp)
+0:60            Compare Less Than ( global 3-component vector of bool, operation at highp)
+0:60              vector swizzle ( temp highp 3-component vector of int)
+0:60                i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:60                  direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:60                    'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:60                    Constant:
+0:60                      1 (const int)
+0:60                  Constant:
+0:60                    1 (const int)
+0:60                Sequence
+0:60                  Constant:
+0:60                    0 (const int)
+0:60                  Constant:
+0:60                    1 (const int)
+0:60                  Constant:
+0:60                    2 (const int)
+0:60              Constant:
+0:60                0 (const int)
+0:60                0 (const int)
+0:60                0 (const int)
+0:60            'delta' ( temp highp uint)
+0:60            Constant:
+0:60              1 (const uint)
+0:61      move second child to first child ( temp highp 4-component vector of int)
+0:61        i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:61          direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:61            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:61            Constant:
+0:61              3 (const int)
+0:61          Constant:
+0:61            1 (const int)
+0:61        Convert bool to int ( temp highp 4-component vector of int)
+0:61          subgroupClusteredRotate ( global 4-component vector of bool, operation at highp)
+0:61            Compare Less Than ( global 4-component vector of bool, operation at highp)
+0:61              i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:61                direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:61                  'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:61                  Constant:
+0:61                    1 (const int)
+0:61                Constant:
+0:61                  1 (const int)
+0:61              Constant:
+0:61                0 (const int)
+0:61                0 (const int)
+0:61                0 (const int)
+0:61                0 (const int)
+0:61            'delta' ( temp highp uint)
+0:61            Constant:
+0:61              1 (const uint)
+0:?   Linker Objects
+0:?     'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize)
+0:?       8 (const uint)
+0:?       8 (const uint)
+0:?       1 (const uint)
+0:?     'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) readonly buffer highp uint delta})
+0:?     'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+
+
+Linked compute stage:
+
+
+Shader version: 320
+Requested GL_KHR_shader_subgroup_rotate
+local_size = (8, 8, 1)
+0:? Sequence
+0:19  Function Definition: main( ( global void)
+0:19    Function Parameters: 
+0:21    Sequence
+0:21      Sequence
+0:21        move second child to first child ( temp highp uint)
+0:21          'delta' ( temp highp uint)
+0:21          delta: direct index for structure (layout( column_major shared) readonly buffer highp uint)
+0:21            'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) readonly buffer highp uint delta})
+0:21            Constant:
+0:21              0 (const int)
+0:23      move second child to first child ( temp highp float)
+0:23        direct index ( temp highp float)
+0:23          f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
+0:23            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:23              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:23              Constant:
+0:23                0 (const int)
+0:23            Constant:
+0:23              0 (const int)
+0:23          Constant:
+0:23            0 (const int)
+0:23        subgroupRotate ( global highp float)
+0:23          direct index ( temp highp float)
+0:23            f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
+0:23              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:23                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:23                Constant:
+0:23                  0 (const int)
+0:23              Constant:
+0:23                0 (const int)
+0:23            Constant:
+0:23              0 (const int)
+0:23          'delta' ( temp highp uint)
+0:24      move second child to first child ( temp highp 2-component vector of float)
+0:24        vector swizzle ( temp highp 2-component vector of float)
+0:24          f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
+0:24            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:24              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:24              Constant:
+0:24                0 (const int)
+0:24            Constant:
+0:24              0 (const int)
+0:24          Sequence
+0:24            Constant:
+0:24              0 (const int)
+0:24            Constant:
+0:24              1 (const int)
+0:24        subgroupRotate ( global highp 2-component vector of float)
+0:24          vector swizzle ( temp highp 2-component vector of float)
+0:24            f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
+0:24              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:24                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:24                Constant:
+0:24                  1 (const int)
+0:24              Constant:
+0:24                0 (const int)
+0:24            Sequence
+0:24              Constant:
+0:24                0 (const int)
+0:24              Constant:
+0:24                1 (const int)
+0:24          'delta' ( temp highp uint)
+0:25      move second child to first child ( temp highp 3-component vector of float)
+0:25        vector swizzle ( temp highp 3-component vector of float)
+0:25          f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
+0:25            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:25              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:25              Constant:
+0:25                0 (const int)
+0:25            Constant:
+0:25              0 (const int)
+0:25          Sequence
+0:25            Constant:
+0:25              0 (const int)
+0:25            Constant:
+0:25              1 (const int)
+0:25            Constant:
+0:25              2 (const int)
+0:25        subgroupRotate ( global highp 3-component vector of float)
+0:25          vector swizzle ( temp highp 3-component vector of float)
+0:25            f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
+0:25              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:25                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:25                Constant:
+0:25                  2 (const int)
+0:25              Constant:
+0:25                0 (const int)
+0:25            Sequence
+0:25              Constant:
+0:25                0 (const int)
+0:25              Constant:
+0:25                1 (const int)
+0:25              Constant:
+0:25                2 (const int)
+0:25          'delta' ( temp highp uint)
+0:26      move second child to first child ( temp highp 4-component vector of float)
+0:26        f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
+0:26          direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:26            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:26            Constant:
+0:26              0 (const int)
+0:26          Constant:
+0:26            0 (const int)
+0:26        subgroupRotate ( global highp 4-component vector of float)
+0:26          f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
+0:26            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:26              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:26              Constant:
+0:26                3 (const int)
+0:26            Constant:
+0:26              0 (const int)
+0:26          'delta' ( temp highp uint)
+0:28      move second child to first child ( temp highp int)
+0:28        direct index ( temp highp int)
+0:28          i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:28            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:28              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:28              Constant:
+0:28                0 (const int)
+0:28            Constant:
+0:28              1 (const int)
+0:28          Constant:
+0:28            0 (const int)
+0:28        subgroupRotate ( global highp int)
+0:28          direct index ( temp highp int)
+0:28            i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:28              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:28                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:28                Constant:
+0:28                  0 (const int)
+0:28              Constant:
+0:28                1 (const int)
+0:28            Constant:
+0:28              0 (const int)
+0:28          'delta' ( temp highp uint)
+0:29      move second child to first child ( temp highp 2-component vector of int)
+0:29        vector swizzle ( temp highp 2-component vector of int)
+0:29          i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:29            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:29              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:29              Constant:
+0:29                0 (const int)
+0:29            Constant:
+0:29              1 (const int)
+0:29          Sequence
+0:29            Constant:
+0:29              0 (const int)
+0:29            Constant:
+0:29              1 (const int)
+0:29        subgroupRotate ( global highp 2-component vector of int)
+0:29          vector swizzle ( temp highp 2-component vector of int)
+0:29            i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:29              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:29                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:29                Constant:
+0:29                  1 (const int)
+0:29              Constant:
+0:29                1 (const int)
+0:29            Sequence
+0:29              Constant:
+0:29                0 (const int)
+0:29              Constant:
+0:29                1 (const int)
+0:29          'delta' ( temp highp uint)
+0:30      move second child to first child ( temp highp 3-component vector of int)
+0:30        vector swizzle ( temp highp 3-component vector of int)
+0:30          i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:30            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:30              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:30              Constant:
+0:30                0 (const int)
+0:30            Constant:
+0:30              1 (const int)
+0:30          Sequence
+0:30            Constant:
+0:30              0 (const int)
+0:30            Constant:
+0:30              1 (const int)
+0:30            Constant:
+0:30              2 (const int)
+0:30        subgroupRotate ( global highp 3-component vector of int)
+0:30          vector swizzle ( temp highp 3-component vector of int)
+0:30            i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:30              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:30                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:30                Constant:
+0:30                  2 (const int)
+0:30              Constant:
+0:30                1 (const int)
+0:30            Sequence
+0:30              Constant:
+0:30                0 (const int)
+0:30              Constant:
+0:30                1 (const int)
+0:30              Constant:
+0:30                2 (const int)
+0:30          'delta' ( temp highp uint)
+0:31      move second child to first child ( temp highp 4-component vector of int)
+0:31        i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:31          direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:31            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:31            Constant:
+0:31              0 (const int)
+0:31          Constant:
+0:31            1 (const int)
+0:31        subgroupRotate ( global highp 4-component vector of int)
+0:31          i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:31            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:31              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:31              Constant:
+0:31                3 (const int)
+0:31            Constant:
+0:31              1 (const int)
+0:31          'delta' ( temp highp uint)
+0:33      move second child to first child ( temp highp uint)
+0:33        direct index ( temp highp uint)
+0:33          u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
+0:33            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:33              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:33              Constant:
+0:33                1 (const int)
+0:33            Constant:
+0:33              2 (const int)
+0:33          Constant:
+0:33            0 (const int)
+0:33        subgroupRotate ( global highp uint)
+0:33          direct index ( temp highp uint)
+0:33            u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
+0:33              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:33                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:33                Constant:
+0:33                  0 (const int)
+0:33              Constant:
+0:33                2 (const int)
+0:33            Constant:
+0:33              0 (const int)
+0:33          'delta' ( temp highp uint)
+0:34      move second child to first child ( temp highp 2-component vector of uint)
+0:34        vector swizzle ( temp highp 2-component vector of uint)
+0:34          u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
+0:34            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:34              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:34              Constant:
+0:34                1 (const int)
+0:34            Constant:
+0:34              2 (const int)
+0:34          Sequence
+0:34            Constant:
+0:34              0 (const int)
+0:34            Constant:
+0:34              1 (const int)
+0:34        subgroupRotate ( global highp 2-component vector of uint)
+0:34          vector swizzle ( temp highp 2-component vector of uint)
+0:34            u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
+0:34              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:34                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:34                Constant:
+0:34                  1 (const int)
+0:34              Constant:
+0:34                2 (const int)
+0:34            Sequence
+0:34              Constant:
+0:34                0 (const int)
+0:34              Constant:
+0:34                1 (const int)
+0:34          'delta' ( temp highp uint)
+0:35      move second child to first child ( temp highp 3-component vector of uint)
+0:35        vector swizzle ( temp highp 3-component vector of uint)
+0:35          u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
+0:35            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:35              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:35              Constant:
+0:35                1 (const int)
+0:35            Constant:
+0:35              2 (const int)
+0:35          Sequence
+0:35            Constant:
+0:35              0 (const int)
+0:35            Constant:
+0:35              1 (const int)
+0:35            Constant:
+0:35              2 (const int)
+0:35        subgroupRotate ( global highp 3-component vector of uint)
+0:35          vector swizzle ( temp highp 3-component vector of uint)
+0:35            u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
+0:35              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:35                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:35                Constant:
+0:35                  2 (const int)
+0:35              Constant:
+0:35                2 (const int)
+0:35            Sequence
+0:35              Constant:
+0:35                0 (const int)
+0:35              Constant:
+0:35                1 (const int)
+0:35              Constant:
+0:35                2 (const int)
+0:35          'delta' ( temp highp uint)
+0:36      move second child to first child ( temp highp 4-component vector of uint)
+0:36        u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
+0:36          direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:36            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:36            Constant:
+0:36              1 (const int)
+0:36          Constant:
+0:36            2 (const int)
+0:36        subgroupRotate ( global highp 4-component vector of uint)
+0:36          u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
+0:36            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:36              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:36              Constant:
+0:36                3 (const int)
+0:36            Constant:
+0:36              2 (const int)
+0:36          'delta' ( temp highp uint)
+0:38      move second child to first child ( temp highp int)
+0:38        direct index ( temp highp int)
+0:38          i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:38            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:38              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:38              Constant:
+0:38                1 (const int)
+0:38            Constant:
+0:38              1 (const int)
+0:38          Constant:
+0:38            0 (const int)
+0:38        Convert bool to int ( temp highp int)
+0:38          subgroupRotate ( global bool, operation at highp)
+0:38            Compare Less Than ( temp bool)
+0:38              direct index ( temp highp int)
+0:38                i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:38                  direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:38                    'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:38                    Constant:
+0:38                      0 (const int)
+0:38                  Constant:
+0:38                    1 (const int)
+0:38                Constant:
+0:38                  0 (const int)
+0:38              Constant:
+0:38                0 (const int)
+0:38            'delta' ( temp highp uint)
+0:39      move second child to first child ( temp highp 2-component vector of int)
+0:39        vector swizzle ( temp highp 2-component vector of int)
+0:39          i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:39            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:39              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:39              Constant:
+0:39                1 (const int)
+0:39            Constant:
+0:39              1 (const int)
+0:39          Sequence
+0:39            Constant:
+0:39              0 (const int)
+0:39            Constant:
+0:39              1 (const int)
+0:39        Convert bool to int ( temp highp 2-component vector of int)
+0:39          subgroupRotate ( global 2-component vector of bool, operation at highp)
+0:39            Compare Less Than ( global 2-component vector of bool, operation at highp)
+0:39              vector swizzle ( temp highp 2-component vector of int)
+0:39                i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:39                  direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:39                    'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:39                    Constant:
+0:39                      1 (const int)
+0:39                  Constant:
+0:39                    1 (const int)
+0:39                Sequence
+0:39                  Constant:
+0:39                    0 (const int)
+0:39                  Constant:
+0:39                    1 (const int)
+0:39              Constant:
+0:39                0 (const int)
+0:39                0 (const int)
+0:39            'delta' ( temp highp uint)
+0:40      move second child to first child ( temp highp 3-component vector of int)
+0:40        vector swizzle ( temp highp 3-component vector of int)
+0:40          i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:40            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:40              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:40              Constant:
+0:40                1 (const int)
+0:40            Constant:
+0:40              1 (const int)
+0:40          Sequence
+0:40            Constant:
+0:40              0 (const int)
+0:40            Constant:
+0:40              1 (const int)
+0:40            Constant:
+0:40              2 (const int)
+0:40        Convert bool to int ( temp highp 3-component vector of int)
+0:40          subgroupRotate ( global 3-component vector of bool, operation at highp)
+0:40            Compare Less Than ( global 3-component vector of bool, operation at highp)
+0:40              vector swizzle ( temp highp 3-component vector of int)
+0:40                i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:40                  direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:40                    'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:40                    Constant:
+0:40                      1 (const int)
+0:40                  Constant:
+0:40                    1 (const int)
+0:40                Sequence
+0:40                  Constant:
+0:40                    0 (const int)
+0:40                  Constant:
+0:40                    1 (const int)
+0:40                  Constant:
+0:40                    2 (const int)
+0:40              Constant:
+0:40                0 (const int)
+0:40                0 (const int)
+0:40                0 (const int)
+0:40            'delta' ( temp highp uint)
+0:41      move second child to first child ( temp highp 4-component vector of int)
+0:41        i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:41          direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:41            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:41            Constant:
+0:41              1 (const int)
+0:41          Constant:
+0:41            1 (const int)
+0:41        Convert bool to int ( temp highp 4-component vector of int)
+0:41          subgroupRotate ( global 4-component vector of bool, operation at highp)
+0:41            Compare Less Than ( global 4-component vector of bool, operation at highp)
+0:41              i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:41                direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:41                  'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:41                  Constant:
+0:41                    1 (const int)
+0:41                Constant:
+0:41                  1 (const int)
+0:41              Constant:
+0:41                0 (const int)
+0:41                0 (const int)
+0:41                0 (const int)
+0:41                0 (const int)
+0:41            'delta' ( temp highp uint)
+0:43      move second child to first child ( temp highp float)
+0:43        direct index ( temp highp float)
+0:43          f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
+0:43            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:43              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:43              Constant:
+0:43                2 (const int)
+0:43            Constant:
+0:43              0 (const int)
+0:43          Constant:
+0:43            0 (const int)
+0:43        subgroupClusteredRotate ( global highp float)
+0:43          direct index ( temp highp float)
+0:43            f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
+0:43              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:43                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:43                Constant:
+0:43                  0 (const int)
+0:43              Constant:
+0:43                0 (const int)
+0:43            Constant:
+0:43              0 (const int)
+0:43          'delta' ( temp highp uint)
+0:43          Constant:
+0:43            1 (const uint)
+0:44      move second child to first child ( temp highp 2-component vector of float)
+0:44        vector swizzle ( temp highp 2-component vector of float)
+0:44          f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
+0:44            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:44              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:44              Constant:
+0:44                2 (const int)
+0:44            Constant:
+0:44              0 (const int)
+0:44          Sequence
+0:44            Constant:
+0:44              0 (const int)
+0:44            Constant:
+0:44              1 (const int)
+0:44        subgroupClusteredRotate ( global highp 2-component vector of float)
+0:44          vector swizzle ( temp highp 2-component vector of float)
+0:44            f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
+0:44              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:44                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:44                Constant:
+0:44                  1 (const int)
+0:44              Constant:
+0:44                0 (const int)
+0:44            Sequence
+0:44              Constant:
+0:44                0 (const int)
+0:44              Constant:
+0:44                1 (const int)
+0:44          'delta' ( temp highp uint)
+0:44          Constant:
+0:44            1 (const uint)
+0:45      move second child to first child ( temp highp 3-component vector of float)
+0:45        vector swizzle ( temp highp 3-component vector of float)
+0:45          f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
+0:45            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:45              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:45              Constant:
+0:45                2 (const int)
+0:45            Constant:
+0:45              0 (const int)
+0:45          Sequence
+0:45            Constant:
+0:45              0 (const int)
+0:45            Constant:
+0:45              1 (const int)
+0:45            Constant:
+0:45              2 (const int)
+0:45        subgroupClusteredRotate ( global highp 3-component vector of float)
+0:45          vector swizzle ( temp highp 3-component vector of float)
+0:45            f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
+0:45              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:45                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:45                Constant:
+0:45                  2 (const int)
+0:45              Constant:
+0:45                0 (const int)
+0:45            Sequence
+0:45              Constant:
+0:45                0 (const int)
+0:45              Constant:
+0:45                1 (const int)
+0:45              Constant:
+0:45                2 (const int)
+0:45          'delta' ( temp highp uint)
+0:45          Constant:
+0:45            1 (const uint)
+0:46      move second child to first child ( temp highp 4-component vector of float)
+0:46        f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
+0:46          direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:46            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:46            Constant:
+0:46              2 (const int)
+0:46          Constant:
+0:46            0 (const int)
+0:46        subgroupClusteredRotate ( global highp 4-component vector of float)
+0:46          f4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of float)
+0:46            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:46              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:46              Constant:
+0:46                3 (const int)
+0:46            Constant:
+0:46              0 (const int)
+0:46          'delta' ( temp highp uint)
+0:46          Constant:
+0:46            1 (const uint)
+0:48      move second child to first child ( temp highp int)
+0:48        direct index ( temp highp int)
+0:48          i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:48            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:48              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:48              Constant:
+0:48                2 (const int)
+0:48            Constant:
+0:48              1 (const int)
+0:48          Constant:
+0:48            0 (const int)
+0:48        subgroupClusteredRotate ( global highp int)
+0:48          direct index ( temp highp int)
+0:48            i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:48              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:48                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:48                Constant:
+0:48                  0 (const int)
+0:48              Constant:
+0:48                1 (const int)
+0:48            Constant:
+0:48              0 (const int)
+0:48          'delta' ( temp highp uint)
+0:48          Constant:
+0:48            1 (const uint)
+0:49      move second child to first child ( temp highp 2-component vector of int)
+0:49        vector swizzle ( temp highp 2-component vector of int)
+0:49          i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:49            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:49              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:49              Constant:
+0:49                2 (const int)
+0:49            Constant:
+0:49              1 (const int)
+0:49          Sequence
+0:49            Constant:
+0:49              0 (const int)
+0:49            Constant:
+0:49              1 (const int)
+0:49        subgroupClusteredRotate ( global highp 2-component vector of int)
+0:49          vector swizzle ( temp highp 2-component vector of int)
+0:49            i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:49              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:49                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:49                Constant:
+0:49                  1 (const int)
+0:49              Constant:
+0:49                1 (const int)
+0:49            Sequence
+0:49              Constant:
+0:49                0 (const int)
+0:49              Constant:
+0:49                1 (const int)
+0:49          'delta' ( temp highp uint)
+0:49          Constant:
+0:49            1 (const uint)
+0:50      move second child to first child ( temp highp 3-component vector of int)
+0:50        vector swizzle ( temp highp 3-component vector of int)
+0:50          i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:50            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:50              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:50              Constant:
+0:50                2 (const int)
+0:50            Constant:
+0:50              1 (const int)
+0:50          Sequence
+0:50            Constant:
+0:50              0 (const int)
+0:50            Constant:
+0:50              1 (const int)
+0:50            Constant:
+0:50              2 (const int)
+0:50        subgroupClusteredRotate ( global highp 3-component vector of int)
+0:50          vector swizzle ( temp highp 3-component vector of int)
+0:50            i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:50              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:50                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:50                Constant:
+0:50                  2 (const int)
+0:50              Constant:
+0:50                1 (const int)
+0:50            Sequence
+0:50              Constant:
+0:50                0 (const int)
+0:50              Constant:
+0:50                1 (const int)
+0:50              Constant:
+0:50                2 (const int)
+0:50          'delta' ( temp highp uint)
+0:50          Constant:
+0:50            1 (const uint)
+0:51      move second child to first child ( temp highp 4-component vector of int)
+0:51        i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:51          direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:51            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:51            Constant:
+0:51              2 (const int)
+0:51          Constant:
+0:51            1 (const int)
+0:51        subgroupClusteredRotate ( global highp 4-component vector of int)
+0:51          i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:51            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:51              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:51              Constant:
+0:51                3 (const int)
+0:51            Constant:
+0:51              1 (const int)
+0:51          'delta' ( temp highp uint)
+0:51          Constant:
+0:51            1 (const uint)
+0:53      move second child to first child ( temp highp uint)
+0:53        direct index ( temp highp uint)
+0:53          u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
+0:53            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:53              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:53              Constant:
+0:53                3 (const int)
+0:53            Constant:
+0:53              2 (const int)
+0:53          Constant:
+0:53            0 (const int)
+0:53        subgroupClusteredRotate ( global highp uint)
+0:53          direct index ( temp highp uint)
+0:53            u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
+0:53              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:53                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:53                Constant:
+0:53                  0 (const int)
+0:53              Constant:
+0:53                2 (const int)
+0:53            Constant:
+0:53              0 (const int)
+0:53          'delta' ( temp highp uint)
+0:53          Constant:
+0:53            1 (const uint)
+0:54      move second child to first child ( temp highp 2-component vector of uint)
+0:54        vector swizzle ( temp highp 2-component vector of uint)
+0:54          u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
+0:54            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:54              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:54              Constant:
+0:54                3 (const int)
+0:54            Constant:
+0:54              2 (const int)
+0:54          Sequence
+0:54            Constant:
+0:54              0 (const int)
+0:54            Constant:
+0:54              1 (const int)
+0:54        subgroupClusteredRotate ( global highp 2-component vector of uint)
+0:54          vector swizzle ( temp highp 2-component vector of uint)
+0:54            u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
+0:54              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:54                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:54                Constant:
+0:54                  1 (const int)
+0:54              Constant:
+0:54                2 (const int)
+0:54            Sequence
+0:54              Constant:
+0:54                0 (const int)
+0:54              Constant:
+0:54                1 (const int)
+0:54          'delta' ( temp highp uint)
+0:54          Constant:
+0:54            1 (const uint)
+0:55      move second child to first child ( temp highp 3-component vector of uint)
+0:55        vector swizzle ( temp highp 3-component vector of uint)
+0:55          u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
+0:55            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:55              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:55              Constant:
+0:55                3 (const int)
+0:55            Constant:
+0:55              2 (const int)
+0:55          Sequence
+0:55            Constant:
+0:55              0 (const int)
+0:55            Constant:
+0:55              1 (const int)
+0:55            Constant:
+0:55              2 (const int)
+0:55        subgroupClusteredRotate ( global highp 3-component vector of uint)
+0:55          vector swizzle ( temp highp 3-component vector of uint)
+0:55            u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
+0:55              direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:55                'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:55                Constant:
+0:55                  2 (const int)
+0:55              Constant:
+0:55                2 (const int)
+0:55            Sequence
+0:55              Constant:
+0:55                0 (const int)
+0:55              Constant:
+0:55                1 (const int)
+0:55              Constant:
+0:55                2 (const int)
+0:55          'delta' ( temp highp uint)
+0:55          Constant:
+0:55            1 (const uint)
+0:56      move second child to first child ( temp highp 4-component vector of uint)
+0:56        u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
+0:56          direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:56            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:56            Constant:
+0:56              3 (const int)
+0:56          Constant:
+0:56            2 (const int)
+0:56        subgroupClusteredRotate ( global highp 4-component vector of uint)
+0:56          u4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of uint)
+0:56            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:56              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:56              Constant:
+0:56                3 (const int)
+0:56            Constant:
+0:56              2 (const int)
+0:56          'delta' ( temp highp uint)
+0:56          Constant:
+0:56            1 (const uint)
+0:58      move second child to first child ( temp highp int)
+0:58        direct index ( temp highp int)
+0:58          i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:58            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:58              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:58              Constant:
+0:58                3 (const int)
+0:58            Constant:
+0:58              1 (const int)
+0:58          Constant:
+0:58            0 (const int)
+0:58        Convert bool to int ( temp highp int)
+0:58          subgroupClusteredRotate ( global bool, operation at highp)
+0:58            Compare Less Than ( temp bool)
+0:58              direct index ( temp highp int)
+0:58                i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:58                  direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:58                    'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:58                    Constant:
+0:58                      0 (const int)
+0:58                  Constant:
+0:58                    1 (const int)
+0:58                Constant:
+0:58                  0 (const int)
+0:58              Constant:
+0:58                0 (const int)
+0:58            'delta' ( temp highp uint)
+0:58            Constant:
+0:58              1 (const uint)
+0:59      move second child to first child ( temp highp 2-component vector of int)
+0:59        vector swizzle ( temp highp 2-component vector of int)
+0:59          i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:59            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:59              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:59              Constant:
+0:59                3 (const int)
+0:59            Constant:
+0:59              1 (const int)
+0:59          Sequence
+0:59            Constant:
+0:59              0 (const int)
+0:59            Constant:
+0:59              1 (const int)
+0:59        Convert bool to int ( temp highp 2-component vector of int)
+0:59          subgroupClusteredRotate ( global 2-component vector of bool, operation at highp)
+0:59            Compare Less Than ( global 2-component vector of bool, operation at highp)
+0:59              vector swizzle ( temp highp 2-component vector of int)
+0:59                i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:59                  direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:59                    'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:59                    Constant:
+0:59                      1 (const int)
+0:59                  Constant:
+0:59                    1 (const int)
+0:59                Sequence
+0:59                  Constant:
+0:59                    0 (const int)
+0:59                  Constant:
+0:59                    1 (const int)
+0:59              Constant:
+0:59                0 (const int)
+0:59                0 (const int)
+0:59            'delta' ( temp highp uint)
+0:59            Constant:
+0:59              1 (const uint)
+0:60      move second child to first child ( temp highp 3-component vector of int)
+0:60        vector swizzle ( temp highp 3-component vector of int)
+0:60          i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:60            direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:60              'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:60              Constant:
+0:60                3 (const int)
+0:60            Constant:
+0:60              1 (const int)
+0:60          Sequence
+0:60            Constant:
+0:60              0 (const int)
+0:60            Constant:
+0:60              1 (const int)
+0:60            Constant:
+0:60              2 (const int)
+0:60        Convert bool to int ( temp highp 3-component vector of int)
+0:60          subgroupClusteredRotate ( global 3-component vector of bool, operation at highp)
+0:60            Compare Less Than ( global 3-component vector of bool, operation at highp)
+0:60              vector swizzle ( temp highp 3-component vector of int)
+0:60                i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:60                  direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:60                    'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:60                    Constant:
+0:60                      1 (const int)
+0:60                  Constant:
+0:60                    1 (const int)
+0:60                Sequence
+0:60                  Constant:
+0:60                    0 (const int)
+0:60                  Constant:
+0:60                    1 (const int)
+0:60                  Constant:
+0:60                    2 (const int)
+0:60              Constant:
+0:60                0 (const int)
+0:60                0 (const int)
+0:60                0 (const int)
+0:60            'delta' ( temp highp uint)
+0:60            Constant:
+0:60              1 (const uint)
+0:61      move second child to first child ( temp highp 4-component vector of int)
+0:61        i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:61          direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:61            'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:61            Constant:
+0:61              3 (const int)
+0:61          Constant:
+0:61            1 (const int)
+0:61        Convert bool to int ( temp highp 4-component vector of int)
+0:61          subgroupClusteredRotate ( global 4-component vector of bool, operation at highp)
+0:61            Compare Less Than ( global 4-component vector of bool, operation at highp)
+0:61              i4: direct index for structure (layout( column_major shared) buffer highp 4-component vector of int)
+0:61                direct index (layout( binding=0 column_major shared) temp block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:61                  'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+0:61                  Constant:
+0:61                    1 (const int)
+0:61                Constant:
+0:61                  1 (const int)
+0:61              Constant:
+0:61                0 (const int)
+0:61                0 (const int)
+0:61                0 (const int)
+0:61                0 (const int)
+0:61            'delta' ( temp highp uint)
+0:61            Constant:
+0:61              1 (const uint)
+0:?   Linker Objects
+0:?     'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize)
+0:?       8 (const uint)
+0:?       8 (const uint)
+0:?       1 (const uint)
+0:?     'ro' (layout( column_major shared) readonly buffer block{layout( column_major shared) readonly buffer highp uint delta})
+0:?     'data' (layout( binding=0 column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp 4-component vector of float f4, layout( column_major shared) buffer highp 4-component vector of int i4, layout( column_major shared) buffer highp 4-component vector of uint u4})
+
diff --git a/Test/baseResults/glsl.ext.textureShadowLod.frag.out b/Test/baseResults/glsl.ext.textureShadowLod.frag.out
new file mode 100644
index 0000000..b84183f
--- /dev/null
+++ b/Test/baseResults/glsl.ext.textureShadowLod.frag.out
@@ -0,0 +1,160 @@
+glsl.ext.textureShadowLod.frag
+ERROR: 0:24: 'texture(..., float bias)' : required extension not requested: GL_EXT_texture_shadow_lod
+ERROR: 0:25: 'texture(..., float bias)' : required extension not requested: GL_EXT_texture_shadow_lod
+ERROR: 0:26: 'textureOffset for sampler2DArrayShadow' : required extension not requested: GL_EXT_texture_shadow_lod
+ERROR: 0:27: 'textureLod(..., float lod)' : required extension not requested: GL_EXT_texture_shadow_lod
+ERROR: 0:28: 'textureLod(..., float lod)' : required extension not requested: GL_EXT_texture_shadow_lod
+ERROR: 0:29: 'textureLod(..., float lod)' : required extension not requested: GL_EXT_texture_shadow_lod
+ERROR: 0:30: 'textureLodOffset for sampler2DArrayShadow' : required extension not requested: GL_EXT_texture_shadow_lod
+ERROR: 7 compilation errors.  No code generated.
+
+
+Shader version: 450
+Requested GL_EXT_texture_shadow_lod
+ERROR: node is still EOpNull!
+0:11  Function Definition: pass( ( global void)
+0:11    Function Parameters: 
+0:12    Sequence
+0:12      move second child to first child ( temp float)
+0:12        'c' ( out float)
+0:12        texture ( global float)
+0:12          's2da' ( uniform sampler2DArrayShadow)
+0:12          'tc' ( smooth in 4-component vector of float)
+0:12          Constant:
+0:12            0.000000
+0:13      move second child to first child ( temp float)
+0:13        'c' ( out float)
+0:13        texture ( global float)
+0:13          'sca' ( uniform samplerCubeArrayShadow)
+0:13          'tc' ( smooth in 4-component vector of float)
+0:13          Constant:
+0:13            0.000000
+0:13          Constant:
+0:13            0.000000
+0:14      move second child to first child ( temp float)
+0:14        'c' ( out float)
+0:14        textureOffset ( global float)
+0:14          's2da' ( uniform sampler2DArrayShadow)
+0:14          'tc' ( smooth in 4-component vector of float)
+0:14          Constant:
+0:14            0 (const int)
+0:14            0 (const int)
+0:14          Constant:
+0:14            0.000000
+0:15      move second child to first child ( temp float)
+0:15        'c' ( out float)
+0:15        textureLod ( global float)
+0:15          's2da' ( uniform sampler2DArrayShadow)
+0:15          'tc' ( smooth in 4-component vector of float)
+0:15          Constant:
+0:15            0.000000
+0:16      move second child to first child ( temp float)
+0:16        'c' ( out float)
+0:16        textureLod ( global float)
+0:16          'sc' ( uniform samplerCubeShadow)
+0:16          'tc' ( smooth in 4-component vector of float)
+0:16          Constant:
+0:16            0.000000
+0:17      move second child to first child ( temp float)
+0:17        'c' ( out float)
+0:17        textureLod ( global float)
+0:17          'sca' ( uniform samplerCubeArrayShadow)
+0:17          'tc' ( smooth in 4-component vector of float)
+0:17          Constant:
+0:17            0.000000
+0:17          Constant:
+0:17            0.000000
+0:18      move second child to first child ( temp float)
+0:18        'c' ( out float)
+0:18        textureLodOffset ( global float)
+0:18          's2da' ( uniform sampler2DArrayShadow)
+0:18          'tc' ( smooth in 4-component vector of float)
+0:18          Constant:
+0:18            0.000000
+0:18          Constant:
+0:18            0 (const int)
+0:18            0 (const int)
+0:22  Function Definition: fail( ( global void)
+0:22    Function Parameters: 
+0:24    Sequence
+0:24      move second child to first child ( temp float)
+0:24        'c' ( out float)
+0:24        texture ( global float)
+0:24          's2da' ( uniform sampler2DArrayShadow)
+0:24          'tc' ( smooth in 4-component vector of float)
+0:24          Constant:
+0:24            0.000000
+0:25      move second child to first child ( temp float)
+0:25        'c' ( out float)
+0:25        texture ( global float)
+0:25          'sca' ( uniform samplerCubeArrayShadow)
+0:25          'tc' ( smooth in 4-component vector of float)
+0:25          Constant:
+0:25            0.000000
+0:25          Constant:
+0:25            0.000000
+0:26      move second child to first child ( temp float)
+0:26        'c' ( out float)
+0:26        textureOffset ( global float)
+0:26          's2da' ( uniform sampler2DArrayShadow)
+0:26          'tc' ( smooth in 4-component vector of float)
+0:26          Constant:
+0:26            0 (const int)
+0:26            0 (const int)
+0:26          Constant:
+0:26            0.000000
+0:27      move second child to first child ( temp float)
+0:27        'c' ( out float)
+0:27        textureLod ( global float)
+0:27          's2da' ( uniform sampler2DArrayShadow)
+0:27          'tc' ( smooth in 4-component vector of float)
+0:27          Constant:
+0:27            0.000000
+0:28      move second child to first child ( temp float)
+0:28        'c' ( out float)
+0:28        textureLod ( global float)
+0:28          'sc' ( uniform samplerCubeShadow)
+0:28          'tc' ( smooth in 4-component vector of float)
+0:28          Constant:
+0:28            0.000000
+0:29      move second child to first child ( temp float)
+0:29        'c' ( out float)
+0:29        textureLod ( global float)
+0:29          'sca' ( uniform samplerCubeArrayShadow)
+0:29          'tc' ( smooth in 4-component vector of float)
+0:29          Constant:
+0:29            0.000000
+0:29          Constant:
+0:29            0.000000
+0:30      move second child to first child ( temp float)
+0:30        'c' ( out float)
+0:30        textureLodOffset ( global float)
+0:30          's2da' ( uniform sampler2DArrayShadow)
+0:30          'tc' ( smooth in 4-component vector of float)
+0:30          Constant:
+0:30            0.000000
+0:30          Constant:
+0:30            0 (const int)
+0:30            0 (const int)
+0:?   Linker Objects
+0:?     's2da' ( uniform sampler2DArrayShadow)
+0:?     'sca' ( uniform samplerCubeArrayShadow)
+0:?     'sc' ( uniform samplerCubeShadow)
+0:?     'c' ( out float)
+0:?     'tc' ( smooth in 4-component vector of float)
+
+
+Linked fragment stage:
+
+ERROR: Linking fragment stage: Missing entry point: Each stage requires one entry point
+
+Shader version: 450
+Requested GL_EXT_texture_shadow_lod
+ERROR: node is still EOpNull!
+0:?   Linker Objects
+0:?     's2da' ( uniform sampler2DArrayShadow)
+0:?     'sca' ( uniform samplerCubeArrayShadow)
+0:?     'sc' ( uniform samplerCubeShadow)
+0:?     'c' ( out float)
+0:?     'tc' ( smooth in 4-component vector of float)
+
diff --git a/Test/baseResults/glsl.interpOp.error.frag.out b/Test/baseResults/glsl.interpOp.error.frag.out
new file mode 100644
index 0000000..36b66ae
--- /dev/null
+++ b/Test/baseResults/glsl.interpOp.error.frag.out
@@ -0,0 +1,501 @@
+glsl.interpOp.error.frag
+ERROR: 0:39: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element. Using the field of a named struct as an interpolant argument is not allowed (ES-only). 
+ERROR: 0:40: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element 
+ERROR: 0:41: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element. Using the field of a named struct as an interpolant argument is not allowed (ES-only). 
+ERROR: 0:54: 'interpolateAtSample' : first argument must be an interpolant, or interpolant-array element. Using the field of a named struct as an interpolant argument is not allowed (ES-only). 
+ERROR: 0:55: 'interpolateAtSample' : first argument must be an interpolant, or interpolant-array element 
+ERROR: 0:56: 'interpolateAtSample' : first argument must be an interpolant, or interpolant-array element. Using the field of a named struct as an interpolant argument is not allowed (ES-only). 
+ERROR: 0:69: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element. Using the field of a named struct as an interpolant argument is not allowed (ES-only). 
+ERROR: 0:70: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element 
+ERROR: 0:71: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element. Using the field of a named struct as an interpolant argument is not allowed (ES-only). 
+ERROR: 9 compilation errors.  No code generated.
+
+
+Shader version: 320
+ERROR: node is still EOpNull!
+0:27  Function Definition: main( ( global void)
+0:27    Function Parameters: 
+0:32    Sequence
+0:32      Sequence
+0:32        move second child to first child ( temp mediump 4-component vector of float)
+0:32          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:32          Construct vec4 ( temp mediump 4-component vector of float)
+0:32            interpolateAtCentroid ( global highp float)
+0:32              'v' (layout( location=2) smooth in highp float)
+0:33        move second child to first child ( temp mediump 4-component vector of float)
+0:33          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:33          Construct vec4 ( temp mediump 4-component vector of float)
+0:33            interpolateAtCentroid ( global highp float)
+0:33              x: direct index for structure ( in highp float)
+0:33                'anon@0' (layout( location=3) in block{ in highp float x,  in 1-element array of highp 4-component vector of float xyz,  in structure{ global highp 4-component vector of float s_v} s0})
+0:33                Constant:
+0:33                  0 (const uint)
+0:34        move second child to first child ( temp mediump 4-component vector of float)
+0:34          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:34          Construct vec4 ( temp mediump 4-component vector of float)
+0:34            interpolateAtCentroid ( global highp float)
+0:34              direct index (layout( location=7) smooth temp highp float)
+0:34                'z' (layout( location=7) smooth in 1-element array of highp float)
+0:34                Constant:
+0:34                  0 (const int)
+0:35        move second child to first child ( temp highp 4-component vector of float)
+0:35          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:35          interpolateAtCentroid ( global highp 4-component vector of float)
+0:35            'w' (layout( location=8) smooth in highp 4-component vector of float)
+0:36        move second child to first child ( temp highp 4-component vector of float)
+0:36          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:36          interpolateAtCentroid ( global highp 4-component vector of float)
+0:36            direct index ( temp highp 4-component vector of float)
+0:36              xyz: direct index for structure ( in 1-element array of highp 4-component vector of float)
+0:36                'anon@0' (layout( location=3) in block{ in highp float x,  in 1-element array of highp 4-component vector of float xyz,  in structure{ global highp 4-component vector of float s_v} s0})
+0:36                Constant:
+0:36                  1 (const uint)
+0:36              Constant:
+0:36                0 (const int)
+0:39        move second child to first child ( temp mediump 4-component vector of float)
+0:39          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:39          Construct vec4 ( temp mediump 4-component vector of float)
+0:39            interpolateAtCentroid ( global highp float)
+0:39              a: direct index for structure ( global highp float)
+0:39                'v_var' (layout( location=0) smooth in structure{ global highp float a,  global highp float b})
+0:39                Constant:
+0:39                  0 (const int)
+0:40        move second child to first child ( temp mediump 4-component vector of float)
+0:40          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:40          Construct vec4 ( temp mediump 4-component vector of float)
+0:40            interpolateAtCentroid ( global highp float)
+0:40              direct index ( temp highp float)
+0:40                'w' (layout( location=8) smooth in highp 4-component vector of float)
+0:40                Constant:
+0:40                  0 (const int)
+0:41        move second child to first child ( temp mediump 4-component vector of float)
+0:41          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:41          Construct vec4 ( temp mediump 4-component vector of float)
+0:41            interpolateAtCentroid ( global highp 4-component vector of float)
+0:41              s_v: direct index for structure ( global highp 4-component vector of float)
+0:41                s0: direct index for structure ( in structure{ global highp 4-component vector of float s_v})
+0:41                  'anon@0' (layout( location=3) in block{ in highp float x,  in 1-element array of highp 4-component vector of float xyz,  in structure{ global highp 4-component vector of float s_v} s0})
+0:41                  Constant:
+0:41                    2 (const uint)
+0:41                Constant:
+0:41                  0 (const int)
+0:47      Sequence
+0:47        move second child to first child ( temp mediump 4-component vector of float)
+0:47          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:47          Construct vec4 ( temp mediump 4-component vector of float)
+0:47            interpolateAtSample ( global highp float)
+0:47              'v' (layout( location=2) smooth in highp float)
+0:47              Constant:
+0:47                0 (const int)
+0:48        move second child to first child ( temp mediump 4-component vector of float)
+0:48          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:48          Construct vec4 ( temp mediump 4-component vector of float)
+0:48            interpolateAtSample ( global highp float)
+0:48              x: direct index for structure ( in highp float)
+0:48                'anon@0' (layout( location=3) in block{ in highp float x,  in 1-element array of highp 4-component vector of float xyz,  in structure{ global highp 4-component vector of float s_v} s0})
+0:48                Constant:
+0:48                  0 (const uint)
+0:48              Constant:
+0:48                0 (const int)
+0:49        move second child to first child ( temp mediump 4-component vector of float)
+0:49          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:49          Construct vec4 ( temp mediump 4-component vector of float)
+0:49            interpolateAtSample ( global highp float)
+0:49              direct index (layout( location=7) smooth temp highp float)
+0:49                'z' (layout( location=7) smooth in 1-element array of highp float)
+0:49                Constant:
+0:49                  0 (const int)
+0:49              Constant:
+0:49                0 (const int)
+0:50        move second child to first child ( temp highp 4-component vector of float)
+0:50          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:50          interpolateAtSample ( global highp 4-component vector of float)
+0:50            'w' (layout( location=8) smooth in highp 4-component vector of float)
+0:50            Constant:
+0:50              0 (const int)
+0:51        move second child to first child ( temp highp 4-component vector of float)
+0:51          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:51          interpolateAtSample ( global highp 4-component vector of float)
+0:51            direct index ( temp highp 4-component vector of float)
+0:51              xyz: direct index for structure ( in 1-element array of highp 4-component vector of float)
+0:51                'anon@0' (layout( location=3) in block{ in highp float x,  in 1-element array of highp 4-component vector of float xyz,  in structure{ global highp 4-component vector of float s_v} s0})
+0:51                Constant:
+0:51                  1 (const uint)
+0:51              Constant:
+0:51                0 (const int)
+0:51            Constant:
+0:51              0 (const int)
+0:54        move second child to first child ( temp mediump 4-component vector of float)
+0:54          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:54          Construct vec4 ( temp mediump 4-component vector of float)
+0:54            interpolateAtSample ( global highp float)
+0:54              a: direct index for structure ( global highp float)
+0:54                'v_var' (layout( location=0) smooth in structure{ global highp float a,  global highp float b})
+0:54                Constant:
+0:54                  0 (const int)
+0:54              Constant:
+0:54                0 (const int)
+0:55        move second child to first child ( temp mediump 4-component vector of float)
+0:55          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:55          Construct vec4 ( temp mediump 4-component vector of float)
+0:55            interpolateAtSample ( global highp float)
+0:55              direct index ( temp highp float)
+0:55                'w' (layout( location=8) smooth in highp 4-component vector of float)
+0:55                Constant:
+0:55                  0 (const int)
+0:55              Constant:
+0:55                0 (const int)
+0:56        move second child to first child ( temp mediump 4-component vector of float)
+0:56          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:56          Construct vec4 ( temp mediump 4-component vector of float)
+0:56            interpolateAtSample ( global highp 4-component vector of float)
+0:56              s_v: direct index for structure ( global highp 4-component vector of float)
+0:56                s0: direct index for structure ( in structure{ global highp 4-component vector of float s_v})
+0:56                  'anon@0' (layout( location=3) in block{ in highp float x,  in 1-element array of highp 4-component vector of float xyz,  in structure{ global highp 4-component vector of float s_v} s0})
+0:56                  Constant:
+0:56                    2 (const uint)
+0:56                Constant:
+0:56                  0 (const int)
+0:56              Constant:
+0:56                0 (const int)
+0:62      Sequence
+0:62        move second child to first child ( temp mediump 4-component vector of float)
+0:62          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:62          Construct vec4 ( temp mediump 4-component vector of float)
+0:62            interpolateAtOffset ( global highp float)
+0:62              'v' (layout( location=2) smooth in highp float)
+0:62              Constant:
+0:62                0.000000
+0:62                0.000000
+0:63        move second child to first child ( temp mediump 4-component vector of float)
+0:63          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:63          Construct vec4 ( temp mediump 4-component vector of float)
+0:63            interpolateAtOffset ( global highp float)
+0:63              x: direct index for structure ( in highp float)
+0:63                'anon@0' (layout( location=3) in block{ in highp float x,  in 1-element array of highp 4-component vector of float xyz,  in structure{ global highp 4-component vector of float s_v} s0})
+0:63                Constant:
+0:63                  0 (const uint)
+0:63              Constant:
+0:63                0.000000
+0:63                0.000000
+0:64        move second child to first child ( temp mediump 4-component vector of float)
+0:64          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:64          Construct vec4 ( temp mediump 4-component vector of float)
+0:64            interpolateAtOffset ( global highp float)
+0:64              direct index (layout( location=7) smooth temp highp float)
+0:64                'z' (layout( location=7) smooth in 1-element array of highp float)
+0:64                Constant:
+0:64                  0 (const int)
+0:64              Constant:
+0:64                0.000000
+0:64                0.000000
+0:65        move second child to first child ( temp highp 4-component vector of float)
+0:65          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:65          interpolateAtOffset ( global highp 4-component vector of float)
+0:65            'w' (layout( location=8) smooth in highp 4-component vector of float)
+0:65            Constant:
+0:65              0.000000
+0:65              0.000000
+0:66        move second child to first child ( temp highp 4-component vector of float)
+0:66          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:66          interpolateAtOffset ( global highp 4-component vector of float)
+0:66            direct index ( temp highp 4-component vector of float)
+0:66              xyz: direct index for structure ( in 1-element array of highp 4-component vector of float)
+0:66                'anon@0' (layout( location=3) in block{ in highp float x,  in 1-element array of highp 4-component vector of float xyz,  in structure{ global highp 4-component vector of float s_v} s0})
+0:66                Constant:
+0:66                  1 (const uint)
+0:66              Constant:
+0:66                0 (const int)
+0:66            Constant:
+0:66              0.000000
+0:66              0.000000
+0:69        move second child to first child ( temp mediump 4-component vector of float)
+0:69          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:69          Construct vec4 ( temp mediump 4-component vector of float)
+0:69            interpolateAtOffset ( global highp float)
+0:69              a: direct index for structure ( global highp float)
+0:69                'v_var' (layout( location=0) smooth in structure{ global highp float a,  global highp float b})
+0:69                Constant:
+0:69                  0 (const int)
+0:69              Constant:
+0:69                0.000000
+0:69                0.000000
+0:70        move second child to first child ( temp mediump 4-component vector of float)
+0:70          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:70          Construct vec4 ( temp mediump 4-component vector of float)
+0:70            interpolateAtOffset ( global highp float)
+0:70              direct index ( temp highp float)
+0:70                'w' (layout( location=8) smooth in highp 4-component vector of float)
+0:70                Constant:
+0:70                  0 (const int)
+0:70              Constant:
+0:70                0.000000
+0:70                0.000000
+0:71        move second child to first child ( temp mediump 4-component vector of float)
+0:71          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:71          Construct vec4 ( temp mediump 4-component vector of float)
+0:71            interpolateAtOffset ( global highp 4-component vector of float)
+0:71              s_v: direct index for structure ( global highp 4-component vector of float)
+0:71                s0: direct index for structure ( in structure{ global highp 4-component vector of float s_v})
+0:71                  'anon@0' (layout( location=3) in block{ in highp float x,  in 1-element array of highp 4-component vector of float xyz,  in structure{ global highp 4-component vector of float s_v} s0})
+0:71                  Constant:
+0:71                    2 (const uint)
+0:71                Constant:
+0:71                  0 (const int)
+0:71              Constant:
+0:71                0.000000
+0:71                0.000000
+0:?   Linker Objects
+0:?     'v_var' (layout( location=0) smooth in structure{ global highp float a,  global highp float b})
+0:?     'v' (layout( location=2) smooth in highp float)
+0:?     'anon@0' (layout( location=3) in block{ in highp float x,  in 1-element array of highp 4-component vector of float xyz,  in structure{ global highp 4-component vector of float s_v} s0})
+0:?     'z' (layout( location=7) smooth in 1-element array of highp float)
+0:?     'w' (layout( location=8) smooth in highp 4-component vector of float)
+0:?     'fragColor' (layout( location=0) out mediump 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 320
+ERROR: node is still EOpNull!
+0:27  Function Definition: main( ( global void)
+0:27    Function Parameters: 
+0:32    Sequence
+0:32      Sequence
+0:32        move second child to first child ( temp mediump 4-component vector of float)
+0:32          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:32          Construct vec4 ( temp mediump 4-component vector of float)
+0:32            interpolateAtCentroid ( global highp float)
+0:32              'v' (layout( location=2) smooth in highp float)
+0:33        move second child to first child ( temp mediump 4-component vector of float)
+0:33          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:33          Construct vec4 ( temp mediump 4-component vector of float)
+0:33            interpolateAtCentroid ( global highp float)
+0:33              x: direct index for structure ( in highp float)
+0:33                'anon@0' (layout( location=3) in block{ in highp float x,  in 1-element array of highp 4-component vector of float xyz,  in structure{ global highp 4-component vector of float s_v} s0})
+0:33                Constant:
+0:33                  0 (const uint)
+0:34        move second child to first child ( temp mediump 4-component vector of float)
+0:34          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:34          Construct vec4 ( temp mediump 4-component vector of float)
+0:34            interpolateAtCentroid ( global highp float)
+0:34              direct index (layout( location=7) smooth temp highp float)
+0:34                'z' (layout( location=7) smooth in 1-element array of highp float)
+0:34                Constant:
+0:34                  0 (const int)
+0:35        move second child to first child ( temp highp 4-component vector of float)
+0:35          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:35          interpolateAtCentroid ( global highp 4-component vector of float)
+0:35            'w' (layout( location=8) smooth in highp 4-component vector of float)
+0:36        move second child to first child ( temp highp 4-component vector of float)
+0:36          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:36          interpolateAtCentroid ( global highp 4-component vector of float)
+0:36            direct index ( temp highp 4-component vector of float)
+0:36              xyz: direct index for structure ( in 1-element array of highp 4-component vector of float)
+0:36                'anon@0' (layout( location=3) in block{ in highp float x,  in 1-element array of highp 4-component vector of float xyz,  in structure{ global highp 4-component vector of float s_v} s0})
+0:36                Constant:
+0:36                  1 (const uint)
+0:36              Constant:
+0:36                0 (const int)
+0:39        move second child to first child ( temp mediump 4-component vector of float)
+0:39          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:39          Construct vec4 ( temp mediump 4-component vector of float)
+0:39            interpolateAtCentroid ( global highp float)
+0:39              a: direct index for structure ( global highp float)
+0:39                'v_var' (layout( location=0) smooth in structure{ global highp float a,  global highp float b})
+0:39                Constant:
+0:39                  0 (const int)
+0:40        move second child to first child ( temp mediump 4-component vector of float)
+0:40          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:40          Construct vec4 ( temp mediump 4-component vector of float)
+0:40            interpolateAtCentroid ( global highp float)
+0:40              direct index ( temp highp float)
+0:40                'w' (layout( location=8) smooth in highp 4-component vector of float)
+0:40                Constant:
+0:40                  0 (const int)
+0:41        move second child to first child ( temp mediump 4-component vector of float)
+0:41          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:41          Construct vec4 ( temp mediump 4-component vector of float)
+0:41            interpolateAtCentroid ( global highp 4-component vector of float)
+0:41              s_v: direct index for structure ( global highp 4-component vector of float)
+0:41                s0: direct index for structure ( in structure{ global highp 4-component vector of float s_v})
+0:41                  'anon@0' (layout( location=3) in block{ in highp float x,  in 1-element array of highp 4-component vector of float xyz,  in structure{ global highp 4-component vector of float s_v} s0})
+0:41                  Constant:
+0:41                    2 (const uint)
+0:41                Constant:
+0:41                  0 (const int)
+0:47      Sequence
+0:47        move second child to first child ( temp mediump 4-component vector of float)
+0:47          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:47          Construct vec4 ( temp mediump 4-component vector of float)
+0:47            interpolateAtSample ( global highp float)
+0:47              'v' (layout( location=2) smooth in highp float)
+0:47              Constant:
+0:47                0 (const int)
+0:48        move second child to first child ( temp mediump 4-component vector of float)
+0:48          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:48          Construct vec4 ( temp mediump 4-component vector of float)
+0:48            interpolateAtSample ( global highp float)
+0:48              x: direct index for structure ( in highp float)
+0:48                'anon@0' (layout( location=3) in block{ in highp float x,  in 1-element array of highp 4-component vector of float xyz,  in structure{ global highp 4-component vector of float s_v} s0})
+0:48                Constant:
+0:48                  0 (const uint)
+0:48              Constant:
+0:48                0 (const int)
+0:49        move second child to first child ( temp mediump 4-component vector of float)
+0:49          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:49          Construct vec4 ( temp mediump 4-component vector of float)
+0:49            interpolateAtSample ( global highp float)
+0:49              direct index (layout( location=7) smooth temp highp float)
+0:49                'z' (layout( location=7) smooth in 1-element array of highp float)
+0:49                Constant:
+0:49                  0 (const int)
+0:49              Constant:
+0:49                0 (const int)
+0:50        move second child to first child ( temp highp 4-component vector of float)
+0:50          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:50          interpolateAtSample ( global highp 4-component vector of float)
+0:50            'w' (layout( location=8) smooth in highp 4-component vector of float)
+0:50            Constant:
+0:50              0 (const int)
+0:51        move second child to first child ( temp highp 4-component vector of float)
+0:51          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:51          interpolateAtSample ( global highp 4-component vector of float)
+0:51            direct index ( temp highp 4-component vector of float)
+0:51              xyz: direct index for structure ( in 1-element array of highp 4-component vector of float)
+0:51                'anon@0' (layout( location=3) in block{ in highp float x,  in 1-element array of highp 4-component vector of float xyz,  in structure{ global highp 4-component vector of float s_v} s0})
+0:51                Constant:
+0:51                  1 (const uint)
+0:51              Constant:
+0:51                0 (const int)
+0:51            Constant:
+0:51              0 (const int)
+0:54        move second child to first child ( temp mediump 4-component vector of float)
+0:54          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:54          Construct vec4 ( temp mediump 4-component vector of float)
+0:54            interpolateAtSample ( global highp float)
+0:54              a: direct index for structure ( global highp float)
+0:54                'v_var' (layout( location=0) smooth in structure{ global highp float a,  global highp float b})
+0:54                Constant:
+0:54                  0 (const int)
+0:54              Constant:
+0:54                0 (const int)
+0:55        move second child to first child ( temp mediump 4-component vector of float)
+0:55          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:55          Construct vec4 ( temp mediump 4-component vector of float)
+0:55            interpolateAtSample ( global highp float)
+0:55              direct index ( temp highp float)
+0:55                'w' (layout( location=8) smooth in highp 4-component vector of float)
+0:55                Constant:
+0:55                  0 (const int)
+0:55              Constant:
+0:55                0 (const int)
+0:56        move second child to first child ( temp mediump 4-component vector of float)
+0:56          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:56          Construct vec4 ( temp mediump 4-component vector of float)
+0:56            interpolateAtSample ( global highp 4-component vector of float)
+0:56              s_v: direct index for structure ( global highp 4-component vector of float)
+0:56                s0: direct index for structure ( in structure{ global highp 4-component vector of float s_v})
+0:56                  'anon@0' (layout( location=3) in block{ in highp float x,  in 1-element array of highp 4-component vector of float xyz,  in structure{ global highp 4-component vector of float s_v} s0})
+0:56                  Constant:
+0:56                    2 (const uint)
+0:56                Constant:
+0:56                  0 (const int)
+0:56              Constant:
+0:56                0 (const int)
+0:62      Sequence
+0:62        move second child to first child ( temp mediump 4-component vector of float)
+0:62          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:62          Construct vec4 ( temp mediump 4-component vector of float)
+0:62            interpolateAtOffset ( global highp float)
+0:62              'v' (layout( location=2) smooth in highp float)
+0:62              Constant:
+0:62                0.000000
+0:62                0.000000
+0:63        move second child to first child ( temp mediump 4-component vector of float)
+0:63          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:63          Construct vec4 ( temp mediump 4-component vector of float)
+0:63            interpolateAtOffset ( global highp float)
+0:63              x: direct index for structure ( in highp float)
+0:63                'anon@0' (layout( location=3) in block{ in highp float x,  in 1-element array of highp 4-component vector of float xyz,  in structure{ global highp 4-component vector of float s_v} s0})
+0:63                Constant:
+0:63                  0 (const uint)
+0:63              Constant:
+0:63                0.000000
+0:63                0.000000
+0:64        move second child to first child ( temp mediump 4-component vector of float)
+0:64          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:64          Construct vec4 ( temp mediump 4-component vector of float)
+0:64            interpolateAtOffset ( global highp float)
+0:64              direct index (layout( location=7) smooth temp highp float)
+0:64                'z' (layout( location=7) smooth in 1-element array of highp float)
+0:64                Constant:
+0:64                  0 (const int)
+0:64              Constant:
+0:64                0.000000
+0:64                0.000000
+0:65        move second child to first child ( temp highp 4-component vector of float)
+0:65          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:65          interpolateAtOffset ( global highp 4-component vector of float)
+0:65            'w' (layout( location=8) smooth in highp 4-component vector of float)
+0:65            Constant:
+0:65              0.000000
+0:65              0.000000
+0:66        move second child to first child ( temp highp 4-component vector of float)
+0:66          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:66          interpolateAtOffset ( global highp 4-component vector of float)
+0:66            direct index ( temp highp 4-component vector of float)
+0:66              xyz: direct index for structure ( in 1-element array of highp 4-component vector of float)
+0:66                'anon@0' (layout( location=3) in block{ in highp float x,  in 1-element array of highp 4-component vector of float xyz,  in structure{ global highp 4-component vector of float s_v} s0})
+0:66                Constant:
+0:66                  1 (const uint)
+0:66              Constant:
+0:66                0 (const int)
+0:66            Constant:
+0:66              0.000000
+0:66              0.000000
+0:69        move second child to first child ( temp mediump 4-component vector of float)
+0:69          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:69          Construct vec4 ( temp mediump 4-component vector of float)
+0:69            interpolateAtOffset ( global highp float)
+0:69              a: direct index for structure ( global highp float)
+0:69                'v_var' (layout( location=0) smooth in structure{ global highp float a,  global highp float b})
+0:69                Constant:
+0:69                  0 (const int)
+0:69              Constant:
+0:69                0.000000
+0:69                0.000000
+0:70        move second child to first child ( temp mediump 4-component vector of float)
+0:70          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:70          Construct vec4 ( temp mediump 4-component vector of float)
+0:70            interpolateAtOffset ( global highp float)
+0:70              direct index ( temp highp float)
+0:70                'w' (layout( location=8) smooth in highp 4-component vector of float)
+0:70                Constant:
+0:70                  0 (const int)
+0:70              Constant:
+0:70                0.000000
+0:70                0.000000
+0:71        move second child to first child ( temp mediump 4-component vector of float)
+0:71          'fragColor' (layout( location=0) out mediump 4-component vector of float)
+0:71          Construct vec4 ( temp mediump 4-component vector of float)
+0:71            interpolateAtOffset ( global highp 4-component vector of float)
+0:71              s_v: direct index for structure ( global highp 4-component vector of float)
+0:71                s0: direct index for structure ( in structure{ global highp 4-component vector of float s_v})
+0:71                  'anon@0' (layout( location=3) in block{ in highp float x,  in 1-element array of highp 4-component vector of float xyz,  in structure{ global highp 4-component vector of float s_v} s0})
+0:71                  Constant:
+0:71                    2 (const uint)
+0:71                Constant:
+0:71                  0 (const int)
+0:71              Constant:
+0:71                0.000000
+0:71                0.000000
+0:?   Linker Objects
+0:?     'v_var' (layout( location=0) smooth in structure{ global highp float a,  global highp float b})
+0:?     'v' (layout( location=2) smooth in highp float)
+0:?     'anon@0' (layout( location=3) in block{ in highp float x,  in 1-element array of highp 4-component vector of float xyz,  in structure{ global highp 4-component vector of float s_v} s0})
+0:?     'z' (layout( location=7) smooth in 1-element array of highp float)
+0:?     'w' (layout( location=8) smooth in highp 4-component vector of float)
+0:?     'fragColor' (layout( location=0) out mediump 4-component vector of float)
+
diff --git a/Test/baseResults/hlsl.buffer_ref_parameter.comp.out b/Test/baseResults/hlsl.buffer_ref_parameter.comp.out
new file mode 100644
index 0000000..4ddf6f7
--- /dev/null
+++ b/Test/baseResults/hlsl.buffer_ref_parameter.comp.out
@@ -0,0 +1,390 @@
+hlsl.buffer_ref_parameter.comp
+Shader version: 500
+local_size = (64, 1, 1)
+0:? Sequence
+0:4  Function Definition: pull_position(block--u1[0]1;u1; ( temp 3-component vector of float)
+0:4    Function Parameters: 
+0:4      'buffer_position' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
+0:4      'vertex_id' ( in uint)
+0:?     Sequence
+0:5      Branch: Return with expression
+0:?         intBitsToFloat ( temp 3-component vector of float)
+0:?           Sequence
+0:5            move second child to first child ( temp int)
+0:5              'byteAddrTemp' ( temp int)
+0:5              right-shift ( temp int)
+0:5                component-wise multiply ( temp uint)
+0:5                  component-wise multiply ( temp uint)
+0:5                    'vertex_id' ( in uint)
+0:5                    Constant:
+0:5                      3 (const uint)
+0:5                  Constant:
+0:5                    4 (const uint)
+0:5                Constant:
+0:5                  2 (const int)
+0:?             Construct vec3 ( temp 3-component vector of uint)
+0:5              indirect index ( temp uint)
+0:5                @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
+0:5                  'buffer_position' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
+0:5                  Constant:
+0:5                    0 (const uint)
+0:5                'byteAddrTemp' ( temp int)
+0:5              indirect index ( temp uint)
+0:5                @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
+0:5                  'buffer_position' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
+0:5                  Constant:
+0:5                    0 (const uint)
+0:5                add ( temp int)
+0:5                  'byteAddrTemp' ( temp int)
+0:5                  Constant:
+0:5                    1 (const int)
+0:5              indirect index ( temp uint)
+0:5                @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
+0:5                  'buffer_position' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
+0:5                  Constant:
+0:5                    0 (const uint)
+0:5                add ( temp int)
+0:5                  'byteAddrTemp' ( temp int)
+0:5                  Constant:
+0:5                    2 (const int)
+0:9  Function Definition: @main(u1; ( temp void)
+0:9    Function Parameters: 
+0:9      'gi' ( in uint)
+0:?     Sequence
+0:10      Sequence
+0:10        move second child to first child ( temp 3-component vector of float)
+0:10          'position_ms' ( temp 3-component vector of float)
+0:10          Function Call: pull_position(block--u1[0]1;u1; ( temp 3-component vector of float)
+0:10            'buffer_position_ms' (layout( set=0 binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
+0:10            'gi' ( in uint)
+0:?       Sequence
+0:12        move second child to first child ( temp int)
+0:12          'byteAddrTemp' ( temp int)
+0:12          right-shift ( temp int)
+0:12            Constant:
+0:12              0 (const int)
+0:12            Constant:
+0:12              2 (const int)
+0:12        move second child to first child ( temp uint)
+0:12          indirect index (layout( row_major std430) buffer uint)
+0:12            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
+0:12              'r' (layout( set=0 binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
+0:12              Constant:
+0:12                0 (const uint)
+0:12            'byteAddrTemp' ( temp int)
+0:12          direct index ( temp uint)
+0:12            floatBitsToUint ( temp 3-component vector of uint)
+0:12              'position_ms' ( temp 3-component vector of float)
+0:12            Constant:
+0:12              0 (const int)
+0:12        move second child to first child ( temp uint)
+0:12          indirect index (layout( row_major std430) buffer uint)
+0:12            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
+0:12              'r' (layout( set=0 binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
+0:12              Constant:
+0:12                0 (const uint)
+0:12            add ( temp int)
+0:12              'byteAddrTemp' ( temp int)
+0:12              Constant:
+0:12                1 (const int)
+0:12          direct index ( temp uint)
+0:12            floatBitsToUint ( temp 3-component vector of uint)
+0:12              'position_ms' ( temp 3-component vector of float)
+0:12            Constant:
+0:12              1 (const int)
+0:12        move second child to first child ( temp uint)
+0:12          indirect index (layout( row_major std430) buffer uint)
+0:12            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
+0:12              'r' (layout( set=0 binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
+0:12              Constant:
+0:12                0 (const uint)
+0:12            add ( temp int)
+0:12              'byteAddrTemp' ( temp int)
+0:12              Constant:
+0:12                2 (const int)
+0:12          direct index ( temp uint)
+0:12            floatBitsToUint ( temp 3-component vector of uint)
+0:12              'position_ms' ( temp 3-component vector of float)
+0:12            Constant:
+0:12              2 (const int)
+0:9  Function Definition: main( ( temp void)
+0:9    Function Parameters: 
+0:?     Sequence
+0:9      move second child to first child ( temp uint)
+0:?         'gi' ( temp uint)
+0:?         'gi' ( in uint LocalInvocationIndex)
+0:9      Function Call: @main(u1; ( temp void)
+0:?         'gi' ( temp uint)
+0:?   Linker Objects
+0:?     'buffer_position_ms' (layout( set=0 binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
+0:?     'r' (layout( set=0 binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
+0:?     'gi' ( in uint LocalInvocationIndex)
+
+
+Linked compute stage:
+
+
+Shader version: 500
+local_size = (64, 1, 1)
+0:? Sequence
+0:4  Function Definition: pull_position(block--u1[0]1;u1; ( temp 3-component vector of float)
+0:4    Function Parameters: 
+0:4      'buffer_position' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
+0:4      'vertex_id' ( in uint)
+0:?     Sequence
+0:5      Branch: Return with expression
+0:?         intBitsToFloat ( temp 3-component vector of float)
+0:?           Sequence
+0:5            move second child to first child ( temp int)
+0:5              'byteAddrTemp' ( temp int)
+0:5              right-shift ( temp int)
+0:5                component-wise multiply ( temp uint)
+0:5                  component-wise multiply ( temp uint)
+0:5                    'vertex_id' ( in uint)
+0:5                    Constant:
+0:5                      3 (const uint)
+0:5                  Constant:
+0:5                    4 (const uint)
+0:5                Constant:
+0:5                  2 (const int)
+0:?             Construct vec3 ( temp 3-component vector of uint)
+0:5              indirect index ( temp uint)
+0:5                @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
+0:5                  'buffer_position' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
+0:5                  Constant:
+0:5                    0 (const uint)
+0:5                'byteAddrTemp' ( temp int)
+0:5              indirect index ( temp uint)
+0:5                @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
+0:5                  'buffer_position' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
+0:5                  Constant:
+0:5                    0 (const uint)
+0:5                add ( temp int)
+0:5                  'byteAddrTemp' ( temp int)
+0:5                  Constant:
+0:5                    1 (const int)
+0:5              indirect index ( temp uint)
+0:5                @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
+0:5                  'buffer_position' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
+0:5                  Constant:
+0:5                    0 (const uint)
+0:5                add ( temp int)
+0:5                  'byteAddrTemp' ( temp int)
+0:5                  Constant:
+0:5                    2 (const int)
+0:9  Function Definition: @main(u1; ( temp void)
+0:9    Function Parameters: 
+0:9      'gi' ( in uint)
+0:?     Sequence
+0:10      Sequence
+0:10        move second child to first child ( temp 3-component vector of float)
+0:10          'position_ms' ( temp 3-component vector of float)
+0:10          Function Call: pull_position(block--u1[0]1;u1; ( temp 3-component vector of float)
+0:10            'buffer_position_ms' (layout( set=0 binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
+0:10            'gi' ( in uint)
+0:?       Sequence
+0:12        move second child to first child ( temp int)
+0:12          'byteAddrTemp' ( temp int)
+0:12          right-shift ( temp int)
+0:12            Constant:
+0:12              0 (const int)
+0:12            Constant:
+0:12              2 (const int)
+0:12        move second child to first child ( temp uint)
+0:12          indirect index (layout( row_major std430) buffer uint)
+0:12            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
+0:12              'r' (layout( set=0 binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
+0:12              Constant:
+0:12                0 (const uint)
+0:12            'byteAddrTemp' ( temp int)
+0:12          direct index ( temp uint)
+0:12            floatBitsToUint ( temp 3-component vector of uint)
+0:12              'position_ms' ( temp 3-component vector of float)
+0:12            Constant:
+0:12              0 (const int)
+0:12        move second child to first child ( temp uint)
+0:12          indirect index (layout( row_major std430) buffer uint)
+0:12            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
+0:12              'r' (layout( set=0 binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
+0:12              Constant:
+0:12                0 (const uint)
+0:12            add ( temp int)
+0:12              'byteAddrTemp' ( temp int)
+0:12              Constant:
+0:12                1 (const int)
+0:12          direct index ( temp uint)
+0:12            floatBitsToUint ( temp 3-component vector of uint)
+0:12              'position_ms' ( temp 3-component vector of float)
+0:12            Constant:
+0:12              1 (const int)
+0:12        move second child to first child ( temp uint)
+0:12          indirect index (layout( row_major std430) buffer uint)
+0:12            @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint)
+0:12              'r' (layout( set=0 binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
+0:12              Constant:
+0:12                0 (const uint)
+0:12            add ( temp int)
+0:12              'byteAddrTemp' ( temp int)
+0:12              Constant:
+0:12                2 (const int)
+0:12          direct index ( temp uint)
+0:12            floatBitsToUint ( temp 3-component vector of uint)
+0:12              'position_ms' ( temp 3-component vector of float)
+0:12            Constant:
+0:12              2 (const int)
+0:9  Function Definition: main( ( temp void)
+0:9    Function Parameters: 
+0:?     Sequence
+0:9      move second child to first child ( temp uint)
+0:?         'gi' ( temp uint)
+0:?         'gi' ( in uint LocalInvocationIndex)
+0:9      Function Call: @main(u1; ( temp void)
+0:?         'gi' ( temp uint)
+0:?   Linker Objects
+0:?     'buffer_position_ms' (layout( set=0 binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
+0:?     'r' (layout( set=0 binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
+0:?     'gi' ( in uint LocalInvocationIndex)
+
+// Module Version 10400
+// Generated by (magic number): 8000b
+// Id's are bound by 90
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint GLCompute 4  "main" 53 62 85
+                              ExecutionMode 4 LocalSize 64 1 1
+                              Source HLSL 500
+                              Name 4  "main"
+                              Name 8  ""
+                              MemberName 8 0  "@data"
+                              Name 16  "pull_position(block--u1[0]1;u1;"
+                              Name 14  "buffer_position"
+                              Name 15  "vertex_id"
+                              Name 20  "@main(u1;"
+                              Name 19  "gi"
+                              Name 24  "byteAddrTemp"
+                              Name 52  "position_ms"
+                              Name 53  "buffer_position_ms"
+                              Name 54  "param"
+                              Name 57  "byteAddrTemp"
+                              Name 60  "r"
+                              MemberName 60(r) 0  "@data"
+                              Name 62  "r"
+                              Name 83  "gi"
+                              Name 85  "gi"
+                              Name 87  "param"
+                              Decorate 7 ArrayStride 4
+                              MemberDecorate 8 0 NonWritable
+                              MemberDecorate 8 0 Offset 0
+                              Decorate 8 Block
+                              Decorate 14(buffer_position) NonWritable
+                              Decorate 53(buffer_position_ms) DescriptorSet 0
+                              Decorate 53(buffer_position_ms) Binding 0
+                              Decorate 59 ArrayStride 4
+                              MemberDecorate 60(r) 0 Offset 0
+                              Decorate 60(r) Block
+                              Decorate 62(r) DescriptorSet 0
+                              Decorate 62(r) Binding 1
+                              Decorate 85(gi) BuiltIn LocalInvocationIndex
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 0
+               7:             TypeRuntimeArray 6(int)
+               8:             TypeStruct 7
+               9:             TypePointer StorageBuffer 8(struct)
+              10:             TypePointer Function 6(int)
+              11:             TypeFloat 32
+              12:             TypeVector 11(float) 3
+              13:             TypeFunction 12(fvec3) 9(ptr) 10(ptr)
+              18:             TypeFunction 2 10(ptr)
+              22:             TypeInt 32 1
+              23:             TypePointer Function 22(int)
+              26:      6(int) Constant 3
+              28:      6(int) Constant 4
+              30:     22(int) Constant 2
+              32:     22(int) Constant 0
+              34:             TypePointer StorageBuffer 6(int)
+              38:     22(int) Constant 1
+              46:             TypeVector 6(int) 3
+              51:             TypePointer Function 12(fvec3)
+53(buffer_position_ms):      9(ptr) Variable StorageBuffer
+              59:             TypeRuntimeArray 6(int)
+           60(r):             TypeStruct 59
+              61:             TypePointer StorageBuffer 60(r)
+           62(r):     61(ptr) Variable StorageBuffer
+              66:      6(int) Constant 0
+              73:      6(int) Constant 1
+              80:      6(int) Constant 2
+              84:             TypePointer Input 6(int)
+          85(gi):     84(ptr) Variable Input
+         4(main):           2 Function None 3
+               5:             Label
+          83(gi):     10(ptr) Variable Function
+       87(param):     10(ptr) Variable Function
+              86:      6(int) Load 85(gi)
+                              Store 83(gi) 86
+              88:      6(int) Load 83(gi)
+                              Store 87(param) 88
+              89:           2 FunctionCall 20(@main(u1;) 87(param)
+                              Return
+                              FunctionEnd
+16(pull_position(block--u1[0]1;u1;):   12(fvec3) Function None 13
+14(buffer_position):      9(ptr) FunctionParameter
+   15(vertex_id):     10(ptr) FunctionParameter
+              17:             Label
+24(byteAddrTemp):     23(ptr) Variable Function
+              25:      6(int) Load 15(vertex_id)
+              27:      6(int) IMul 25 26
+              29:      6(int) IMul 27 28
+              31:     22(int) ShiftRightLogical 29 30
+                              Store 24(byteAddrTemp) 31
+              33:     22(int) Load 24(byteAddrTemp)
+              35:     34(ptr) AccessChain 14(buffer_position) 32 33
+              36:      6(int) Load 35
+              37:     22(int) Load 24(byteAddrTemp)
+              39:     22(int) IAdd 37 38
+              40:     34(ptr) AccessChain 14(buffer_position) 32 39
+              41:      6(int) Load 40
+              42:     22(int) Load 24(byteAddrTemp)
+              43:     22(int) IAdd 42 30
+              44:     34(ptr) AccessChain 14(buffer_position) 32 43
+              45:      6(int) Load 44
+              47:   46(ivec3) CompositeConstruct 36 41 45
+              48:   12(fvec3) Bitcast 47
+                              ReturnValue 48
+                              FunctionEnd
+   20(@main(u1;):           2 Function None 18
+          19(gi):     10(ptr) FunctionParameter
+              21:             Label
+ 52(position_ms):     51(ptr) Variable Function
+       54(param):     10(ptr) Variable Function
+57(byteAddrTemp):     23(ptr) Variable Function
+              55:      6(int) Load 19(gi)
+                              Store 54(param) 55
+              56:   12(fvec3) FunctionCall 16(pull_position(block--u1[0]1;u1;) 53(buffer_position_ms) 54(param)
+                              Store 52(position_ms) 56
+              58:     22(int) ShiftRightArithmetic 32 30
+                              Store 57(byteAddrTemp) 58
+              63:     22(int) Load 57(byteAddrTemp)
+              64:   12(fvec3) Load 52(position_ms)
+              65:   46(ivec3) Bitcast 64
+              67:      6(int) CompositeExtract 65 0
+              68:     34(ptr) AccessChain 62(r) 32 63
+                              Store 68 67
+              69:     22(int) Load 57(byteAddrTemp)
+              70:     22(int) IAdd 69 38
+              71:   12(fvec3) Load 52(position_ms)
+              72:   46(ivec3) Bitcast 71
+              74:      6(int) CompositeExtract 72 1
+              75:     34(ptr) AccessChain 62(r) 32 70
+                              Store 75 74
+              76:     22(int) Load 57(byteAddrTemp)
+              77:     22(int) IAdd 76 30
+              78:   12(fvec3) Load 52(position_ms)
+              79:   46(ivec3) Bitcast 78
+              81:      6(int) CompositeExtract 79 2
+              82:     34(ptr) AccessChain 62(r) 32 77
+                              Store 82 81
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/hlsl.multiView.frag.out b/Test/baseResults/hlsl.multiView.frag.out
new file mode 100644
index 0000000..32e669c
--- /dev/null
+++ b/Test/baseResults/hlsl.multiView.frag.out
@@ -0,0 +1,121 @@
+hlsl.multiView.frag
+Shader version: 500
+gl_FragCoord origin is upper left
+0:? Sequence
+0:3  Function Definition: @main(u1; ( temp 4-component vector of float)
+0:3    Function Parameters: 
+0:3      'ViewIndex' ( in uint)
+0:?     Sequence
+0:4      Branch: Return with expression
+0:4        Construct vec4 ( temp 4-component vector of float)
+0:4          Convert uint to float ( temp float)
+0:4            'ViewIndex' ( in uint)
+0:4          Constant:
+0:4            0.000000
+0:4          Constant:
+0:4            0.000000
+0:4          Constant:
+0:4            0.000000
+0:3  Function Definition: main( ( temp void)
+0:3    Function Parameters: 
+0:?     Sequence
+0:3      move second child to first child ( temp uint)
+0:?         'ViewIndex' ( temp uint)
+0:?         'ViewIndex' ( flat in uint ViewIndex)
+0:3      move second child to first child ( temp 4-component vector of float)
+0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
+0:3        Function Call: @main(u1; ( temp 4-component vector of float)
+0:?           'ViewIndex' ( temp uint)
+0:?   Linker Objects
+0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
+0:?     'ViewIndex' ( flat in uint ViewIndex)
+
+
+Linked fragment stage:
+
+
+Shader version: 500
+gl_FragCoord origin is upper left
+0:? Sequence
+0:3  Function Definition: @main(u1; ( temp 4-component vector of float)
+0:3    Function Parameters: 
+0:3      'ViewIndex' ( in uint)
+0:?     Sequence
+0:4      Branch: Return with expression
+0:4        Construct vec4 ( temp 4-component vector of float)
+0:4          Convert uint to float ( temp float)
+0:4            'ViewIndex' ( in uint)
+0:4          Constant:
+0:4            0.000000
+0:4          Constant:
+0:4            0.000000
+0:4          Constant:
+0:4            0.000000
+0:3  Function Definition: main( ( temp void)
+0:3    Function Parameters: 
+0:?     Sequence
+0:3      move second child to first child ( temp uint)
+0:?         'ViewIndex' ( temp uint)
+0:?         'ViewIndex' ( flat in uint ViewIndex)
+0:3      move second child to first child ( temp 4-component vector of float)
+0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
+0:3        Function Call: @main(u1; ( temp 4-component vector of float)
+0:?           'ViewIndex' ( temp uint)
+0:?   Linker Objects
+0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
+0:?     'ViewIndex' ( flat in uint ViewIndex)
+
+// Module Version 10000
+// Generated by (magic number): 8000b
+// Id's are bound by 29
+
+                              Capability Shader
+                              Capability MultiView
+                              Extension  "SPV_KHR_multiview"
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 22 25
+                              ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
+                              Name 4  "main"
+                              Name 12  "@main(u1;"
+                              Name 11  "ViewIndex"
+                              Name 20  "ViewIndex"
+                              Name 22  "ViewIndex"
+                              Name 25  "@entryPointOutput"
+                              Name 26  "param"
+                              Decorate 22(ViewIndex) Flat
+                              Decorate 22(ViewIndex) BuiltIn ViewIndex
+                              Decorate 25(@entryPointOutput) Location 0
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 0
+               7:             TypePointer Function 6(int)
+               8:             TypeFloat 32
+               9:             TypeVector 8(float) 4
+              10:             TypeFunction 9(fvec4) 7(ptr)
+              16:    8(float) Constant 0
+              21:             TypePointer Input 6(int)
+   22(ViewIndex):     21(ptr) Variable Input
+              24:             TypePointer Output 9(fvec4)
+25(@entryPointOutput):     24(ptr) Variable Output
+         4(main):           2 Function None 3
+               5:             Label
+   20(ViewIndex):      7(ptr) Variable Function
+       26(param):      7(ptr) Variable Function
+              23:      6(int) Load 22(ViewIndex)
+                              Store 20(ViewIndex) 23
+              27:      6(int) Load 20(ViewIndex)
+                              Store 26(param) 27
+              28:    9(fvec4) FunctionCall 12(@main(u1;) 26(param)
+                              Store 25(@entryPointOutput) 28
+                              Return
+                              FunctionEnd
+   12(@main(u1;):    9(fvec4) Function None 10
+   11(ViewIndex):      7(ptr) FunctionParameter
+              13:             Label
+              14:      6(int) Load 11(ViewIndex)
+              15:    8(float) ConvertUToF 14
+              17:    9(fvec4) CompositeConstruct 15 16 16 16
+                              ReturnValue 17
+                              FunctionEnd
diff --git a/Test/baseResults/hlsl.pp.expand.frag.out b/Test/baseResults/hlsl.pp.expand.frag.out
index adfe02c..97df910 100644
--- a/Test/baseResults/hlsl.pp.expand.frag.out
+++ b/Test/baseResults/hlsl.pp.expand.frag.out
@@ -9,7 +9,7 @@
     float4 a;
     float4 b;
     float4 c = { 1, 2, 3, 4 };
-    float4 d = {({ {(({ 1, 2, 3, 4 }))} })}, { { 1, 2, 3, 4 } };
+    float4 d = { ({ { ( ({ 1, 2, 3, 4 })) } }) }, { { 1, 2, 3, 4 } };
 };
 
 void main()
diff --git a/Test/baseResults/hlsl.structcopylogical.comp.out b/Test/baseResults/hlsl.structcopylogical.comp.out
index 3120656..a9b849b 100644
--- a/Test/baseResults/hlsl.structcopylogical.comp.out
+++ b/Test/baseResults/hlsl.structcopylogical.comp.out
@@ -248,17 +248,17 @@
                               Capability Shader
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint GLCompute 4  "main" 17 32 57 74
-                              ExecutionModeId 4 LocalSizeId 7 8 8
+                              EntryPoint GLCompute 4  "main" 16 32 57 74
+                              ExecutionMode 4 LocalSize 128 1 1
                               Source HLSL 500
                               Name 4  "main"
-                              Name 12  "@main(u1;"
-                              Name 11  "id"
-                              Name 14  "MyStruct"
-                              MemberName 14(MyStruct) 0  "a"
-                              MemberName 14(MyStruct) 1  "b"
-                              MemberName 14(MyStruct) 2  "c"
-                              Name 17  "s"
+                              Name 10  "@main(u1;"
+                              Name 9  "id"
+                              Name 12  "MyStruct"
+                              MemberName 12(MyStruct) 0  "a"
+                              MemberName 12(MyStruct) 1  "b"
+                              MemberName 12(MyStruct) 2  "c"
+                              Name 16  "s"
                               Name 25  "count"
                               Name 26  "MyStruct"
                               MemberName 26(MyStruct) 0  "a"
@@ -300,20 +300,20 @@
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 0
-               7:      6(int) Constant 128
-               8:      6(int) Constant 1
-               9:             TypePointer Function 6(int)
-              10:             TypeFunction 2 9(ptr)
-    14(MyStruct):             TypeStruct 6(int) 6(int) 6(int)
-              15:             TypeArray 14(MyStruct) 7
-              16:             TypePointer Workgroup 15
-           17(s):     16(ptr) Variable Workgroup
-              18:             TypeInt 32 1
-              19:     18(int) Constant 0
+               7:             TypePointer Function 6(int)
+               8:             TypeFunction 2 7(ptr)
+    12(MyStruct):             TypeStruct 6(int) 6(int) 6(int)
+              13:      6(int) Constant 128
+              14:             TypeArray 12(MyStruct) 13
+              15:             TypePointer Workgroup 14
+           16(s):     15(ptr) Variable Workgroup
+              17:             TypeInt 32 1
+              18:     17(int) Constant 0
+              19:      6(int) Constant 1
               20:      6(int) Constant 2
               21:      6(int) Constant 3
-              22:14(MyStruct) ConstantComposite 8 20 21
-              23:             TypePointer Workgroup 14(MyStruct)
+              22:12(MyStruct) ConstantComposite 19 20 21
+              23:             TypePointer Workgroup 12(MyStruct)
     26(MyStruct):             TypeStruct 6(int) 6(int) 6(int)
               27:             TypeRuntimeArray 26(MyStruct)
    28(MyStructs):             TypeStruct 6(int) 27
@@ -322,64 +322,64 @@
               31:             TypePointer StorageBuffer 30(sb)
           32(sb):     31(ptr) Variable StorageBuffer
               33:             TypePointer StorageBuffer 6(int)
-              36:             TypePointer Function 14(MyStruct)
+              36:             TypePointer Function 12(MyStruct)
               40:             TypeBool
-              47:     18(int) Constant 1
+              47:     17(int) Constant 1
               49:             TypePointer StorageBuffer 26(MyStruct)
               54:             TypeRuntimeArray 26(MyStruct)
            55(o):             TypeStruct 54
               56:             TypePointer StorageBuffer 55(o)
            57(o):     56(ptr) Variable StorageBuffer
               61:      6(int) Constant 0
-              67:     18(int) Constant 2
+              67:     17(int) Constant 2
               73:             TypePointer Input 6(int)
           74(id):     73(ptr) Variable Input
          4(main):           2 Function None 3
                5:             Label
-          72(id):      9(ptr) Variable Function
-       76(param):      9(ptr) Variable Function
+          72(id):      7(ptr) Variable Function
+       76(param):      7(ptr) Variable Function
               75:      6(int) Load 74(id)
                               Store 72(id) 75
               77:      6(int) Load 72(id)
                               Store 76(param) 77
-              78:           2 FunctionCall 12(@main(u1;) 76(param)
+              78:           2 FunctionCall 10(@main(u1;) 76(param)
                               Return
                               FunctionEnd
-   12(@main(u1;):           2 Function None 10
-          11(id):      9(ptr) FunctionParameter
-              13:             Label
-       25(count):      9(ptr) Variable Function
+   10(@main(u1;):           2 Function None 8
+           9(id):      7(ptr) FunctionParameter
+              11:             Label
+       25(count):      7(ptr) Variable Function
           37(ms):     36(ptr) Variable Function
-              24:     23(ptr) AccessChain 17(s) 19
+              24:     23(ptr) AccessChain 16(s) 18
                               Store 24 22
-              34:     33(ptr) AccessChain 32(sb) 19 19 19
+              34:     33(ptr) AccessChain 32(sb) 18 18 18
               35:      6(int) Load 34
                               Store 25(count) 35
-              38:      6(int) Load 11(id)
+              38:      6(int) Load 9(id)
               39:      6(int) Load 25(count)
               41:    40(bool) UGreaterThan 38 39
-              42:      6(int) Load 11(id)
+              42:      6(int) Load 9(id)
               43:      6(int) Load 25(count)
               44:      6(int) ISub 42 43
-              45:     23(ptr) AccessChain 17(s) 44
-              46:14(MyStruct) Load 45
-              48:      6(int) Load 11(id)
-              50:     49(ptr) AccessChain 32(sb) 19 19 47 48
+              45:     23(ptr) AccessChain 16(s) 44
+              46:12(MyStruct) Load 45
+              48:      6(int) Load 9(id)
+              50:     49(ptr) AccessChain 32(sb) 18 18 47 48
               51:26(MyStruct) Load 50
-              52:14(MyStruct) CopyLogical 51
-              53:14(MyStruct) Select 41 46 52
+              52:12(MyStruct) CopyLogical 51
+              53:12(MyStruct) Select 41 46 52
                               Store 37(ms) 53
-              58:     33(ptr) AccessChain 57(o) 19 19 19
-              59:      9(ptr) AccessChain 37(ms) 19
+              58:     33(ptr) AccessChain 57(o) 18 18 18
+              59:      7(ptr) AccessChain 37(ms) 18
               60:      6(int) Load 59
-              62:      6(int) AtomicIAdd 58 8 61 60
-              63:     33(ptr) AccessChain 57(o) 19 19 47
-              64:      9(ptr) AccessChain 37(ms) 47
+              62:      6(int) AtomicIAdd 58 19 61 60
+              63:     33(ptr) AccessChain 57(o) 18 18 47
+              64:      7(ptr) AccessChain 37(ms) 47
               65:      6(int) Load 64
-              66:      6(int) AtomicIAdd 63 8 61 65
-              68:     33(ptr) AccessChain 57(o) 19 19 67
-              69:      9(ptr) AccessChain 37(ms) 67
+              66:      6(int) AtomicIAdd 63 19 61 65
+              68:     33(ptr) AccessChain 57(o) 18 18 67
+              69:      7(ptr) AccessChain 37(ms) 67
               70:      6(int) Load 69
-              71:      6(int) AtomicIAdd 68 8 61 70
+              71:      6(int) AtomicIAdd 68 19 61 70
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/overflow_underflow_toinf_0.frag.out b/Test/baseResults/overflow_underflow_toinf_0.frag.out
new file mode 100644
index 0000000..621d197
--- /dev/null
+++ b/Test/baseResults/overflow_underflow_toinf_0.frag.out
@@ -0,0 +1,75 @@
+overflow_underflow_toinf_0.frag
+Shader version: 320
+0:? Sequence
+0:4  Function Definition: main( ( global void)
+0:4    Function Parameters: 
+0:9    Sequence
+0:9      Sequence
+0:9        move second child to first child ( temp highp float)
+0:9          'correct' ( temp highp float)
+0:9          Constant:
+0:9            1.000000
+0:10      Sequence
+0:10        move second child to first child ( temp highp float)
+0:10          'correct1' ( temp highp float)
+0:10          Constant:
+0:10            1.000000
+0:11      Sequence
+0:11        move second child to first child ( temp highp 4-component vector of float)
+0:11          'foo' ( temp highp 4-component vector of float)
+0:11          Constant:
+0:11            0.000000
+0:11            -0.000000
+0:11            +1.#INF
+0:11            -1.#INF
+0:12      move second child to first child ( temp highp 4-component vector of float)
+0:12        'my_FragColor' ( out highp 4-component vector of float)
+0:12        Construct vec4 ( temp highp 4-component vector of float)
+0:12          Constant:
+0:12            0.000000
+0:12          'correct' ( temp highp float)
+0:12          'correct1' ( temp highp float)
+0:12          Constant:
+0:12            1.000000
+0:?   Linker Objects
+0:?     'my_FragColor' ( out highp 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 320
+0:? Sequence
+0:4  Function Definition: main( ( global void)
+0:4    Function Parameters: 
+0:9    Sequence
+0:9      Sequence
+0:9        move second child to first child ( temp highp float)
+0:9          'correct' ( temp highp float)
+0:9          Constant:
+0:9            1.000000
+0:10      Sequence
+0:10        move second child to first child ( temp highp float)
+0:10          'correct1' ( temp highp float)
+0:10          Constant:
+0:10            1.000000
+0:11      Sequence
+0:11        move second child to first child ( temp highp 4-component vector of float)
+0:11          'foo' ( temp highp 4-component vector of float)
+0:11          Constant:
+0:11            0.000000
+0:11            -0.000000
+0:11            +1.#INF
+0:11            -1.#INF
+0:12      move second child to first child ( temp highp 4-component vector of float)
+0:12        'my_FragColor' ( out highp 4-component vector of float)
+0:12        Construct vec4 ( temp highp 4-component vector of float)
+0:12          Constant:
+0:12            0.000000
+0:12          'correct' ( temp highp float)
+0:12          'correct1' ( temp highp float)
+0:12          Constant:
+0:12            1.000000
+0:?   Linker Objects
+0:?     'my_FragColor' ( out highp 4-component vector of float)
+
diff --git a/Test/baseResults/preprocessor.edge_cases.vert.out b/Test/baseResults/preprocessor.edge_cases.vert.out
index 17d9049..6a4ad4a 100644
--- a/Test/baseResults/preprocessor.edge_cases.vert.out
+++ b/Test/baseResults/preprocessor.edge_cases.vert.out
@@ -10,7 +10,7 @@
 
 
 
-void main(){
+void main() {
   gl_Position = vec4(3 + 2 + 2 * 4 + 2 + 3 * 2);
 }
 
diff --git a/Test/baseResults/preprocessor.extensions.vert.out b/Test/baseResults/preprocessor.extensions.vert.out
index 57d2e19..59c6e85 100644
--- a/Test/baseResults/preprocessor.extensions.vert.out
+++ b/Test/baseResults/preprocessor.extensions.vert.out
@@ -7,6 +7,6 @@
 
 #extension unknown_extension : require
 
-int main(){
+int main() {
 }
 
diff --git a/Test/baseResults/preprocessor.function_macro.vert.out b/Test/baseResults/preprocessor.function_macro.vert.out
index 010251e..84b0a87 100644
--- a/Test/baseResults/preprocessor.function_macro.vert.out
+++ b/Test/baseResults/preprocessor.function_macro.vert.out
@@ -15,10 +15,10 @@
 
 
 
-int main(){
+int main() {
   gl_Position = vec4(3 + 1, 3 + 4, 3 + 1);
   gl_Position = vec4(1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12);
   gl_Position = vec4(4 + 3 + 3);
-  gl_Position = 4 + 3 + F . a;
+  gl_Position = 4 + 3 + F.a;
 }
 
diff --git a/Test/baseResults/preprocessor.line.frag.out b/Test/baseResults/preprocessor.line.frag.out
index 3e2206f..7687794 100644
--- a/Test/baseResults/preprocessor.line.frag.out
+++ b/Test/baseResults/preprocessor.line.frag.out
@@ -1,5 +1,5 @@
 #version 310 es
 #line 1 2
 #pragma something
-void main(){ }
+void main() { }
 
diff --git a/Test/baseResults/preprocessor.line.vert.out b/Test/baseResults/preprocessor.line.vert.out
index 2bf0903..fbd851c 100644
--- a/Test/baseResults/preprocessor.line.vert.out
+++ b/Test/baseResults/preprocessor.line.vert.out
@@ -23,7 +23,7 @@
 
 #line 8
 
-void main(){
+void main() {
   gl_Position = vec4(10);
 }
 
diff --git a/Test/baseResults/preprocessor.pragma.vert.out b/Test/baseResults/preprocessor.pragma.vert.out
index ebe1e4a..8fa3d33 100644
--- a/Test/baseResults/preprocessor.pragma.vert.out
+++ b/Test/baseResults/preprocessor.pragma.vert.out
@@ -9,6 +9,6 @@
 
 #pragma once
 
-int main(){
+int main() {
 }
 
diff --git a/Test/baseResults/preprocessor.simple.vert.out b/Test/baseResults/preprocessor.simple.vert.out
index 57b020c..b54e0a0 100644
--- a/Test/baseResults/preprocessor.simple.vert.out
+++ b/Test/baseResults/preprocessor.simple.vert.out
@@ -11,15 +11,15 @@
 
 
 
-             float fn(float x){ return x + 4.0;}
+             float fn(float x) { return x + 4.0; }
 
-int main(){
+int main() {
   gl_Position = vec4(1);
   gl_Position = clamp(1, 2, 3);
   gl_Position = vec4(1);
   gl_Position = vec4(1, 2);
   gl_Position = vec4(fn(3));
-  []. ++ --
+  [].++ --
   + - * % / - ! ~
   << >> < > <= >=
   == !=
@@ -46,16 +46,21 @@
 
 
 
+void bar(int x) { }
+
 void foo()
 {
     S s;
-    s . member2 + s . member1;
-    s . member3 . zyx;
-    s . member2 . xxyz;
-    s . member2 . yyz;
-    s . member2 . xxyz();
-    s . member2 . yzy;
-            vec3 a = vec3(0);vec3 b = a . zxyz;vec3 b = a . xxyz;vec3 b = a . yyz;vec3 b = a . xxyz();vec3 b = a . yzy;vec3 b = a . z;
+    s.member2 + s.member1;
+    s.member3.zyx;
+    s.member2.xxyz;
+    s.member2.yyz;
+    s.member2.xxyz();
+    s.member2.yzy;
+    for (int i = 0; i < 100; i = i + 1) {
+      bar(i)
+    }
+            vec3 a = vec3(0); vec3 b = a.zxyz; vec3 b = a.xxyz; vec3 b = a.yyz; vec3 b = a.xxyz(); vec3 b = a.yzy; vec3 b = a.z;
 
 
      yyz;
diff --git a/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.out b/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.out
index 624813a..ed1ad0c 100644
--- a/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.out
+++ b/Test/baseResults/preprocessor.success_if_parse_would_fail.vert.out
@@ -1,4 +1,4 @@
-int x(){
+int x() {
   something that shouldnt compile;
 }
 
diff --git a/Test/baseResults/spv.1.6.quad.frag.out b/Test/baseResults/spv.1.6.quad.frag.out
new file mode 100644
index 0000000..7b31d7a
--- /dev/null
+++ b/Test/baseResults/spv.1.6.quad.frag.out
@@ -0,0 +1,76 @@
+spv.1.6.quad.frag
+// Module Version 10600
+// Generated by (magic number): 8000b
+// Id's are bound by 39
+
+                              Capability Shader
+                              Capability GroupNonUniform
+                              Capability GroupNonUniformVote
+                              Capability QuadControlKHR
+                              Extension  "SPV_KHR_quad_control"
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 16 33
+                              ExecutionMode 4 QuadDerivativesKHR
+                              ExecutionMode 4 RequireFullQuadsKHR
+                              ExecutionMode 4 OriginUpperLeft
+                              Source GLSL 460
+                              SourceExtension  "GL_EXT_shader_quad_control"
+                              SourceExtension  "GL_KHR_shader_subgroup_basic"
+                              SourceExtension  "GL_KHR_shader_subgroup_vote"
+                              Name 4  "main"
+                              Name 8  "bTemp"
+                              Name 16  "iInput"
+                              Name 33  "bOut"
+                              Decorate 16(iInput) Flat
+                              Decorate 16(iInput) Location 0
+                              Decorate 33(bOut) Location 0
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeBool
+               7:             TypePointer Function 6(bool)
+               9:     6(bool) ConstantFalse
+              14:             TypeInt 32 1
+              15:             TypePointer Input 14(int)
+      16(iInput):     15(ptr) Variable Input
+              18:     14(int) Constant 0
+              20:             TypeInt 32 0
+              21:     20(int) Constant 3
+              32:             TypePointer Output 14(int)
+        33(bOut):     32(ptr) Variable Output
+              35:     6(bool) ConstantTrue
+              37:     14(int) Constant 1
+         4(main):           2 Function None 3
+               5:             Label
+        8(bTemp):      7(ptr) Variable Function
+                              Store 8(bTemp) 9
+              10:     6(bool) Load 8(bTemp)
+              11:     6(bool) LogicalNot 10
+                              SelectionMerge 13 None
+                              BranchConditional 11 12 13
+              12:               Label
+              17:     14(int)   Load 16(iInput)
+              19:     6(bool)   SGreaterThan 17 18
+              22:     6(bool)   GroupNonUniformQuadAllKHR 19
+                                Branch 13
+              13:             Label
+              23:     6(bool) Phi 10 5 22 12
+                              Store 8(bTemp) 23
+              24:     6(bool) Load 8(bTemp)
+              25:     6(bool) LogicalNot 24
+                              SelectionMerge 27 None
+                              BranchConditional 25 26 27
+              26:               Label
+              28:     14(int)   Load 16(iInput)
+              29:     6(bool)   SGreaterThan 28 18
+              30:     6(bool)   GroupNonUniformQuadAnyKHR 29
+                                Branch 27
+              27:             Label
+              31:     6(bool) Phi 24 13 30 26
+                              Store 8(bTemp) 31
+              34:     6(bool) Load 8(bTemp)
+              36:     6(bool) LogicalEqual 34 35
+              38:     14(int) Select 36 37 18
+                              Store 33(bOut) 38
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.460.subgroupEXT.mesh.out b/Test/baseResults/spv.460.subgroupEXT.mesh.out
index dd3de81..f41895f 100644
--- a/Test/baseResults/spv.460.subgroupEXT.mesh.out
+++ b/Test/baseResults/spv.460.subgroupEXT.mesh.out
@@ -13,10 +13,8 @@
                               Capability GroupNonUniformShuffleRelative
                               Capability GroupNonUniformClustered
                               Capability GroupNonUniformQuad
-                              Capability FragmentShadingRateKHR
                               Capability MeshShadingEXT
                               Extension  "SPV_EXT_mesh_shader"
-                              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
@@ -65,7 +63,6 @@
                               MemberName 106(gl_MeshPerPrimitiveEXT) 1  "gl_Layer"
                               MemberName 106(gl_MeshPerPrimitiveEXT) 2  "gl_ViewportIndex"
                               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"
@@ -95,8 +92,6 @@
                               MemberDecorate 106(gl_MeshPerPrimitiveEXT) 2 BuiltIn ViewportIndex
                               MemberDecorate 106(gl_MeshPerPrimitiveEXT) 3 PerPrimitiveNV
                               MemberDecorate 106(gl_MeshPerPrimitiveEXT) 3 BuiltIn CullPrimitiveEXT
-                              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
@@ -151,7 +146,7 @@
               79:     30(int) Constant 264
               80:     30(int) Constant 2
              105:             TypeBool
-106(gl_MeshPerPrimitiveEXT):             TypeStruct 59(int) 59(int) 59(int) 105(bool) 59(int)
+106(gl_MeshPerPrimitiveEXT):             TypeStruct 59(int) 59(int) 59(int) 105(bool)
              107:             TypeArray 106(gl_MeshPerPrimitiveEXT) 47
              108:             TypePointer Output 107
 109(gl_MeshPrimitivesEXT):    108(ptr) Variable Output
diff --git a/Test/baseResults/spv.atomicRvalue.error.vert.out b/Test/baseResults/spv.atomicRvalue.error.vert.out
new file mode 100644
index 0000000..a340141
--- /dev/null
+++ b/Test/baseResults/spv.atomicRvalue.error.vert.out
@@ -0,0 +1,9 @@
+spv.atomicRvalue.error.vert
+ERROR: 0:5: 'assign' :  l-value required 
+ERROR: 0:5: 'out' : Non-L-value cannot be passed for 'out' or 'inout' parameters. 
+ERROR: 0:5: 'atomicAdd' : Only l-values corresponding to shader block storage or shared variables can be used with atomic memory functions. 
+ERROR: 0:6: 'atomicAdd' : Only l-values corresponding to shader block storage or shared variables can be used with atomic memory functions. 
+ERROR: 4 compilation errors.  No code generated.
+
+
+SPIR-V is not generated for failed compile or link
diff --git a/Test/baseResults/spv.coopmatKHR.comp.out b/Test/baseResults/spv.coopmatKHR.comp.out
new file mode 100644
index 0000000..60a4540
--- /dev/null
+++ b/Test/baseResults/spv.coopmatKHR.comp.out
@@ -0,0 +1,402 @@
+spv.coopmatKHR.comp
+// Module Version 10000
+// Generated by (magic number): 8000b
+// Id's are bound by 250
+
+                              Capability Shader
+                              Capability Float16
+                              Capability Int16
+                              Capability Int8
+                              Capability StorageUniformBufferBlock16
+                              Capability VulkanMemoryModelKHR
+                              Capability PhysicalStorageBufferAddressesEXT
+                              Capability CooperativeMatrixKHR
+                              Extension  "SPV_KHR_16bit_storage"
+                              Extension  "SPV_KHR_cooperative_matrix"
+                              Extension  "SPV_KHR_physical_storage_buffer"
+                              Extension  "SPV_KHR_storage_buffer_storage_class"
+                              Extension  "SPV_KHR_vulkan_memory_model"
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel PhysicalStorageBuffer64EXT VulkanKHR
+                              EntryPoint GLCompute 4  "main"
+                              ExecutionMode 4 LocalSize 64 1 1
+                              Source GLSL 450
+                              SourceExtension  "GL_EXT_buffer_reference"
+                              SourceExtension  "GL_EXT_shader_explicit_arithmetic_types"
+                              SourceExtension  "GL_KHR_cooperative_matrix"
+                              SourceExtension  "GL_KHR_memory_scope_semantics"
+                              Name 4  "main"
+                              Name 15  "f16(f161;"
+                              Name 14  "m"
+                              Name 22  "f32(f1;"
+                              Name 21  "m"
+                              Name 35  "m"
+                              Name 53  "m2"
+                              Name 57  "x"
+                              Name 65  "tempArg"
+                              Name 69  "Block"
+                              MemberName 69(Block) 0  "y"
+                              MemberName 69(Block) 1  "x"
+                              Name 71  "block"
+                              Name 80  "tempArg"
+                              Name 85  "Block16"
+                              MemberName 85(Block16) 0  "y"
+                              MemberName 85(Block16) 1  "x"
+                              MemberName 85(Block16) 2  "b"
+                              Name 88  "Block"
+                              MemberName 88(Block) 0  "y"
+                              MemberName 88(Block) 1  "x"
+                              Name 90  "block16"
+                              Name 97  "tempArg"
+                              Name 110  "D"
+                              Name 114  "A"
+                              Name 118  "B"
+                              Name 120  "C"
+                              Name 124  "l"
+                              Name 128  "Y"
+                              Name 129  "Z"
+                              Name 132  "F"
+                              Name 137  "a"
+                              Name 141  "md1"
+                              Name 152  "mC2"
+                              Name 157  "tempArg"
+                              Name 163  "tempArg"
+                              Name 169  "p1"
+                              Name 170  "param"
+                              Name 173  "p2"
+                              Name 174  "param"
+                              Name 188  "tempArg"
+                              Name 193  "shmatrix"
+                              Name 197  "ms"
+                              Name 204  "ms8A"
+                              Name 208  "ms8B"
+                              Name 212  "ms8C"
+                              Name 227  "m16"
+                              Name 233  "mC"
+                              Name 234  "F"
+                              Name 239  "S"
+                              MemberName 239(S) 0  "a"
+                              MemberName 239(S) 1  "b"
+                              MemberName 239(S) 2  "c"
+                              Name 244  "SC"
+                              Name 249  "scm"
+                              Decorate 67 ArrayStride 4
+                              Decorate 68 ArrayStride 4
+                              MemberDecorate 69(Block) 0 Offset 0
+                              MemberDecorate 69(Block) 1 Offset 4194304
+                              Decorate 69(Block) Block
+                              Decorate 71(block) DescriptorSet 0
+                              Decorate 71(block) Binding 0
+                              Decorate 81 ArrayStride 2
+                              Decorate 83 ArrayStride 2
+                              MemberDecorate 85(Block16) 0 Offset 0
+                              MemberDecorate 85(Block16) 1 Offset 2097152
+                              MemberDecorate 85(Block16) 2 Offset 2097160
+                              Decorate 85(Block16) Block
+                              Decorate 86 ArrayStride 4
+                              Decorate 87 ArrayStride 4
+                              MemberDecorate 88(Block) 0 Offset 0
+                              MemberDecorate 88(Block) 1 Offset 4194304
+                              Decorate 88(Block) Block
+                              Decorate 90(block16) DescriptorSet 0
+                              Decorate 90(block16) Binding 0
+                              Decorate 128(Y) SpecId 0
+                              Decorate 232 BuiltIn WorkgroupSize
+                              Decorate 234(F) SpecId 1
+                              Decorate 244(SC) SpecId 2
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 16
+               7:             TypeInt 32 0
+               8:      7(int) Constant 3
+               9:      7(int) Constant 8
+              10:      7(int) Constant 2
+              11:             TypeCooperativeMatrixKHR 6(float16_t) 8 9 9 10
+              12:             TypePointer Function 11
+              13:             TypeFunction 11 12(ptr)
+              17:             TypeFloat 32
+              18:             TypeCooperativeMatrixKHR 17(float) 8 9 9 10
+              19:             TypePointer Function 18
+              20:             TypeFunction 18 19(ptr)
+              32:      7(int) Constant 16
+              33:             TypeCooperativeMatrixKHR 17(float) 8 32 9 10
+              34:             TypePointer Function 33
+              36:   17(float) Constant 0
+              37:          33 ConstantComposite 36
+              46:   17(float) Constant 1073741824
+              51:             TypeCooperativeMatrixKHR 6(float16_t) 8 32 9 10
+              52:             TypePointer Function 51
+              56:             TypePointer Function 17(float)
+              58:             TypeInt 32 1
+              59:     58(int) Constant 1
+              62:     58(int) Constant 0
+              66:      7(int) Constant 1048576
+              67:             TypeArray 17(float) 66
+              68:             TypeRuntimeArray 17(float)
+       69(Block):             TypeStruct 67 68
+              70:             TypePointer StorageBuffer 69(Block)
+       71(block):     70(ptr) Variable StorageBuffer
+              72:      7(int) Constant 5
+              73:             TypePointer StorageBuffer 17(float)
+              75:      7(int) Constant 128
+              81:             TypeArray 6(float16_t) 66
+              82:      7(int) Constant 1
+              83:             TypeArray 6(float16_t) 82
+                              TypeForwardPointer 84 PhysicalStorageBufferEXT
+     85(Block16):             TypeStruct 81 83 84
+              86:             TypeArray 17(float) 66
+              87:             TypeRuntimeArray 17(float)
+       88(Block):             TypeStruct 86 87
+              84:             TypePointer PhysicalStorageBufferEXT 88(Block)
+              89:             TypePointer StorageBuffer 85(Block16)
+     90(block16):     89(ptr) Variable StorageBuffer
+              91:             TypePointer StorageBuffer 6(float16_t)
+              98:     58(int) Constant 2
+              99:             TypePointer StorageBuffer 84(ptr)
+             102:             TypePointer PhysicalStorageBufferEXT 17(float)
+             111:      7(int) Constant 0
+             112:             TypeCooperativeMatrixKHR 6(float16_t) 8 32 9 111
+             113:             TypePointer Function 112
+             116:             TypeCooperativeMatrixKHR 6(float16_t) 8 9 9 82
+             117:             TypePointer Function 116
+             123:             TypePointer Function 58(int)
+             127:     58(int) Constant 8
+          128(Y):     58(int) SpecConstant 2
+          129(Z):     58(int) SpecConstantOp 132 127 128(Y)
+             130:             TypeCooperativeMatrixKHR 6(float16_t) 8 129(Z) 129(Z) 10
+             131:             TypePointer Function 130
+             133:6(float16_t) Constant 0
+             134:         130 ConstantComposite 133
+             135:             TypeArray 33 72
+             136:             TypePointer Function 135
+             138:     58(int) Constant 3
+             139:   17(float) Constant 1065353216
+             145:     58(int) Constant 1234
+             149:             TypeCooperativeMatrixKHR 6(float16_t) 8 129(Z) 9 10
+             150:             TypeArray 149 8
+             151:             TypePointer Private 150
+        152(mC2):    151(ptr) Variable Private
+             153:             TypePointer Private 149
+             177:          11 ConstantComposite 133
+             178:          18 ConstantComposite 36
+             182:6(float16_t) Constant 16384
+             185:   17(float) Constant 1082130432
+             189:             TypeVector 7(int) 4
+             190:      7(int) Constant 32
+             191:             TypeArray 189(ivec4) 190
+             192:             TypePointer Workgroup 191
+   193(shmatrix):    192(ptr) Variable Workgroup
+             194:             TypePointer Workgroup 189(ivec4)
+             201:             TypeInt 8 1
+             202:             TypeCooperativeMatrixKHR 201(int8_t) 8 9 9 111
+             203:             TypePointer Function 202
+             206:             TypeCooperativeMatrixKHR 201(int8_t) 8 9 9 82
+             207:             TypePointer Function 206
+             210:             TypeCooperativeMatrixKHR 201(int8_t) 8 9 9 10
+             211:             TypePointer Function 210
+             222:     58(int) Constant 16
+             224:             TypeInt 16 1
+             225:             TypeCooperativeMatrixKHR 224(int16_t) 8 9 9 111
+             226:             TypePointer Function 225
+             230:             TypeVector 7(int) 3
+             231:      7(int) Constant 64
+             232:  230(ivec3) ConstantComposite 231 82 82
+         233(mC):    153(ptr) Variable Private
+          234(F):   17(float) SpecConstant 1077936128
+             235:             TypeCooperativeMatrixKHR 17(float) 8 129(Z) 9 10
+             236:         235 ConstantComposite 36
+             237:6(float16_t) Constant 15360
+             238:          11 ConstantComposite 237
+          239(S):             TypeStruct 58(int) 58(int) 58(int)
+             240:     58(int) Constant 12
+             241:     58(int) Constant 23
+             242:     58(int) Constant 34
+             243:      239(S) ConstantComposite 240 241 242
+         244(SC):     58(int) SpecConstant 1
+             245:             TypeCooperativeMatrixKHR 6(float16_t) 8 244(SC) 244(SC) 10
+             246:             TypeArray 245 244(SC)
+             247:             TypeArray 246 244(SC)
+             248:             TypePointer Private 247
+        249(scm):    248(ptr) Variable Private
+         4(main):           2 Function None 3
+               5:             Label
+           35(m):     34(ptr) Variable Function
+          53(m2):     52(ptr) Variable Function
+           57(x):     56(ptr) Variable Function
+     65(tempArg):     34(ptr) Variable Function
+     80(tempArg):     52(ptr) Variable Function
+     97(tempArg):     34(ptr) Variable Function
+          110(D):     34(ptr) Variable Function
+          114(A):    113(ptr) Variable Function
+          118(B):    117(ptr) Variable Function
+          120(C):     34(ptr) Variable Function
+          124(l):    123(ptr) Variable Function
+          132(F):    131(ptr) Variable Function
+          137(a):    136(ptr) Variable Function
+        141(md1):     56(ptr) Variable Function
+    157(tempArg):     34(ptr) Variable Function
+    163(tempArg):     52(ptr) Variable Function
+         169(p1):     12(ptr) Variable Function
+      170(param):     12(ptr) Variable Function
+         173(p2):     19(ptr) Variable Function
+      174(param):     19(ptr) Variable Function
+    188(tempArg):     52(ptr) Variable Function
+         197(ms):     52(ptr) Variable Function
+       204(ms8A):    203(ptr) Variable Function
+       208(ms8B):    207(ptr) Variable Function
+       212(ms8C):    211(ptr) Variable Function
+        227(m16):    226(ptr) Variable Function
+                              Store 35(m) 37
+              38:          33 Load 35(m)
+              39:          33 Load 35(m)
+              40:          33 FAdd 38 39
+                              Store 35(m) 40
+              41:          33 Load 35(m)
+              42:          33 Load 35(m)
+              43:          33 FSub 41 42
+                              Store 35(m) 43
+              44:          33 Load 35(m)
+              45:          33 FNegate 44
+                              Store 35(m) 45
+              47:          33 Load 35(m)
+              48:          33 MatrixTimesScalar 47 46
+                              Store 35(m) 48
+              49:          33 Load 35(m)
+              50:          33 MatrixTimesScalar 49 46
+                              Store 35(m) 50
+              54:          33 Load 35(m)
+              55:          51 FConvert 54
+                              Store 53(m2) 55
+              60:     56(ptr) AccessChain 35(m) 59
+              61:   17(float) Load 60
+                              Store 57(x) 61
+              63:   17(float) Load 57(x)
+              64:     56(ptr) AccessChain 35(m) 62
+                              Store 64 63
+              74:     73(ptr) AccessChain 71(block) 59 32
+              76:          33 CooperativeMatrixLoadKHR 74 62 75 MakePointerVisibleKHR NonPrivatePointerKHR 72
+                              Store 65(tempArg) 76
+              77:          33 Load 65(tempArg)
+                              Store 35(m) 77
+              78:          33 Load 35(m)
+              79:     73(ptr) AccessChain 71(block) 59 32
+                              CooperativeMatrixStoreKHR 79 78 62 75 MakePointerAvailableKHR NonPrivatePointerKHR 72
+              92:     91(ptr) AccessChain 90(block16) 59 32
+              93:          51 CooperativeMatrixLoadKHR 92 62 75 MakePointerVisibleKHR NonPrivatePointerKHR 72
+                              Store 80(tempArg) 93
+              94:          51 Load 80(tempArg)
+                              Store 53(m2) 94
+              95:          51 Load 53(m2)
+              96:     91(ptr) AccessChain 90(block16) 59 32
+                              CooperativeMatrixStoreKHR 96 95 62 75 MakePointerAvailableKHR NonPrivatePointerKHR 72
+             100:     99(ptr) AccessChain 90(block16) 98
+             101:     84(ptr) Load 100 MakePointerVisibleKHR NonPrivatePointerKHR 72
+             103:    102(ptr) AccessChain 101 59 32
+             104:          33 CooperativeMatrixLoadKHR 103 62 75 Aligned MakePointerVisibleKHR NonPrivatePointerKHR 16 72
+                              Store 97(tempArg) 104
+             105:          33 Load 97(tempArg)
+                              Store 35(m) 105
+             106:          33 Load 35(m)
+             107:     99(ptr) AccessChain 90(block16) 98
+             108:     84(ptr) Load 107 MakePointerVisibleKHR NonPrivatePointerKHR 72
+             109:    102(ptr) AccessChain 108 59 32
+                              CooperativeMatrixStoreKHR 109 106 62 75 Aligned MakePointerAvailableKHR NonPrivatePointerKHR 16 72
+             115:         112 Load 114(A)
+             119:         116 Load 118(B)
+             121:          33 Load 120(C)
+             122:          33 CooperativeMatrixMulAddKHR 115 119 121
+                              Store 110(D) 122
+             125:      7(int) CooperativeMatrixLengthKHR 33
+             126:     58(int) Bitcast 125
+                              Store 124(l) 126
+                              Store 132(F) 134
+             140:     56(ptr) AccessChain 137(a) 138 62
+                              Store 140 139
+                              Store 141(md1) 36
+             142:          33 Load 35(m)
+             143:          33 Load 35(m)
+             144:          33 FAdd 143 142
+                              Store 35(m) 144
+             146:   17(float) CompositeExtract 144 1234
+             147:   17(float) Load 141(md1)
+             148:   17(float) FAdd 147 146
+                              Store 141(md1) 148
+             154:    153(ptr) AccessChain 152(mC2) 98
+             155:         149 Load 154
+             156:    153(ptr) AccessChain 152(mC2) 59
+                              Store 156 155
+             158:     73(ptr) AccessChain 71(block) 62 32
+             159:          33 CooperativeMatrixLoadKHR 158 62 75 MakePointerVisibleKHR NonPrivatePointerKHR 72
+                              Store 157(tempArg) 159
+             160:          33 Load 157(tempArg)
+                              Store 35(m) 160
+             161:          33 Load 35(m)
+             162:     73(ptr) AccessChain 71(block) 62 32
+                              CooperativeMatrixStoreKHR 162 161 62 75 MakePointerAvailableKHR NonPrivatePointerKHR 72
+             164:     91(ptr) AccessChain 90(block16) 62 32
+             165:          51 CooperativeMatrixLoadKHR 164 62 75 MakePointerVisibleKHR NonPrivatePointerKHR 72
+                              Store 163(tempArg) 165
+             166:          51 Load 163(tempArg)
+                              Store 53(m2) 166
+             167:          51 Load 53(m2)
+             168:     91(ptr) AccessChain 90(block16) 62 32
+                              CooperativeMatrixStoreKHR 168 167 62 75 MakePointerAvailableKHR NonPrivatePointerKHR 72
+             171:          11 Load 169(p1)
+                              Store 170(param) 171
+             172:          11 FunctionCall 15(f16(f161;) 170(param)
+                              Store 169(p1) 172
+             175:          18 Load 173(p2)
+                              Store 174(param) 175
+             176:          18 FunctionCall 22(f32(f1;) 174(param)
+                              Store 173(p2) 176
+                              Store 169(p1) 177
+                              Store 173(p2) 178
+             179:          11 Load 169(p1)
+             180:          11 Load 169(p1)
+             181:          11 FDiv 180 179
+                              Store 169(p1) 181
+             183:          11 Load 169(p1)
+             184:          11 MatrixTimesScalar 183 182
+                              Store 169(p1) 184
+             186:          18 Load 173(p2)
+             187:          18 MatrixTimesScalar 186 185
+                              Store 173(p2) 187
+             195:    194(ptr) AccessChain 193(shmatrix) 82
+             196:          51 CooperativeMatrixLoadKHR 195 62 10 MakePointerVisibleKHR NonPrivatePointerKHR 10
+                              Store 188(tempArg) 196
+             198:          51 Load 188(tempArg)
+                              Store 197(ms) 198
+             199:          51 Load 197(ms)
+             200:    194(ptr) AccessChain 193(shmatrix) 82
+                              CooperativeMatrixStoreKHR 200 199 62 10 MakePointerAvailableKHR NonPrivatePointerKHR 10
+             205:         202 Load 204(ms8A)
+             209:         206 Load 208(ms8B)
+             213:         210 Load 212(ms8C)
+             214:         210 CooperativeMatrixMulAddKHR 205 209 213 ASignedComponentsKHR BSignedComponentsKHR CSignedComponentsKHR ResultSignedComponentsKHR 
+             215:         202 Load 204(ms8A)
+             216:         206 Load 208(ms8B)
+             217:         210 Load 212(ms8C)
+             218:         210 CooperativeMatrixMulAddKHR 215 216 217 ASignedComponentsKHR BSignedComponentsKHR CSignedComponentsKHR ResultSignedComponentsKHR 
+             219:         202 Load 204(ms8A)
+             220:         206 Load 208(ms8B)
+             221:         210 Load 212(ms8C)
+             223:         210 CooperativeMatrixMulAddKHR 219 220 221 ASignedComponentsKHR BSignedComponentsKHR CSignedComponentsKHR ResultSignedComponentsKHR SaturatingAccumulationKHR 
+             228:         225 Load 227(m16)
+             229:    194(ptr) AccessChain 193(shmatrix) 82
+                              CooperativeMatrixStoreKHR 229 228 62 10 MakePointerAvailableKHR NonPrivatePointerKHR 10
+                              Return
+                              FunctionEnd
+   15(f16(f161;):          11 Function None 13
+           14(m):     12(ptr) FunctionParameter
+              16:             Label
+              24:          11 Load 14(m)
+              25:          11 FNegate 24
+                              ReturnValue 25
+                              FunctionEnd
+     22(f32(f1;):          18 Function None 20
+           21(m):     19(ptr) FunctionParameter
+              23:             Label
+              28:          18 Load 21(m)
+              29:          18 FNegate 28
+                              ReturnValue 29
+                              FunctionEnd
diff --git a/Test/baseResults/spv.coopmatKHR_Error.comp.out b/Test/baseResults/spv.coopmatKHR_Error.comp.out
new file mode 100644
index 0000000..82c302b
--- /dev/null
+++ b/Test/baseResults/spv.coopmatKHR_Error.comp.out
@@ -0,0 +1,38 @@
+spv.coopmatKHR_Error.comp
+ERROR: 0:8: 'ftemplate16' : unexpected type parameters 
+ERROR: 0:10: '' : coopmat missing type parameters 
+ERROR: 0:10: 'fnoparams' : unexpected number type parameters 
+ERROR: 0:17: 'void' : coopmat invalid basic type 
+ERROR: 0:17: 'fbadtype' : expected 8, 16, 32, or 64 bit signed or unsigned integer or 16, 32, or 64 bit float type 
+ERROR: 0:17: 'fbadtype' : illegal use of type 'void' 
+ERROR: 0:18: '' : type parameter must be a constant integer expression
+ERROR: 0:18: 'void' : coopmat invalid basic type 
+ERROR: 0:18: '' : coopmat incorrect number of type parameters 
+ERROR: 0:18: 'fbadtype2' : unexpected number type parameters 
+ERROR: 0:18: 'fbadtype2' : expected 8, 16, 32, or 64 bit signed or unsigned integer or 16, 32, or 64 bit float type 
+ERROR: 0:18: 'fbadtype2' : illegal use of type 'void' 
+ERROR: 0:19: 'void' : coopmat invalid basic type 
+ERROR: 0:19: '' : coopmat incorrect number of type parameters 
+ERROR: 0:19: 'fbadtype3' : unexpected number type parameters 
+ERROR: 0:19: 'fbadtype3' : expected 8, 16, 32, or 64 bit signed or unsigned integer or 16, 32, or 64 bit float type 
+ERROR: 0:19: 'fbadtype3' : illegal use of type 'void' 
+ERROR: 0:21: '' : coopmat incorrect number of type parameters 
+ERROR: 0:25: '' : type parameter must be a constant integer expression
+ERROR: 0:29: '' : coopmat incorrect number of type parameters 
+ERROR: 0:29: 'Cooperative matrix types must not be used in shared memory' : qualifier 
+ERROR: 0:32: 'bufmat' : member of block cannot be or contain a cooperative matrix type 
+ERROR: 0:41: 'assign' :  cannot convert from ' temp coopmat<3, 16, 8, 0> float16_t' to ' temp coopmat<3, 16, 8, 0> float'
+ERROR: 0:42: 'assign' :  cannot convert from ' temp coopmat<3, 16, 8, 0> float16_t' to ' temp coopmat<3, 16, 8, 0> float'
+ERROR: 0:47: 'assign' :  cannot convert from ' temp coopmat<3, 8, 8, 0> float16_t' to ' temp coopmat<3, 16, 8, 0> float16_t'
+ERROR: 0:53: 'assign' :  cannot convert from ' temp coopmat<3, 8, 1, 0> float16_t' to ' temp coopmat<3, 8, 1, 0> float16_t'
+ERROR: 0:56: 'constructor' : too many arguments 
+ERROR: 0:56: 'assign' :  cannot convert from ' const float' to ' temp coopmat<3, 8, 8, 0> float16_t'
+ERROR: 0:60: 'constructor' : Cooperative matrix constructor argument must be scalar or cooperative matrix 
+ERROR: 0:60: '=' :  cannot convert from ' const float' to ' temp coopmat<3, 4, 4, 0> float'
+ERROR: 0:63: 'expression' :  left of '[' is not of type array, matrix, or vector  
+ERROR: 0:66: '.' : cannot apply to a cooperative matrix type: x
+ERROR: 0:68: 'transpose' : no matching overloaded function found 
+ERROR: 33 compilation errors.  No code generated.
+
+
+SPIR-V is not generated for failed compile or link
diff --git a/Test/baseResults/spv.coopmatKHR_arithmetic.comp.out b/Test/baseResults/spv.coopmatKHR_arithmetic.comp.out
new file mode 100644
index 0000000..2acc002
--- /dev/null
+++ b/Test/baseResults/spv.coopmatKHR_arithmetic.comp.out
@@ -0,0 +1,248 @@
+spv.coopmatKHR_arithmetic.comp
+// Module Version 10000
+// Generated by (magic number): 8000b
+// Id's are bound by 196
+
+                              Capability Shader
+                              Capability Float16
+                              Capability Int8
+                              Capability VulkanMemoryModelKHR
+                              Capability CooperativeMatrixKHR
+                              Extension  "SPV_KHR_cooperative_matrix"
+                              Extension  "SPV_KHR_vulkan_memory_model"
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical VulkanKHR
+                              EntryPoint GLCompute 4  "main"
+                              ExecutionMode 4 LocalSize 64 1 1
+                              Source GLSL 450
+                              SourceExtension  "GL_EXT_shader_explicit_arithmetic_types"
+                              SourceExtension  "GL_KHR_cooperative_matrix"
+                              SourceExtension  "GL_KHR_memory_scope_semantics"
+                              Name 4  "main"
+                              Name 13  "f"
+                              Name 48  "f16"
+                              Name 82  "u32"
+                              Name 117  "u8"
+                              Name 152  "i8"
+                              Decorate 195 BuiltIn WorkgroupSize
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeInt 32 0
+               8:      7(int) Constant 3
+               9:      7(int) Constant 8
+              10:      7(int) Constant 0
+              11:             TypeCooperativeMatrixKHR 6(float) 8 9 9 10
+              12:             TypePointer Function 11
+              39:    6(float) Constant 1073741824
+              45:             TypeFloat 16
+              46:             TypeCooperativeMatrixKHR 45(float16_t) 8 9 9 10
+              47:             TypePointer Function 46
+              74:45(float16_t) Constant 16384
+              80:             TypeCooperativeMatrixKHR 7(int) 8 9 9 10
+              81:             TypePointer Function 80
+             108:      7(int) Constant 2
+             114:             TypeInt 8 0
+             115:             TypeCooperativeMatrixKHR 114(int8_t) 8 9 9 10
+             116:             TypePointer Function 115
+             143: 114(int8_t) Constant 2
+             149:             TypeInt 8 1
+             150:             TypeCooperativeMatrixKHR 149(int8_t) 8 9 9 10
+             151:             TypePointer Function 150
+             178: 149(int8_t) Constant 2
+             192:             TypeVector 7(int) 3
+             193:      7(int) Constant 64
+             194:      7(int) Constant 1
+             195:  192(ivec3) ConstantComposite 193 194 194
+         4(main):           2 Function None 3
+               5:             Label
+           13(f):     12(ptr) Variable Function
+         48(f16):     47(ptr) Variable Function
+         82(u32):     81(ptr) Variable Function
+         117(u8):    116(ptr) Variable Function
+         152(i8):    151(ptr) Variable Function
+              14:          11 Load 13(f)
+              15:          11 Load 13(f)
+              16:          11 FAdd 14 15
+              17:          11 Load 13(f)
+              18:          11 Load 13(f)
+              19:          11 FSub 17 18
+              20:          11 Load 13(f)
+              21:          11 Load 13(f)
+              22:          11 FMul 20 21
+              23:          11 Load 13(f)
+              24:          11 Load 13(f)
+              25:          11 FDiv 23 24
+              26:          11 Load 13(f)
+              27:          11 Load 13(f)
+              28:          11 FAdd 27 26
+                              Store 13(f) 28
+              29:          11 Load 13(f)
+              30:          11 Load 13(f)
+              31:          11 FSub 30 29
+                              Store 13(f) 31
+              32:          11 Load 13(f)
+              33:          11 Load 13(f)
+              34:          11 FMul 33 32
+                              Store 13(f) 34
+              35:          11 Load 13(f)
+              36:          11 Load 13(f)
+              37:          11 FDiv 36 35
+                              Store 13(f) 37
+              38:          11 Load 13(f)
+              40:          11 MatrixTimesScalar 38 39
+              41:          11 Load 13(f)
+              42:          11 MatrixTimesScalar 41 39
+              43:          11 Load 13(f)
+              44:          11 MatrixTimesScalar 43 39
+                              Store 13(f) 44
+              49:          46 Load 48(f16)
+              50:          46 Load 48(f16)
+              51:          46 FAdd 49 50
+              52:          46 Load 48(f16)
+              53:          46 Load 48(f16)
+              54:          46 FSub 52 53
+              55:          46 Load 48(f16)
+              56:          46 Load 48(f16)
+              57:          46 FMul 55 56
+              58:          46 Load 48(f16)
+              59:          46 Load 48(f16)
+              60:          46 FDiv 58 59
+              61:          46 Load 48(f16)
+              62:          46 Load 48(f16)
+              63:          46 FAdd 62 61
+                              Store 48(f16) 63
+              64:          46 Load 48(f16)
+              65:          46 Load 48(f16)
+              66:          46 FSub 65 64
+                              Store 48(f16) 66
+              67:          46 Load 48(f16)
+              68:          46 Load 48(f16)
+              69:          46 FMul 68 67
+                              Store 48(f16) 69
+              70:          46 Load 48(f16)
+              71:          46 Load 48(f16)
+              72:          46 FDiv 71 70
+                              Store 48(f16) 72
+              73:          46 Load 48(f16)
+              75:          46 MatrixTimesScalar 73 74
+              76:          46 Load 48(f16)
+              77:          46 MatrixTimesScalar 76 74
+              78:          46 Load 48(f16)
+              79:          46 MatrixTimesScalar 78 74
+                              Store 48(f16) 79
+              83:          80 Load 82(u32)
+              84:          80 Load 82(u32)
+              85:          80 IAdd 83 84
+              86:          80 Load 82(u32)
+              87:          80 Load 82(u32)
+              88:          80 ISub 86 87
+              89:          80 Load 82(u32)
+              90:          80 Load 82(u32)
+              91:          80 IMul 89 90
+              92:          80 Load 82(u32)
+              93:          80 Load 82(u32)
+              94:          80 UDiv 92 93
+              95:          80 Load 82(u32)
+              96:          80 Load 82(u32)
+              97:          80 IAdd 96 95
+                              Store 82(u32) 97
+              98:          80 Load 82(u32)
+              99:          80 Load 82(u32)
+             100:          80 ISub 99 98
+                              Store 82(u32) 100
+             101:          80 Load 82(u32)
+             102:          80 Load 82(u32)
+             103:          80 IMul 102 101
+                              Store 82(u32) 103
+             104:          80 Load 82(u32)
+             105:          80 Load 82(u32)
+             106:          80 UDiv 105 104
+                              Store 82(u32) 106
+             107:          80 Load 82(u32)
+             109:          80 MatrixTimesScalar 107 108
+             110:          80 Load 82(u32)
+             111:          80 MatrixTimesScalar 110 108
+             112:          80 Load 82(u32)
+             113:          80 MatrixTimesScalar 112 108
+                              Store 82(u32) 113
+             118:         115 Load 117(u8)
+             119:         115 Load 117(u8)
+             120:         115 IAdd 118 119
+             121:         115 Load 117(u8)
+             122:         115 Load 117(u8)
+             123:         115 ISub 121 122
+             124:         115 Load 117(u8)
+             125:         115 Load 117(u8)
+             126:         115 IMul 124 125
+             127:         115 Load 117(u8)
+             128:         115 Load 117(u8)
+             129:         115 UDiv 127 128
+             130:         115 Load 117(u8)
+             131:         115 Load 117(u8)
+             132:         115 IAdd 131 130
+                              Store 117(u8) 132
+             133:         115 Load 117(u8)
+             134:         115 Load 117(u8)
+             135:         115 ISub 134 133
+                              Store 117(u8) 135
+             136:         115 Load 117(u8)
+             137:         115 Load 117(u8)
+             138:         115 IMul 137 136
+                              Store 117(u8) 138
+             139:         115 Load 117(u8)
+             140:         115 Load 117(u8)
+             141:         115 UDiv 140 139
+                              Store 117(u8) 141
+             142:         115 Load 117(u8)
+             144:         115 MatrixTimesScalar 142 143
+             145:         115 Load 117(u8)
+             146:         115 MatrixTimesScalar 145 143
+             147:         115 Load 117(u8)
+             148:         115 MatrixTimesScalar 147 143
+                              Store 117(u8) 148
+             153:         150 Load 152(i8)
+             154:         150 Load 152(i8)
+             155:         150 IAdd 153 154
+             156:         150 Load 152(i8)
+             157:         150 Load 152(i8)
+             158:         150 ISub 156 157
+             159:         150 Load 152(i8)
+             160:         150 Load 152(i8)
+             161:         150 IMul 159 160
+             162:         150 Load 152(i8)
+             163:         150 Load 152(i8)
+             164:         150 SDiv 162 163
+             165:         150 Load 152(i8)
+             166:         150 Load 152(i8)
+             167:         150 IAdd 166 165
+                              Store 152(i8) 167
+             168:         150 Load 152(i8)
+             169:         150 Load 152(i8)
+             170:         150 ISub 169 168
+                              Store 152(i8) 170
+             171:         150 Load 152(i8)
+             172:         150 Load 152(i8)
+             173:         150 IMul 172 171
+                              Store 152(i8) 173
+             174:         150 Load 152(i8)
+             175:         150 Load 152(i8)
+             176:         150 SDiv 175 174
+                              Store 152(i8) 176
+             177:         150 Load 152(i8)
+             179:         150 MatrixTimesScalar 177 178
+             180:         150 Load 152(i8)
+             181:         150 MatrixTimesScalar 180 178
+             182:         150 Load 152(i8)
+             183:         150 MatrixTimesScalar 182 178
+                              Store 152(i8) 183
+             184:          11 Load 13(f)
+             185:          11 FNegate 184
+             186:          46 Load 48(f16)
+             187:          46 FNegate 186
+             188:         150 Load 152(i8)
+             189:         150 SNegate 188
+             190:         115 Load 117(u8)
+             191:         115 SNegate 190
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.coopmatKHR_arithmeticError.comp.out b/Test/baseResults/spv.coopmatKHR_arithmeticError.comp.out
new file mode 100644
index 0000000..9bcdfb3
--- /dev/null
+++ b/Test/baseResults/spv.coopmatKHR_arithmeticError.comp.out
@@ -0,0 +1,64 @@
+spv.coopmatKHR_arithmeticError.comp
+ERROR: 0:21: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type ' temp coopmat<3, 8, 8, 0> float' and a right operand of type ' const float' (or there is no acceptable conversion)
+ERROR: 0:22: '-' :  wrong operand types: no operation '-' exists that takes a left-hand operand of type ' temp coopmat<3, 8, 8, 0> float' and a right operand of type ' const float' (or there is no acceptable conversion)
+ERROR: 0:23: '/' :  wrong operand types: no operation '/' exists that takes a left-hand operand of type ' temp coopmat<3, 8, 8, 0> float' and a right operand of type ' const float' (or there is no acceptable conversion)
+ERROR: 0:24: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type ' const float' and a right operand of type ' temp coopmat<3, 8, 8, 0> float' (or there is no acceptable conversion)
+ERROR: 0:25: '-' :  wrong operand types: no operation '-' exists that takes a left-hand operand of type ' const float' and a right operand of type ' temp coopmat<3, 8, 8, 0> float' (or there is no acceptable conversion)
+ERROR: 0:26: '/' :  wrong operand types: no operation '/' exists that takes a left-hand operand of type ' const float' and a right operand of type ' temp coopmat<3, 8, 8, 0> float' (or there is no acceptable conversion)
+ERROR: 0:27: 'assign' :  cannot convert from ' const float' to ' temp coopmat<3, 8, 8, 0> float'
+ERROR: 0:28: 'assign' :  cannot convert from ' const float' to ' temp coopmat<3, 8, 8, 0> float'
+ERROR: 0:29: 'assign' :  cannot convert from ' const float' to ' temp coopmat<3, 8, 8, 0> float'
+ERROR: 0:31: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type ' temp coopmat<3, 8, 8, 0> float' and a right operand of type ' temp coopmat<3, 8, 8, 0> float16_t' (or there is no acceptable conversion)
+ERROR: 0:32: '-' :  wrong operand types: no operation '-' exists that takes a left-hand operand of type ' temp coopmat<3, 8, 8, 0> float' and a right operand of type ' temp coopmat<3, 8, 8, 0> float16_t' (or there is no acceptable conversion)
+ERROR: 0:33: '*' :  wrong operand types: no operation '*' exists that takes a left-hand operand of type ' temp coopmat<3, 8, 8, 0> float' and a right operand of type ' temp coopmat<3, 8, 8, 0> float16_t' (or there is no acceptable conversion)
+ERROR: 0:34: '/' :  wrong operand types: no operation '/' exists that takes a left-hand operand of type ' temp coopmat<3, 8, 8, 0> float' and a right operand of type ' temp coopmat<3, 8, 8, 0> float16_t' (or there is no acceptable conversion)
+ERROR: 0:35: 'assign' :  cannot convert from ' temp coopmat<3, 8, 8, 0> float16_t' to ' temp coopmat<3, 8, 8, 0> float'
+ERROR: 0:36: 'assign' :  cannot convert from ' temp coopmat<3, 8, 8, 0> float16_t' to ' temp coopmat<3, 8, 8, 0> float'
+ERROR: 0:37: 'assign' :  cannot convert from ' temp coopmat<3, 8, 8, 0> float16_t' to ' temp coopmat<3, 8, 8, 0> float'
+ERROR: 0:38: 'assign' :  cannot convert from ' temp coopmat<3, 8, 8, 0> float16_t' to ' temp coopmat<3, 8, 8, 0> float'
+ERROR: 0:40: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type ' temp coopmat<3, 8, 8, 0> float' and a right operand of type ' temp coopmat<3, 8, 8, 1> float' (or there is no acceptable conversion)
+ERROR: 0:41: '-' :  wrong operand types: no operation '-' exists that takes a left-hand operand of type ' temp coopmat<3, 8, 8, 0> float' and a right operand of type ' temp coopmat<3, 8, 8, 1> float' (or there is no acceptable conversion)
+ERROR: 0:42: '*' :  wrong operand types: no operation '*' exists that takes a left-hand operand of type ' temp coopmat<3, 8, 8, 0> float' and a right operand of type ' temp coopmat<3, 8, 8, 1> float' (or there is no acceptable conversion)
+ERROR: 0:43: '/' :  wrong operand types: no operation '/' exists that takes a left-hand operand of type ' temp coopmat<3, 8, 8, 0> float' and a right operand of type ' temp coopmat<3, 8, 8, 1> float' (or there is no acceptable conversion)
+ERROR: 0:44: 'assign' :  cannot convert from ' temp coopmat<3, 8, 8, 1> float' to ' temp coopmat<3, 8, 8, 0> float'
+ERROR: 0:45: 'assign' :  cannot convert from ' temp coopmat<3, 8, 8, 1> float' to ' temp coopmat<3, 8, 8, 0> float'
+ERROR: 0:46: 'assign' :  cannot convert from ' temp coopmat<3, 8, 8, 1> float' to ' temp coopmat<3, 8, 8, 0> float'
+ERROR: 0:47: 'assign' :  cannot convert from ' temp coopmat<3, 8, 8, 1> float' to ' temp coopmat<3, 8, 8, 0> float'
+ERROR: 0:49: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type ' temp coopmat<3, 8, 8, 0> float' and a right operand of type ' temp coopmat<3, 16, 8, 0> float' (or there is no acceptable conversion)
+ERROR: 0:50: '-' :  wrong operand types: no operation '-' exists that takes a left-hand operand of type ' temp coopmat<3, 8, 8, 0> float' and a right operand of type ' temp coopmat<3, 16, 8, 0> float' (or there is no acceptable conversion)
+ERROR: 0:51: '*' :  wrong operand types: no operation '*' exists that takes a left-hand operand of type ' temp coopmat<3, 8, 8, 0> float' and a right operand of type ' temp coopmat<3, 16, 8, 0> float' (or there is no acceptable conversion)
+ERROR: 0:52: '/' :  wrong operand types: no operation '/' exists that takes a left-hand operand of type ' temp coopmat<3, 8, 8, 0> float' and a right operand of type ' temp coopmat<3, 16, 8, 0> float' (or there is no acceptable conversion)
+ERROR: 0:53: 'assign' :  cannot convert from ' temp coopmat<3, 16, 8, 0> float' to ' temp coopmat<3, 8, 8, 0> float'
+ERROR: 0:54: 'assign' :  cannot convert from ' temp coopmat<3, 16, 8, 0> float' to ' temp coopmat<3, 8, 8, 0> float'
+ERROR: 0:55: 'assign' :  cannot convert from ' temp coopmat<3, 16, 8, 0> float' to ' temp coopmat<3, 8, 8, 0> float'
+ERROR: 0:56: 'assign' :  cannot convert from ' temp coopmat<3, 16, 8, 0> float' to ' temp coopmat<3, 8, 8, 0> float'
+ERROR: 0:58: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type ' temp coopmat<3, 8, 8, 0> uint8_t' and a right operand of type ' temp coopmat<3, 8, 8, 0> int8_t' (or there is no acceptable conversion)
+ERROR: 0:59: '-' :  wrong operand types: no operation '-' exists that takes a left-hand operand of type ' temp coopmat<3, 8, 8, 0> uint8_t' and a right operand of type ' temp coopmat<3, 8, 8, 0> int8_t' (or there is no acceptable conversion)
+ERROR: 0:60: '*' :  wrong operand types: no operation '*' exists that takes a left-hand operand of type ' temp coopmat<3, 8, 8, 0> uint8_t' and a right operand of type ' temp coopmat<3, 8, 8, 0> int8_t' (or there is no acceptable conversion)
+ERROR: 0:61: '/' :  wrong operand types: no operation '/' exists that takes a left-hand operand of type ' temp coopmat<3, 8, 8, 0> uint8_t' and a right operand of type ' temp coopmat<3, 8, 8, 0> int8_t' (or there is no acceptable conversion)
+ERROR: 0:62: 'assign' :  cannot convert from ' temp coopmat<3, 8, 8, 0> int8_t' to ' temp coopmat<3, 8, 8, 0> uint8_t'
+ERROR: 0:63: 'assign' :  cannot convert from ' temp coopmat<3, 8, 8, 0> int8_t' to ' temp coopmat<3, 8, 8, 0> uint8_t'
+ERROR: 0:64: 'assign' :  cannot convert from ' temp coopmat<3, 8, 8, 0> int8_t' to ' temp coopmat<3, 8, 8, 0> uint8_t'
+ERROR: 0:65: 'assign' :  cannot convert from ' temp coopmat<3, 8, 8, 0> int8_t' to ' temp coopmat<3, 8, 8, 0> uint8_t'
+ERROR: 0:67: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type ' temp coopmat<3, 8, 8, 0> uint8_t' and a right operand of type ' const uint8_t' (or there is no acceptable conversion)
+ERROR: 0:68: '-' :  wrong operand types: no operation '-' exists that takes a left-hand operand of type ' temp coopmat<3, 8, 8, 0> uint8_t' and a right operand of type ' const uint8_t' (or there is no acceptable conversion)
+ERROR: 0:69: '/' :  wrong operand types: no operation '/' exists that takes a left-hand operand of type ' temp coopmat<3, 8, 8, 0> uint8_t' and a right operand of type ' const uint8_t' (or there is no acceptable conversion)
+ERROR: 0:70: 'assign' :  cannot convert from ' const uint8_t' to ' temp coopmat<3, 8, 8, 0> uint8_t'
+ERROR: 0:71: 'assign' :  cannot convert from ' const uint8_t' to ' temp coopmat<3, 8, 8, 0> uint8_t'
+ERROR: 0:72: 'assign' :  cannot convert from ' const uint8_t' to ' temp coopmat<3, 8, 8, 0> uint8_t'
+ERROR: 0:74: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type ' temp coopmat<3, 8, 8, 0> int8_t' and a right operand of type ' const int8_t' (or there is no acceptable conversion)
+ERROR: 0:75: '-' :  wrong operand types: no operation '-' exists that takes a left-hand operand of type ' temp coopmat<3, 8, 8, 0> int8_t' and a right operand of type ' const int8_t' (or there is no acceptable conversion)
+ERROR: 0:76: '/' :  wrong operand types: no operation '/' exists that takes a left-hand operand of type ' temp coopmat<3, 8, 8, 0> int8_t' and a right operand of type ' const int8_t' (or there is no acceptable conversion)
+ERROR: 0:77: 'assign' :  cannot convert from ' const int8_t' to ' temp coopmat<3, 8, 8, 0> int8_t'
+ERROR: 0:78: 'assign' :  cannot convert from ' const int8_t' to ' temp coopmat<3, 8, 8, 0> int8_t'
+ERROR: 0:79: 'assign' :  cannot convert from ' const int8_t' to ' temp coopmat<3, 8, 8, 0> int8_t'
+ERROR: 0:81: '+' :  wrong operand types: no operation '+' exists that takes a left-hand operand of type ' temp coopmat<3, 8, 8, 0> int' and a right operand of type ' const int' (or there is no acceptable conversion)
+ERROR: 0:82: '-' :  wrong operand types: no operation '-' exists that takes a left-hand operand of type ' temp coopmat<3, 8, 8, 0> int' and a right operand of type ' const int' (or there is no acceptable conversion)
+ERROR: 0:83: '/' :  wrong operand types: no operation '/' exists that takes a left-hand operand of type ' temp coopmat<3, 8, 8, 0> int' and a right operand of type ' const int' (or there is no acceptable conversion)
+ERROR: 0:84: 'assign' :  cannot convert from ' const int' to ' temp coopmat<3, 8, 8, 0> int'
+ERROR: 0:85: 'assign' :  cannot convert from ' const int' to ' temp coopmat<3, 8, 8, 0> int'
+ERROR: 0:86: 'assign' :  cannot convert from ' const int' to ' temp coopmat<3, 8, 8, 0> int'
+ERROR: 59 compilation errors.  No code generated.
+
+
+SPIR-V is not generated for failed compile or link
diff --git a/Test/baseResults/spv.coopmatKHR_constructor.comp.out b/Test/baseResults/spv.coopmatKHR_constructor.comp.out
new file mode 100644
index 0000000..0c9923b
--- /dev/null
+++ b/Test/baseResults/spv.coopmatKHR_constructor.comp.out
@@ -0,0 +1,632 @@
+spv.coopmatKHR_constructor.comp
+// Module Version 10000
+// Generated by (magic number): 8000b
+// Id's are bound by 481
+
+                              Capability Shader
+                              Capability Float16
+                              Capability Int16
+                              Capability Int8
+                              Capability VulkanMemoryModelKHR
+                              Capability CooperativeMatrixKHR
+                              Extension  "SPV_KHR_cooperative_matrix"
+                              Extension  "SPV_KHR_vulkan_memory_model"
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical VulkanKHR
+                              EntryPoint GLCompute 4  "main"
+                              ExecutionMode 4 LocalSize 64 1 1
+                              Source GLSL 450
+                              SourceExtension  "GL_EXT_shader_explicit_arithmetic_types"
+                              SourceExtension  "GL_KHR_cooperative_matrix"
+                              SourceExtension  "GL_KHR_memory_scope_semantics"
+                              Name 4  "main"
+                              Name 154  "v"
+                              Name 158  "v"
+                              Name 164  "v"
+                              Name 170  "v"
+                              Name 176  "v"
+                              Name 182  "v"
+                              Name 188  "v"
+                              Name 194  "v"
+                              Name 199  "v"
+                              Name 204  "v"
+                              Name 207  "v"
+                              Name 212  "v"
+                              Name 217  "v"
+                              Name 222  "v"
+                              Name 227  "v"
+                              Name 232  "v"
+                              Name 237  "v"
+                              Name 242  "v"
+                              Name 247  "v"
+                              Name 250  "v"
+                              Name 255  "v"
+                              Name 260  "v"
+                              Name 265  "v"
+                              Name 271  "v"
+                              Name 277  "v"
+                              Name 282  "v"
+                              Name 287  "v"
+                              Name 292  "v"
+                              Name 295  "v"
+                              Name 300  "v"
+                              Name 306  "v"
+                              Name 311  "v"
+                              Name 317  "v"
+                              Name 322  "v"
+                              Name 327  "v"
+                              Name 332  "v"
+                              Name 337  "v"
+                              Name 340  "v"
+                              Name 346  "v"
+                              Name 352  "v"
+                              Name 357  "v"
+                              Name 362  "v"
+                              Name 367  "v"
+                              Name 372  "v"
+                              Name 378  "v"
+                              Name 384  "v"
+                              Name 387  "v"
+                              Name 392  "v"
+                              Name 397  "v"
+                              Name 402  "v"
+                              Name 407  "v"
+                              Name 413  "v"
+                              Name 418  "v"
+                              Name 424  "v"
+                              Name 429  "v"
+                              Name 432  "v"
+                              Name 437  "v"
+                              Name 442  "v"
+                              Name 447  "v"
+                              Name 453  "v"
+                              Name 459  "v"
+                              Name 464  "v"
+                              Name 469  "v"
+                              Name 474  "v"
+                              Decorate 480 BuiltIn WorkgroupSize
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeInt 32 0
+               8:      7(int) Constant 3
+               9:      7(int) Constant 8
+              10:      7(int) Constant 0
+              11:             TypeCooperativeMatrixKHR 6(float) 8 9 9 10
+              12:    6(float) Constant 1065353216
+              13:          11 ConstantComposite 12
+              14:    6(float) Constant 1073741824
+              15:          11 ConstantComposite 14
+              16:    6(float) Constant 1077936128
+              17:          11 ConstantComposite 16
+              18:    6(float) Constant 1082130432
+              19:          11 ConstantComposite 18
+              20:    6(float) Constant 1084227584
+              21:          11 ConstantComposite 20
+              22:    6(float) Constant 1086324736
+              23:          11 ConstantComposite 22
+              24:    6(float) Constant 1088421888
+              25:          11 ConstantComposite 24
+              26:    6(float) Constant 1090519040
+              27:          11 ConstantComposite 26
+              28:             TypeFloat 16
+              29:             TypeCooperativeMatrixKHR 28(float16_t) 8 9 9 10
+              30:28(float16_t) Constant 18816
+              31:          29 ConstantComposite 30
+              32:28(float16_t) Constant 18944
+              33:          29 ConstantComposite 32
+              34:28(float16_t) Constant 19072
+              35:          29 ConstantComposite 34
+              36:28(float16_t) Constant 19200
+              37:          29 ConstantComposite 36
+              38:28(float16_t) Constant 19328
+              39:          29 ConstantComposite 38
+              40:28(float16_t) Constant 19456
+              41:          29 ConstantComposite 40
+              42:28(float16_t) Constant 19520
+              43:          29 ConstantComposite 42
+              44:28(float16_t) Constant 19584
+              45:          29 ConstantComposite 44
+              46:             TypeCooperativeMatrixKHR 7(int) 8 9 9 10
+              47:      7(int) Constant 21
+              48:          46 ConstantComposite 47
+              49:      7(int) Constant 22
+              50:          46 ConstantComposite 49
+              51:      7(int) Constant 23
+              52:          46 ConstantComposite 51
+              53:      7(int) Constant 24
+              54:          46 ConstantComposite 53
+              55:      7(int) Constant 25
+              56:          46 ConstantComposite 55
+              57:      7(int) Constant 26
+              58:          46 ConstantComposite 57
+              59:      7(int) Constant 27
+              60:          46 ConstantComposite 59
+              61:      7(int) Constant 28
+              62:          46 ConstantComposite 61
+              63:             TypeInt 16 0
+              64:             TypeCooperativeMatrixKHR 63(int16_t) 8 9 9 10
+              65: 63(int16_t) Constant 31
+              66:          64 ConstantComposite 65
+              67: 63(int16_t) Constant 32
+              68:          64 ConstantComposite 67
+              69: 63(int16_t) Constant 33
+              70:          64 ConstantComposite 69
+              71: 63(int16_t) Constant 34
+              72:          64 ConstantComposite 71
+              73: 63(int16_t) Constant 35
+              74:          64 ConstantComposite 73
+              75: 63(int16_t) Constant 36
+              76:          64 ConstantComposite 75
+              77: 63(int16_t) Constant 37
+              78:          64 ConstantComposite 77
+              79: 63(int16_t) Constant 38
+              80:          64 ConstantComposite 79
+              81:             TypeInt 8 0
+              82:             TypeCooperativeMatrixKHR 81(int8_t) 8 9 9 10
+              83:  81(int8_t) Constant 41
+              84:          82 ConstantComposite 83
+              85:  81(int8_t) Constant 42
+              86:          82 ConstantComposite 85
+              87:  81(int8_t) Constant 43
+              88:          82 ConstantComposite 87
+              89:  81(int8_t) Constant 44
+              90:          82 ConstantComposite 89
+              91:  81(int8_t) Constant 45
+              92:          82 ConstantComposite 91
+              93:  81(int8_t) Constant 46
+              94:          82 ConstantComposite 93
+              95:  81(int8_t) Constant 47
+              96:          82 ConstantComposite 95
+              97:  81(int8_t) Constant 48
+              98:          82 ConstantComposite 97
+              99:             TypeInt 32 1
+             100:             TypeCooperativeMatrixKHR 99(int) 8 9 9 10
+             101:     99(int) Constant 51
+             102:         100 ConstantComposite 101
+             103:     99(int) Constant 52
+             104:         100 ConstantComposite 103
+             105:     99(int) Constant 53
+             106:         100 ConstantComposite 105
+             107:     99(int) Constant 54
+             108:         100 ConstantComposite 107
+             109:     99(int) Constant 55
+             110:         100 ConstantComposite 109
+             111:     99(int) Constant 56
+             112:         100 ConstantComposite 111
+             113:     99(int) Constant 57
+             114:         100 ConstantComposite 113
+             115:     99(int) Constant 58
+             116:         100 ConstantComposite 115
+             117:             TypeInt 16 1
+             118:             TypeCooperativeMatrixKHR 117(int16_t) 8 9 9 10
+             119:117(int16_t) Constant 61
+             120:         118 ConstantComposite 119
+             121:117(int16_t) Constant 62
+             122:         118 ConstantComposite 121
+             123:117(int16_t) Constant 63
+             124:         118 ConstantComposite 123
+             125:117(int16_t) Constant 64
+             126:         118 ConstantComposite 125
+             127:117(int16_t) Constant 65
+             128:         118 ConstantComposite 127
+             129:117(int16_t) Constant 66
+             130:         118 ConstantComposite 129
+             131:117(int16_t) Constant 67
+             132:         118 ConstantComposite 131
+             133:117(int16_t) Constant 68
+             134:         118 ConstantComposite 133
+             135:             TypeInt 8 1
+             136:             TypeCooperativeMatrixKHR 135(int8_t) 8 9 9 10
+             137: 135(int8_t) Constant 71
+             138:         136 ConstantComposite 137
+             139: 135(int8_t) Constant 72
+             140:         136 ConstantComposite 139
+             141: 135(int8_t) Constant 73
+             142:         136 ConstantComposite 141
+             143: 135(int8_t) Constant 74
+             144:         136 ConstantComposite 143
+             145: 135(int8_t) Constant 75
+             146:         136 ConstantComposite 145
+             147: 135(int8_t) Constant 76
+             148:         136 ConstantComposite 147
+             149: 135(int8_t) Constant 77
+             150:         136 ConstantComposite 149
+             151: 135(int8_t) Constant 78
+             152:         136 ConstantComposite 151
+             153:             TypePointer Function 11
+             155:    6(float) Constant 1120534528
+             156:          11 ConstantComposite 155
+             157:             TypePointer Function 29
+             159:28(float16_t) Constant 22112
+             160:          29 ConstantComposite 159
+             163:             TypePointer Function 46
+             165:      7(int) Constant 103
+             166:          46 ConstantComposite 165
+             169:             TypePointer Function 64
+             171: 63(int16_t) Constant 104
+             172:          64 ConstantComposite 171
+             175:             TypePointer Function 82
+             177:  81(int8_t) Constant 105
+             178:          82 ConstantComposite 177
+             181:             TypePointer Function 100
+             183:     99(int) Constant 106
+             184:         100 ConstantComposite 183
+             187:             TypePointer Function 118
+             189:117(int16_t) Constant 107
+             190:         118 ConstantComposite 189
+             193:             TypePointer Function 136
+             195: 135(int8_t) Constant 108
+             196:         136 ConstantComposite 195
+             200:    6(float) Constant 1121845248
+             201:          11 ConstantComposite 200
+             205:28(float16_t) Constant 22272
+             206:          29 ConstantComposite 205
+             208:      7(int) Constant 113
+             209:          46 ConstantComposite 208
+             213: 63(int16_t) Constant 114
+             214:          64 ConstantComposite 213
+             218:  81(int8_t) Constant 115
+             219:          82 ConstantComposite 218
+             223:     99(int) Constant 116
+             224:         100 ConstantComposite 223
+             228:117(int16_t) Constant 117
+             229:         118 ConstantComposite 228
+             233: 135(int8_t) Constant 118
+             234:         136 ConstantComposite 233
+             238:    6(float) Constant 1123155968
+             239:          11 ConstantComposite 238
+             243:28(float16_t) Constant 22432
+             244:          29 ConstantComposite 243
+             248:      7(int) Constant 123
+             249:          46 ConstantComposite 248
+             251: 63(int16_t) Constant 124
+             252:          64 ConstantComposite 251
+             256:  81(int8_t) Constant 125
+             257:          82 ConstantComposite 256
+             261:     99(int) Constant 126
+             262:         100 ConstantComposite 261
+             266:117(int16_t) Constant 127
+             267:         118 ConstantComposite 266
+             272: 135(int8_t) Constant 4294967168
+             273:         136 ConstantComposite 272
+             278:    6(float) Constant 1124270080
+             279:          11 ConstantComposite 278
+             283:28(float16_t) Constant 22560
+             284:          29 ConstantComposite 283
+             288:      7(int) Constant 133
+             289:          46 ConstantComposite 288
+             293: 63(int16_t) Constant 134
+             294:          64 ConstantComposite 293
+             296:  81(int8_t) Constant 135
+             297:          82 ConstantComposite 296
+             301:     99(int) Constant 136
+             302:         100 ConstantComposite 301
+             307:117(int16_t) Constant 137
+             308:         118 ConstantComposite 307
+             312: 135(int8_t) Constant 4294967178
+             313:         136 ConstantComposite 312
+             318:    6(float) Constant 1124925440
+             319:          11 ConstantComposite 318
+             323:28(float16_t) Constant 22640
+             324:          29 ConstantComposite 323
+             328:      7(int) Constant 143
+             329:          46 ConstantComposite 328
+             333: 63(int16_t) Constant 144
+             334:          64 ConstantComposite 333
+             338:  81(int8_t) Constant 145
+             339:          82 ConstantComposite 338
+             341:     99(int) Constant 146
+             342:         100 ConstantComposite 341
+             347:117(int16_t) Constant 147
+             348:         118 ConstantComposite 347
+             353: 135(int8_t) Constant 4294967188
+             354:         136 ConstantComposite 353
+             358:    6(float) Constant 1125580800
+             359:          11 ConstantComposite 358
+             363:28(float16_t) Constant 22720
+             364:          29 ConstantComposite 363
+             368:      7(int) Constant 153
+             369:          46 ConstantComposite 368
+             373: 63(int16_t) Constant 154
+             374:          64 ConstantComposite 373
+             379:  81(int8_t) Constant 155
+             380:          82 ConstantComposite 379
+             385:     99(int) Constant 156
+             386:         100 ConstantComposite 385
+             388:117(int16_t) Constant 157
+             389:         118 ConstantComposite 388
+             393: 135(int8_t) Constant 4294967198
+             394:         136 ConstantComposite 393
+             398:    6(float) Constant 1126236160
+             399:          11 ConstantComposite 398
+             403:28(float16_t) Constant 22800
+             404:          29 ConstantComposite 403
+             408:      7(int) Constant 163
+             409:          46 ConstantComposite 408
+             414: 63(int16_t) Constant 164
+             415:          64 ConstantComposite 414
+             419:  81(int8_t) Constant 165
+             420:          82 ConstantComposite 419
+             425:     99(int) Constant 166
+             426:         100 ConstantComposite 425
+             430:117(int16_t) Constant 167
+             431:         118 ConstantComposite 430
+             433: 135(int8_t) Constant 4294967208
+             434:         136 ConstantComposite 433
+             438:    6(float) Constant 1126891520
+             439:          11 ConstantComposite 438
+             443:28(float16_t) Constant 22880
+             444:          29 ConstantComposite 443
+             448:      7(int) Constant 173
+             449:          46 ConstantComposite 448
+             454: 63(int16_t) Constant 174
+             455:          64 ConstantComposite 454
+             460:  81(int8_t) Constant 175
+             461:          82 ConstantComposite 460
+             465:     99(int) Constant 176
+             466:         100 ConstantComposite 465
+             470:117(int16_t) Constant 177
+             471:         118 ConstantComposite 470
+             475: 135(int8_t) Constant 4294967218
+             476:         136 ConstantComposite 475
+             477:             TypeVector 7(int) 3
+             478:      7(int) Constant 64
+             479:      7(int) Constant 1
+             480:  477(ivec3) ConstantComposite 478 479 479
+         4(main):           2 Function None 3
+               5:             Label
+          154(v):    153(ptr) Variable Function
+          158(v):    157(ptr) Variable Function
+          164(v):    163(ptr) Variable Function
+          170(v):    169(ptr) Variable Function
+          176(v):    175(ptr) Variable Function
+          182(v):    181(ptr) Variable Function
+          188(v):    187(ptr) Variable Function
+          194(v):    193(ptr) Variable Function
+          199(v):    153(ptr) Variable Function
+          204(v):    157(ptr) Variable Function
+          207(v):    163(ptr) Variable Function
+          212(v):    169(ptr) Variable Function
+          217(v):    175(ptr) Variable Function
+          222(v):    181(ptr) Variable Function
+          227(v):    187(ptr) Variable Function
+          232(v):    193(ptr) Variable Function
+          237(v):    153(ptr) Variable Function
+          242(v):    157(ptr) Variable Function
+          247(v):    163(ptr) Variable Function
+          250(v):    169(ptr) Variable Function
+          255(v):    175(ptr) Variable Function
+          260(v):    181(ptr) Variable Function
+          265(v):    187(ptr) Variable Function
+          271(v):    193(ptr) Variable Function
+          277(v):    153(ptr) Variable Function
+          282(v):    157(ptr) Variable Function
+          287(v):    163(ptr) Variable Function
+          292(v):    169(ptr) Variable Function
+          295(v):    175(ptr) Variable Function
+          300(v):    181(ptr) Variable Function
+          306(v):    187(ptr) Variable Function
+          311(v):    193(ptr) Variable Function
+          317(v):    153(ptr) Variable Function
+          322(v):    157(ptr) Variable Function
+          327(v):    163(ptr) Variable Function
+          332(v):    169(ptr) Variable Function
+          337(v):    175(ptr) Variable Function
+          340(v):    181(ptr) Variable Function
+          346(v):    187(ptr) Variable Function
+          352(v):    193(ptr) Variable Function
+          357(v):    153(ptr) Variable Function
+          362(v):    157(ptr) Variable Function
+          367(v):    163(ptr) Variable Function
+          372(v):    169(ptr) Variable Function
+          378(v):    175(ptr) Variable Function
+          384(v):    181(ptr) Variable Function
+          387(v):    187(ptr) Variable Function
+          392(v):    193(ptr) Variable Function
+          397(v):    153(ptr) Variable Function
+          402(v):    157(ptr) Variable Function
+          407(v):    163(ptr) Variable Function
+          413(v):    169(ptr) Variable Function
+          418(v):    175(ptr) Variable Function
+          424(v):    181(ptr) Variable Function
+          429(v):    187(ptr) Variable Function
+          432(v):    193(ptr) Variable Function
+          437(v):    153(ptr) Variable Function
+          442(v):    157(ptr) Variable Function
+          447(v):    163(ptr) Variable Function
+          453(v):    169(ptr) Variable Function
+          459(v):    175(ptr) Variable Function
+          464(v):    181(ptr) Variable Function
+          469(v):    187(ptr) Variable Function
+          474(v):    193(ptr) Variable Function
+                              Store 154(v) 156
+                              Store 158(v) 160
+             161:          29 Load 158(v)
+             162:          11 FConvert 161
+                              Store 164(v) 166
+             167:          46 Load 164(v)
+             168:          11 ConvertUToF 167
+                              Store 170(v) 172
+             173:          64 Load 170(v)
+             174:          11 ConvertUToF 173
+                              Store 176(v) 178
+             179:          82 Load 176(v)
+             180:          11 ConvertUToF 179
+                              Store 182(v) 184
+             185:         100 Load 182(v)
+             186:          11 ConvertSToF 185
+                              Store 188(v) 190
+             191:         118 Load 188(v)
+             192:          11 ConvertSToF 191
+                              Store 194(v) 196
+             197:         136 Load 194(v)
+             198:          11 ConvertSToF 197
+                              Store 199(v) 201
+             202:          11 Load 199(v)
+             203:          29 FConvert 202
+                              Store 204(v) 206
+                              Store 207(v) 209
+             210:          46 Load 207(v)
+             211:          29 ConvertUToF 210
+                              Store 212(v) 214
+             215:          64 Load 212(v)
+             216:          29 ConvertUToF 215
+                              Store 217(v) 219
+             220:          82 Load 217(v)
+             221:          29 ConvertUToF 220
+                              Store 222(v) 224
+             225:         100 Load 222(v)
+             226:          29 ConvertSToF 225
+                              Store 227(v) 229
+             230:         118 Load 227(v)
+             231:          29 ConvertSToF 230
+                              Store 232(v) 234
+             235:         136 Load 232(v)
+             236:          29 ConvertSToF 235
+                              Store 237(v) 239
+             240:          11 Load 237(v)
+             241:          46 ConvertFToU 240
+                              Store 242(v) 244
+             245:          29 Load 242(v)
+             246:          46 ConvertFToU 245
+                              Store 247(v) 249
+                              Store 250(v) 252
+             253:          64 Load 250(v)
+             254:          46 UConvert 253
+                              Store 255(v) 257
+             258:          82 Load 255(v)
+             259:          46 UConvert 258
+                              Store 260(v) 262
+             263:         100 Load 260(v)
+             264:          46 Bitcast 263
+                              Store 265(v) 267
+             268:         118 Load 265(v)
+             269:         100 SConvert 268
+             270:          46 Bitcast 269
+                              Store 271(v) 273
+             274:         136 Load 271(v)
+             275:         100 SConvert 274
+             276:          46 Bitcast 275
+                              Store 277(v) 279
+             280:          11 Load 277(v)
+             281:          64 ConvertFToU 280
+                              Store 282(v) 284
+             285:          29 Load 282(v)
+             286:          64 ConvertFToU 285
+                              Store 287(v) 289
+             290:          46 Load 287(v)
+             291:          64 UConvert 290
+                              Store 292(v) 294
+                              Store 295(v) 297
+             298:          82 Load 295(v)
+             299:          64 UConvert 298
+                              Store 300(v) 302
+             303:         100 Load 300(v)
+             304:         118 SConvert 303
+             305:          64 Bitcast 304
+                              Store 306(v) 308
+             309:         118 Load 306(v)
+             310:          64 Bitcast 309
+                              Store 311(v) 313
+             314:         136 Load 311(v)
+             315:         118 SConvert 314
+             316:          64 Bitcast 315
+                              Store 317(v) 319
+             320:          11 Load 317(v)
+             321:          82 ConvertFToU 320
+                              Store 322(v) 324
+             325:          29 Load 322(v)
+             326:          82 ConvertFToU 325
+                              Store 327(v) 329
+             330:          46 Load 327(v)
+             331:          82 UConvert 330
+                              Store 332(v) 334
+             335:          64 Load 332(v)
+             336:          82 UConvert 335
+                              Store 337(v) 339
+                              Store 340(v) 342
+             343:         100 Load 340(v)
+             344:         136 SConvert 343
+             345:          82 Bitcast 344
+                              Store 346(v) 348
+             349:         118 Load 346(v)
+             350:         136 SConvert 349
+             351:          82 Bitcast 350
+                              Store 352(v) 354
+             355:         136 Load 352(v)
+             356:          82 Bitcast 355
+                              Store 357(v) 359
+             360:          11 Load 357(v)
+             361:         100 ConvertFToS 360
+                              Store 362(v) 364
+             365:          29 Load 362(v)
+             366:         100 ConvertFToS 365
+                              Store 367(v) 369
+             370:          46 Load 367(v)
+             371:         100 Bitcast 370
+                              Store 372(v) 374
+             375:          64 Load 372(v)
+             376:          46 UConvert 375
+             377:         100 Bitcast 376
+                              Store 378(v) 380
+             381:          82 Load 378(v)
+             382:          46 UConvert 381
+             383:         100 Bitcast 382
+                              Store 384(v) 386
+                              Store 387(v) 389
+             390:         118 Load 387(v)
+             391:         100 SConvert 390
+                              Store 392(v) 394
+             395:         136 Load 392(v)
+             396:         100 SConvert 395
+                              Store 397(v) 399
+             400:          11 Load 397(v)
+             401:         118 ConvertFToS 400
+                              Store 402(v) 404
+             405:          29 Load 402(v)
+             406:         118 ConvertFToS 405
+                              Store 407(v) 409
+             410:          46 Load 407(v)
+             411:          64 UConvert 410
+             412:         118 Bitcast 411
+                              Store 413(v) 415
+             416:          64 Load 413(v)
+             417:         118 Bitcast 416
+                              Store 418(v) 420
+             421:          82 Load 418(v)
+             422:          64 UConvert 421
+             423:         118 Bitcast 422
+                              Store 424(v) 426
+             427:         100 Load 424(v)
+             428:         118 SConvert 427
+                              Store 429(v) 431
+                              Store 432(v) 434
+             435:         136 Load 432(v)
+             436:         118 SConvert 435
+                              Store 437(v) 439
+             440:          11 Load 437(v)
+             441:         136 ConvertFToS 440
+                              Store 442(v) 444
+             445:          29 Load 442(v)
+             446:         136 ConvertFToS 445
+                              Store 447(v) 449
+             450:          46 Load 447(v)
+             451:          82 UConvert 450
+             452:         136 Bitcast 451
+                              Store 453(v) 455
+             456:          64 Load 453(v)
+             457:          82 UConvert 456
+             458:         136 Bitcast 457
+                              Store 459(v) 461
+             462:          82 Load 459(v)
+             463:         136 Bitcast 462
+                              Store 464(v) 466
+             467:         100 Load 464(v)
+             468:         136 SConvert 467
+                              Store 469(v) 471
+             472:         118 Load 469(v)
+             473:         136 SConvert 472
+                              Store 474(v) 476
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.coopmatKHR_constructorError.comp.out b/Test/baseResults/spv.coopmatKHR_constructorError.comp.out
new file mode 100644
index 0000000..040e762
--- /dev/null
+++ b/Test/baseResults/spv.coopmatKHR_constructorError.comp.out
@@ -0,0 +1,9 @@
+spv.coopmatKHR_constructorError.comp
+ERROR: 0:12: 'constructor' : Cooperative matrix type parameters mismatch 
+ERROR: 0:13: 'constructor' : Cooperative matrix type parameters mismatch 
+ERROR: 0:14: 'constructor' : Cooperative matrix type parameters mismatch 
+ERROR: 0:15: 'constructor' : Cooperative matrix type parameters mismatch 
+ERROR: 4 compilation errors.  No code generated.
+
+
+SPIR-V is not generated for failed compile or link
diff --git a/Test/baseResults/spv.debuginfo.bufferref.glsl.frag.out b/Test/baseResults/spv.debuginfo.bufferref.glsl.frag.out
new file mode 100644
index 0000000..9203146
--- /dev/null
+++ b/Test/baseResults/spv.debuginfo.bufferref.glsl.frag.out
@@ -0,0 +1,198 @@
+spv.debuginfo.bufferref.glsl.frag
+// Module Version 10000
+// Generated by (magic number): 8000b
+// Id's are bound by 143
+
+                              Capability Shader
+                              Capability PhysicalStorageBufferAddressesEXT
+                              Extension  "SPV_KHR_non_semantic_info"
+                              Extension  "SPV_KHR_physical_storage_buffer"
+                              Extension  "SPV_KHR_storage_buffer_storage_class"
+               2:             ExtInstImport  "NonSemantic.Shader.DebugInfo.100"
+               3:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel PhysicalStorageBuffer64EXT GLSL450
+                              EntryPoint Fragment 14  "main" 75 134
+                              ExecutionMode 14 OriginUpperLeft
+               1:             String  ""
+               8:             String  "uint"
+              16:             String  "main"
+              19:             String  "// OpModuleProcessed auto-map-locations
+// OpModuleProcessed auto-map-bindings
+// OpModuleProcessed client vulkan100
+// OpModuleProcessed target-env vulkan1.0
+// OpModuleProcessed keep-uncalled
+// OpModuleProcessed entry-point main
+#line 1
+"
+              32:             String  "Mesh"
+              34:             String  "float"
+              40:             String  "data"
+              44:             String  "MeshVertexPositions"
+              50:             String  "meshData"
+              62:             String  "PerPass_meshes"
+              68:             String  "perPass_meshes"
+              70:             String  "int"
+              77:             String  "tri_idx0"
+              95:             String  "vertex_pos0"
+             136:             String  "out_fragColor"
+                              SourceExtension  "GL_EXT_buffer_reference"
+                              Name 14  "main"
+                              Name 30  "Mesh"
+                              MemberName 30(Mesh) 0  "positions"
+                              Name 38  "MeshVertexPositions"
+                              MemberName 38(MeshVertexPositions) 0  "data"
+                              Name 48  "meshData"
+                              Name 53  "Mesh"
+                              MemberName 53(Mesh) 0  "positions"
+                              Name 57  "PerPass_meshes"
+                              MemberName 57(PerPass_meshes) 0  "data"
+                              Name 66  "perPass_meshes"
+                              Name 75  "tri_idx0"
+                              Name 93  "vertex_pos0"
+                              Name 134  "out_fragColor"
+                              Decorate 36 ArrayStride 4
+                              MemberDecorate 38(MeshVertexPositions) 0 Offset 0
+                              Decorate 38(MeshVertexPositions) Block
+                              MemberDecorate 53(Mesh) 0 Offset 0
+                              Decorate 55 ArrayStride 8
+                              MemberDecorate 57(PerPass_meshes) 0 NonWritable
+                              MemberDecorate 57(PerPass_meshes) 0 Offset 0
+                              Decorate 57(PerPass_meshes) Block
+                              Decorate 66(perPass_meshes) DescriptorSet 0
+                              Decorate 66(perPass_meshes) Binding 0
+                              Decorate 75(tri_idx0) Flat
+                              Decorate 75(tri_idx0) Location 0
+                              Decorate 134(out_fragColor) Location 0
+                              Decorate 48(meshData) DecorationAliasedPointerEXT
+               4:             TypeVoid
+               5:             TypeFunction 4
+               7:             TypeInt 32 0
+              10:      7(int) Constant 32
+              11:      7(int) Constant 6
+              12:      7(int) Constant 0
+               9:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 8 10 11 12
+              13:      7(int) Constant 3
+               6:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 4
+              18:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 1 19
+              20:      7(int) Constant 20
+              22:      7(int) Constant 1
+              23:      7(int) Constant 4
+              24:      7(int) Constant 2
+              21:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 22 23 18 24
+              17:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 16 6 18 20 12 21 16 13 20
+              28:      7(int) Constant 21
+                              TypeForwardPointer 29 PhysicalStorageBufferEXT
+        30(Mesh):             TypeStruct 29
+              31:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 32 22 18 28 12 21 32 12 13
+              33:             TypeFloat 32
+              35:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 34 10 13 12
+              36:             TypeRuntimeArray 33(float)
+              37:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 35 12
+38(MeshVertexPositions):             TypeStruct 36
+              41:      7(int) Constant 5
+              42:      7(int) Constant 9
+              39:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 40 37 18 41 42 12 12 13
+              43:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 44 22 18 28 12 21 44 12 13 39
+              29:             TypePointer PhysicalStorageBufferEXT 38(MeshVertexPositions)
+              45:             TypePointer Function 30(Mesh)
+              46:      7(int) Constant 7
+              47:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 31 46 12
+              49:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 50 31 18 28 12 17 23
+              52:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
+        53(Mesh):             TypeStruct 29(ptr)
+              54:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 32 22 18 28 12 21 32 12 13
+              55:             TypeRuntimeArray 53(Mesh)
+              56:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 54 12
+57(PerPass_meshes):             TypeStruct 55
+              59:      7(int) Constant 13
+              60:      7(int) Constant 8
+              58:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 40 56 18 59 60 12 12 13
+              61:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 62 22 18 28 12 21 62 12 13 58
+              63:             TypePointer StorageBuffer 57(PerPass_meshes)
+              64:      7(int) Constant 12
+              65:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 61 64 12
+66(perPass_meshes):     63(ptr) Variable StorageBuffer
+              67:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 68 61 18 28 12 21 68 66(perPass_meshes) 60
+              69:             TypeInt 32 1
+              71:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 70 10 23 12
+              72:     69(int) Constant 0
+              73:             TypePointer Input 7(int)
+              74:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 9 22 12
+    75(tri_idx0):     73(ptr) Variable Input
+              76:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 77 9 18 28 12 21 77 75(tri_idx0) 60
+              79:             TypePointer StorageBuffer 53(Mesh)
+              80:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 54 64 12
+              84:             TypePointer Function 29(ptr)
+              85:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 0(DebugInfoNone)
+              88:      7(int) Constant 23
+              89:             TypeVector 33(float) 3
+              90:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 35 13
+              91:             TypePointer Function 89(fvec3)
+              92:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 90 46 12
+              94:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 95 90 18 88 12 17 23
+              98:      7(int) Constant 25
+             104:             TypePointer PhysicalStorageBufferEXT 33(float)
+             105:      7(int) Constant 5349
+             106:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 35 105 12
+             110:      7(int) Constant 24
+             129:      7(int) Constant 27
+             130:             TypeVector 33(float) 4
+             131:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 35 23
+             132:             TypePointer Output 130(fvec4)
+             133:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 131 13 12
+134(out_fragColor):    132(ptr) Variable Output
+             135:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 136 131 18 129 12 21 136 134(out_fragColor) 60
+             138:   33(float) Constant 1065353216
+                              Line 1 20 11
+        14(main):           4 Function None 5
+              15:             Label
+    48(meshData):     45(ptr) Variable Function
+ 93(vertex_pos0):     91(ptr) Variable Function
+              25:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 17 14(main)
+              26:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17
+              27:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 28 28 12 12
+              51:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 49 48(meshData) 52
+              78:      7(int) Load 75(tri_idx0)
+              81:     79(ptr) AccessChain 66(perPass_meshes) 72 78
+              82:    53(Mesh) Load 81
+              83:     29(ptr) CompositeExtract 82 0
+              86:     84(ptr) AccessChain 48(meshData) 72
+                              Store 86 83
+              87:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 88 88 12 12
+              96:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 94 93(vertex_pos0) 52
+              97:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 98 98 12 12
+              99:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 88 88 12 12
+             100:     84(ptr) AccessChain 48(meshData) 72
+             101:     29(ptr) Load 100
+             102:      7(int) Load 75(tri_idx0)
+             103:      7(int) IMul 13 102
+             107:    104(ptr) AccessChain 101 72 103
+             108:   33(float) Load 107 Aligned 4
+             109:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 110 110 12 12
+             111:     84(ptr) AccessChain 48(meshData) 72
+             112:     29(ptr) Load 111
+             113:      7(int) Load 75(tri_idx0)
+             114:      7(int) IMul 13 113
+             115:      7(int) IAdd 114 22
+             116:    104(ptr) AccessChain 112 72 115
+             117:   33(float) Load 116 Aligned 4
+             118:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 98 98 12 12
+             119:     84(ptr) AccessChain 48(meshData) 72
+             120:     29(ptr) Load 119
+             121:      7(int) Load 75(tri_idx0)
+             122:      7(int) IMul 13 121
+             123:      7(int) IAdd 122 24
+             124:    104(ptr) AccessChain 120 72 123
+             125:   33(float) Load 124 Aligned 4
+             126:   89(fvec3) CompositeConstruct 108 117 125
+             127:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 88 88 12 12
+                              Store 93(vertex_pos0) 126
+             128:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 129 129 12 12
+             137:   89(fvec3) Load 93(vertex_pos0)
+             139:   33(float) CompositeExtract 137 0
+             140:   33(float) CompositeExtract 137 1
+             141:   33(float) CompositeExtract 137 2
+             142:  130(fvec4) CompositeConstruct 139 140 141 138
+                              Store 134(out_fragColor) 142
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.debuginfo.const_params.glsl.comp.out b/Test/baseResults/spv.debuginfo.const_params.glsl.comp.out
index ad431a4..398fd86 100644
--- a/Test/baseResults/spv.debuginfo.const_params.glsl.comp.out
+++ b/Test/baseResults/spv.debuginfo.const_params.glsl.comp.out
@@ -1,7 +1,7 @@
 spv.debuginfo.const_params.glsl.comp
 // Module Version 10000
 // Generated by (magic number): 8000b
-// Id's are bound by 68
+// Id's are bound by 70
 
                               Capability Shader
                               Extension  "SPV_KHR_non_semantic_info"
@@ -11,9 +11,10 @@
                               EntryPoint GLCompute 14  "main"
                               ExecutionMode 14 LocalSize 1 1 1
                1:             String  ""
-               9:             String  "uint"
-              15:             String  "main"
-              18:             String  "// OpModuleProcessed auto-map-locations
+               8:             String  "uint"
+              17:             String  "float"
+              35:             String  "function"
+              38:             String  "// OpModuleProcessed auto-map-locations
 // OpModuleProcessed auto-map-bindings
 // OpModuleProcessed client vulkan100
 // OpModuleProcessed target-env vulkan1.0
@@ -21,76 +22,77 @@
 // OpModuleProcessed entry-point main
 #line 1
 "
-              25:             String  "float"
-              40:             String  "function"
-              46:             String  "f"
-              50:             String  "f2"
-              53:             String  "f3"
-              56:             String  "f4"
+              45:             String  "f"
+              49:             String  "f2"
+              52:             String  "f3"
+              55:             String  "f4"
+              57:             String  "main"
                               Name 14  "main"
-                              Name 39  "function(f1;vf2;vf3;vf4;"
-                              Name 35  "f"
-                              Name 36  "f2"
-                              Name 37  "f3"
-                              Name 38  "f4"
+                              Name 33  "function(f1;vf2;vf3;vf4;"
+                              Name 29  "f"
+                              Name 30  "f2"
+                              Name 31  "f3"
+                              Name 32  "f4"
                4:             TypeVoid
                5:             TypeFunction 4
                7:             TypeInt 32 0
               10:      7(int) Constant 32
               11:      7(int) Constant 6
               12:      7(int) Constant 0
-               8:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 9 10 11 12
+               9:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 8 10 11 12
               13:      7(int) Constant 3
                6:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 4
-              17:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 1 18
-              20:      7(int) Constant 1
-              21:      7(int) Constant 4
-              22:      7(int) Constant 2
-              19:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 20 21 17 22
-              16:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 15 6 17 12 12 19 15 13 12
-              24:             TypeFloat 32
-              26:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 25 10 13 12
-              27:             TypeVector 24(float) 2
-              28:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 26 22
-              29:             TypeVector 24(float) 3
-              30:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 26 13
-              31:             TypeVector 24(float) 4
-              32:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 26 21
-              33:             TypeFunction 4 24(float) 27(fvec2) 29(fvec3) 31(fvec4)
-              34:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 4 26 28 30 32
-              41:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 40 34 17 12 12 19 40 13 12
-              45:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 46 26 17 12 12 41 21 20
-              48:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
-              49:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 50 28 17 12 12 41 21 22
-              52:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 53 30 17 12 12 41 21 13
-              55:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 56 32 17 12 12 41 21 21
-              62:      7(int) Constant 13
-              63:   24(float) Constant 0
-              64:   27(fvec2) ConstantComposite 63 63
-              65:   29(fvec3) ConstantComposite 63 63 63
-              66:   31(fvec4) ConstantComposite 63 63 63 63
+              16:             TypeFloat 32
+              18:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 17 10 13 12
+              19:             TypeVector 16(float) 2
+              20:      7(int) Constant 2
+              21:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 18 20
+              22:             TypeVector 16(float) 3
+              23:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 18 13
+              24:             TypeVector 16(float) 4
+              25:      7(int) Constant 4
+              26:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 18 25
+              27:             TypeFunction 4 16(float) 19(fvec2) 22(fvec3) 24(fvec4)
+              28:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 4 18 21 23 26
+              37:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 1 38
+              39:      7(int) Constant 7
+              41:      7(int) Constant 1
+              40:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 41 25 37 20
+              36:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 35 28 37 39 12 40 35 13 39
+              44:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 45 18 37 39 12 36 25 41
+              47:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
+              48:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 49 21 37 39 12 36 25 20
+              51:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 52 23 37 39 12 36 25 13
+              54:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 55 26 37 39 12 36 25 25
+              59:      7(int) Constant 11
+              58:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 57 6 37 59 12 40 57 13 59
+              64:      7(int) Constant 13
+              65:   16(float) Constant 0
+              66:   19(fvec2) ConstantComposite 65 65
+              67:   22(fvec3) ConstantComposite 65 65 65
+              68:   24(fvec4) ConstantComposite 65 65 65 65
                               Line 1 11 11
         14(main):           4 Function None 5
-              23:             Label
-              59:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 16 14(main)
-              60:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-              61:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 62 62 12 12
-              67:           4 FunctionCall 39(function(f1;vf2;vf3;vf4;) 63 64 65 66
+              15:             Label
+              61:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 58 14(main)
+              62:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
+              63:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 37 64 64 12 12
+              69:           4 FunctionCall 33(function(f1;vf2;vf3;vf4;) 65 66 67 68
                               Return
                               FunctionEnd
                               Line 1 7 18
-39(function(f1;vf2;vf3;vf4;):           4 Function None 33
-           35(f):   24(float) FunctionParameter
-          36(f2):   27(fvec2) FunctionParameter
-          37(f3):   29(fvec3) FunctionParameter
-          38(f4):   31(fvec4) FunctionParameter
-              42:             Label
-              43:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 41
-              44:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 12 12 12 12
-              47:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 45 35(f) 48
-              51:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 49 36(f2) 48
-              54:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 52 37(f3) 48
-              57:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 55 38(f4) 48
-              58:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 41 39(function(f1;vf2;vf3;vf4;)
+33(function(f1;vf2;vf3;vf4;):           4 Function None 27
+           29(f):   16(float) FunctionParameter
+          30(f2):   19(fvec2) FunctionParameter
+          31(f3):   22(fvec3) FunctionParameter
+          32(f4):   24(fvec4) FunctionParameter
+              34:             Label
+              42:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 36
+              43:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 37 39 39 12 12
+              46:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 29(DebugValue) 44 29(f) 47
+              50:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 29(DebugValue) 48 30(f2) 47
+              53:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 29(DebugValue) 51 31(f3) 47
+              56:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 29(DebugValue) 54 32(f4) 47
+              60:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 36 33(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 234878f..962c99f 100644
--- a/Test/baseResults/spv.debuginfo.glsl.comp.out
+++ b/Test/baseResults/spv.debuginfo.glsl.comp.out
@@ -1,19 +1,20 @@
 spv.debuginfo.glsl.comp
 // Module Version 10000
 // Generated by (magic number): 8000b
-// Id's are bound by 969
+// Id's are bound by 964
 
                               Capability Shader
                               Extension  "SPV_KHR_non_semantic_info"
                2:             ExtInstImport  "NonSemantic.Shader.DebugInfo.100"
                3:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint GLCompute 14  "main" 124
+                              EntryPoint GLCompute 14  "main" 132
                               ExecutionMode 14 LocalSize 10 10 1
                1:             String  ""
-               9:             String  "uint"
-              15:             String  "main"
-              18:             String  "// OpModuleProcessed auto-map-locations
+               8:             String  "uint"
+              17:             String  "float"
+              33:             String  "springForce"
+              36:             String  "// OpModuleProcessed auto-map-locations
 // OpModuleProcessed auto-map-bindings
 // OpModuleProcessed client vulkan100
 // OpModuleProcessed target-env vulkan1.0
@@ -21,1203 +22,1197 @@
 // OpModuleProcessed entry-point main
 #line 1
 "
-              25:             String  "float"
-              37:             String  "springForce"
-              43:             String  "p0"
-              47:             String  "p1"
-              50:             String  "restDist"
-              58:             String  "dist"
-              70:             String  "int"
-              76:             String  "sphereRadius"
-              87:             String  "gravity"
-              92:             String  "particleCount"
-              95:             String  "UBO"
-              99:             String  "params"
-             121:             String  "id"
-             126:             String  "gl_GlobalInvocationID"
-             133:             String  "index"
-             156:             String  "bool"
-             170:             String  "normal"
-             176:             String  "pinned"
-             178:             String  "Particle"
-             183:             String  "particleIn"
-             187:             String  "ParticleIn"
-             208:             String  "particleOut"
-             211:             String  "ParticleOut"
-             236:             String  "force"
-             249:             String  "pos"
-             259:             String  "vel"
+              45:             String  "p0"
+              49:             String  "p1"
+              52:             String  "restDist"
+              54:             String  "main"
+              63:             String  "dist"
+              75:             String  "int"
+              81:             String  "sphereRadius"
+              92:             String  "gravity"
+              96:             String  "particleCount"
+              99:             String  "UBO"
+             104:             String  "params"
+             128:             String  "id"
+             134:             String  "gl_GlobalInvocationID"
+             142:             String  "index"
+             166:             String  "bool"
+             180:             String  "normal"
+             186:             String  "pinned"
+             188:             String  "Particle"
+             193:             String  "particleIn"
+             197:             String  "ParticleIn"
+             218:             String  "particleOut"
+             221:             String  "ParticleOut"
+             248:             String  "force"
+             261:             String  "pos"
+             271:             String  "vel"
              571:             String  "f"
              620:             String  "sphereDist"
-             673:             String  "calculateNormals"
-             676:             String  "PushConsts"
-             680:             String  "pushConsts"
-             717:             String  "a"
-             730:             String  "b"
-             747:             String  "c"
+             672:             String  "calculateNormals"
+             675:             String  "PushConsts"
+             681:             String  "pushConsts"
+             716:             String  "a"
+             729:             String  "b"
+             746:             String  "c"
                               Name 14  "main"
-                              Name 36  "springForce(vf3;vf3;f1;"
-                              Name 33  "p0"
-                              Name 34  "p1"
-                              Name 35  "restDist"
-                              Name 56  "dist"
-                              Name 74  "UBO"
-                              MemberName 74(UBO) 0  "deltaT"
-                              MemberName 74(UBO) 1  "particleMass"
-                              MemberName 74(UBO) 2  "springStiffness"
-                              MemberName 74(UBO) 3  "damping"
-                              MemberName 74(UBO) 4  "restDistH"
-                              MemberName 74(UBO) 5  "restDistV"
-                              MemberName 74(UBO) 6  "restDistD"
-                              MemberName 74(UBO) 7  "sphereRadius"
-                              MemberName 74(UBO) 8  "spherePos"
-                              MemberName 74(UBO) 9  "gravity"
-                              MemberName 74(UBO) 10  "particleCount"
-                              Name 97  "params"
-                              Name 119  "id"
-                              Name 124  "gl_GlobalInvocationID"
-                              Name 131  "index"
-                              Name 168  "Particle"
-                              MemberName 168(Particle) 0  "pos"
-                              MemberName 168(Particle) 1  "vel"
-                              MemberName 168(Particle) 2  "uv"
-                              MemberName 168(Particle) 3  "normal"
-                              MemberName 168(Particle) 4  "pinned"
-                              Name 181  "ParticleIn"
-                              MemberName 181(ParticleIn) 0  "particleIn"
-                              Name 189  ""
-                              Name 206  "ParticleOut"
-                              MemberName 206(ParticleOut) 0  "particleOut"
-                              Name 213  ""
-                              Name 234  "force"
-                              Name 247  "pos"
-                              Name 257  "vel"
-                              Name 278  "param"
-                              Name 282  "param"
-                              Name 284  "param"
-                              Name 308  "param"
-                              Name 312  "param"
-                              Name 314  "param"
-                              Name 342  "param"
-                              Name 346  "param"
-                              Name 348  "param"
-                              Name 371  "param"
-                              Name 375  "param"
-                              Name 377  "param"
-                              Name 415  "param"
-                              Name 419  "param"
+                              Name 31  "springForce(vf3;vf3;f1;"
+                              Name 28  "p0"
+                              Name 29  "p1"
+                              Name 30  "restDist"
+                              Name 61  "dist"
+                              Name 79  "UBO"
+                              MemberName 79(UBO) 0  "deltaT"
+                              MemberName 79(UBO) 1  "particleMass"
+                              MemberName 79(UBO) 2  "springStiffness"
+                              MemberName 79(UBO) 3  "damping"
+                              MemberName 79(UBO) 4  "restDistH"
+                              MemberName 79(UBO) 5  "restDistV"
+                              MemberName 79(UBO) 6  "restDistD"
+                              MemberName 79(UBO) 7  "sphereRadius"
+                              MemberName 79(UBO) 8  "spherePos"
+                              MemberName 79(UBO) 9  "gravity"
+                              MemberName 79(UBO) 10  "particleCount"
+                              Name 102  "params"
+                              Name 126  "id"
+                              Name 132  "gl_GlobalInvocationID"
+                              Name 140  "index"
+                              Name 178  "Particle"
+                              MemberName 178(Particle) 0  "pos"
+                              MemberName 178(Particle) 1  "vel"
+                              MemberName 178(Particle) 2  "uv"
+                              MemberName 178(Particle) 3  "normal"
+                              MemberName 178(Particle) 4  "pinned"
+                              Name 191  "ParticleIn"
+                              MemberName 191(ParticleIn) 0  "particleIn"
+                              Name 200  ""
+                              Name 216  "ParticleOut"
+                              MemberName 216(ParticleOut) 0  "particleOut"
+                              Name 224  ""
+                              Name 246  "force"
+                              Name 259  "pos"
+                              Name 269  "vel"
+                              Name 289  "param"
+                              Name 293  "param"
+                              Name 295  "param"
+                              Name 318  "param"
+                              Name 322  "param"
+                              Name 324  "param"
+                              Name 351  "param"
+                              Name 355  "param"
+                              Name 357  "param"
+                              Name 379  "param"
+                              Name 383  "param"
+                              Name 385  "param"
                               Name 421  "param"
-                              Name 454  "param"
+                              Name 425  "param"
+                              Name 427  "param"
                               Name 458  "param"
-                              Name 460  "param"
-                              Name 501  "param"
-                              Name 505  "param"
+                              Name 462  "param"
+                              Name 464  "param"
+                              Name 503  "param"
                               Name 507  "param"
+                              Name 509  "param"
                               Name 544  "param"
                               Name 548  "param"
                               Name 550  "param"
                               Name 569  "f"
                               Name 618  "sphereDist"
-                              Name 671  "PushConsts"
-                              MemberName 671(PushConsts) 0  "calculateNormals"
-                              Name 678  "pushConsts"
-                              Name 691  "normal"
-                              Name 715  "a"
-                              Name 728  "b"
-                              Name 745  "c"
-                              MemberDecorate 74(UBO) 0 Offset 0
-                              MemberDecorate 74(UBO) 1 Offset 4
-                              MemberDecorate 74(UBO) 2 Offset 8
-                              MemberDecorate 74(UBO) 3 Offset 12
-                              MemberDecorate 74(UBO) 4 Offset 16
-                              MemberDecorate 74(UBO) 5 Offset 20
-                              MemberDecorate 74(UBO) 6 Offset 24
-                              MemberDecorate 74(UBO) 7 Offset 28
-                              MemberDecorate 74(UBO) 8 Offset 32
-                              MemberDecorate 74(UBO) 9 Offset 48
-                              MemberDecorate 74(UBO) 10 Offset 64
-                              Decorate 74(UBO) Block
-                              Decorate 97(params) DescriptorSet 0
-                              Decorate 97(params) Binding 2
-                              Decorate 124(gl_GlobalInvocationID) BuiltIn GlobalInvocationId
-                              MemberDecorate 168(Particle) 0 Offset 0
-                              MemberDecorate 168(Particle) 1 Offset 16
-                              MemberDecorate 168(Particle) 2 Offset 32
-                              MemberDecorate 168(Particle) 3 Offset 48
-                              MemberDecorate 168(Particle) 4 Offset 64
-                              Decorate 179 ArrayStride 80
-                              MemberDecorate 181(ParticleIn) 0 Offset 0
-                              Decorate 181(ParticleIn) BufferBlock
-                              Decorate 189 DescriptorSet 0
-                              Decorate 189 Binding 0
-                              Decorate 204 ArrayStride 80
-                              MemberDecorate 206(ParticleOut) 0 Offset 0
-                              Decorate 206(ParticleOut) BufferBlock
-                              Decorate 213 DescriptorSet 0
-                              Decorate 213 Binding 1
-                              MemberDecorate 671(PushConsts) 0 Offset 0
-                              Decorate 671(PushConsts) Block
-                              Decorate 968 BuiltIn WorkgroupSize
+                              Name 670  "PushConsts"
+                              MemberName 670(PushConsts) 0  "calculateNormals"
+                              Name 679  "pushConsts"
+                              Name 692  "normal"
+                              Name 714  "a"
+                              Name 727  "b"
+                              Name 744  "c"
+                              MemberDecorate 79(UBO) 0 Offset 0
+                              MemberDecorate 79(UBO) 1 Offset 4
+                              MemberDecorate 79(UBO) 2 Offset 8
+                              MemberDecorate 79(UBO) 3 Offset 12
+                              MemberDecorate 79(UBO) 4 Offset 16
+                              MemberDecorate 79(UBO) 5 Offset 20
+                              MemberDecorate 79(UBO) 6 Offset 24
+                              MemberDecorate 79(UBO) 7 Offset 28
+                              MemberDecorate 79(UBO) 8 Offset 32
+                              MemberDecorate 79(UBO) 9 Offset 48
+                              MemberDecorate 79(UBO) 10 Offset 64
+                              Decorate 79(UBO) Block
+                              Decorate 102(params) DescriptorSet 0
+                              Decorate 102(params) Binding 2
+                              Decorate 132(gl_GlobalInvocationID) BuiltIn GlobalInvocationId
+                              MemberDecorate 178(Particle) 0 Offset 0
+                              MemberDecorate 178(Particle) 1 Offset 16
+                              MemberDecorate 178(Particle) 2 Offset 32
+                              MemberDecorate 178(Particle) 3 Offset 48
+                              MemberDecorate 178(Particle) 4 Offset 64
+                              Decorate 189 ArrayStride 80
+                              MemberDecorate 191(ParticleIn) 0 Offset 0
+                              Decorate 191(ParticleIn) BufferBlock
+                              Decorate 200 DescriptorSet 0
+                              Decorate 200 Binding 0
+                              Decorate 214 ArrayStride 80
+                              MemberDecorate 216(ParticleOut) 0 Offset 0
+                              Decorate 216(ParticleOut) BufferBlock
+                              Decorate 224 DescriptorSet 0
+                              Decorate 224 Binding 1
+                              MemberDecorate 670(PushConsts) 0 Offset 0
+                              Decorate 670(PushConsts) Block
+                              Decorate 963 BuiltIn WorkgroupSize
                4:             TypeVoid
                5:             TypeFunction 4
                7:             TypeInt 32 0
               10:      7(int) Constant 32
               11:      7(int) Constant 6
               12:      7(int) Constant 0
-               8:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 9 10 11 12
+               9:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 8 10 11 12
               13:      7(int) Constant 3
                6:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 4
-              17:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 1 18
-              20:      7(int) Constant 1
-              21:      7(int) Constant 4
-              22:      7(int) Constant 2
-              19:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 20 21 17 22
-              16:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 15 6 17 12 12 19 15 13 12
-              24:             TypeFloat 32
-              26:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 25 10 13 12
-              27:             TypeVector 24(float) 3
-              28:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 26 13
-              29:             TypePointer Function 27(fvec3)
-              30:             TypePointer Function 24(float)
-              31:             TypeFunction 27(fvec3) 29(ptr) 29(ptr) 30(ptr)
-              32:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 28 28 28 26
-              38:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 37 32 17 12 12 19 37 13 12
-              42:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 43 28 17 12 12 38 21 20
-              45:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
-              46:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 47 28 17 12 12 38 21 22
-              49:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 50 26 17 12 12 38 21 13
-              55:      7(int) Constant 68
-              57:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 58 28 17 55 12 38 21
-              64:      7(int) Constant 69
-              67:             TypeVector 24(float) 4
-              68:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 26 21
-              69:             TypeInt 32 1
-              71:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 70 10 21 12
-              72:             TypeVector 69(int) 2
-              73:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 71 22
-         74(UBO):             TypeStruct 24(float) 24(float) 24(float) 24(float) 24(float) 24(float) 24(float) 24(float) 67(fvec4) 67(fvec4) 72(ivec2)
-              77:      7(int) Constant 56
-              78:      7(int) Constant 8
-              75:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 76 26 17 77 78 12 12 13
-              79:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 76 26 17 77 78 12 12 13
-              80:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 76 26 17 77 78 12 12 13
-              81:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 76 26 17 77 78 12 12 13
-              82:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 76 26 17 77 78 12 12 13
-              83:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 76 26 17 77 78 12 12 13
-              84:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 76 26 17 77 78 12 12 13
-              85:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 76 26 17 77 78 12 12 13
-              88:      7(int) Constant 58
-              89:      7(int) Constant 7
-              86:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 87 68 17 88 89 12 12 13
-              90:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 87 68 17 88 89 12 12 13
-              93:      7(int) Constant 59
-              91:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 92 73 17 93 78 12 12 13
-              94:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 95 20 17 64 12 19 95 12 13 75 79 80 81 82 83 84 85 86 90 91
-              96:             TypePointer Uniform 74(UBO)
-      97(params):     96(ptr) Variable Uniform
-              98:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 99 94 17 64 12 19 99 97(params) 78
-             100:     69(int) Constant 2
-             101:             TypePointer Uniform 24(float)
-             115:      7(int) Constant 74
-             116:             TypeVector 7(int) 3
-             117:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 8 13
-             118:             TypePointer Function 116(ivec3)
-             120:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 121 117 17 115 12 16 21
-             123:             TypePointer Input 116(ivec3)
-124(gl_GlobalInvocationID):    123(ptr) Variable Input
-             125:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 126 117 17 115 12 19 126 124(gl_GlobalInvocationID) 78
-             129:      7(int) Constant 76
-             130:             TypePointer Function 7(int)
-             132:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 133 8 17 129 12 16 21
-             137:     69(int) Constant 10
-             138:             TypePointer Uniform 69(int)
-             147:      7(int) Constant 77
-             155:             TypeBool
-             157:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 156 10 22 12
-             163:      7(int) Constant 78
-             167:      7(int) Constant 81
-   168(Particle):             TypeStruct 67(fvec4) 67(fvec4) 67(fvec4) 67(fvec4) 24(float)
-             171:      7(int) Constant 31
-             169:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 170 68 17 171 89 12 12 13
-             172:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 170 68 17 171 89 12 12 13
-             173:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 170 68 17 171 89 12 12 13
-             174:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 170 68 17 171 89 12 12 13
-             175:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 176 26 17 10 78 12 12 13
-             177:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 178 20 17 167 12 19 178 12 13 169 172 173 174 175
-             179:             TypeRuntimeArray 168(Particle)
-             180:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 177 12
- 181(ParticleIn):             TypeStruct 179
-             184:      7(int) Constant 36
-             185:      7(int) Constant 11
-             182:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 183 180 17 184 185 12 12 13
-             186:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 187 20 17 167 12 19 187 12 13 182
-             188:             TypePointer Uniform 181(ParticleIn)
-             189:    188(ptr) Variable Uniform
-             190:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 1 186 17 167 12 19 1 189 78
-             191:     69(int) Constant 0
-             193:     69(int) Constant 4
-             196:   24(float) Constant 1065353216
-             197:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 156 10 22 12
-             203:      7(int) Constant 82
-             204:             TypeRuntimeArray 168(Particle)
-             205:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 177 12
-206(ParticleOut):             TypeStruct 204
-             209:      7(int) Constant 40
-             207:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 208 205 17 209 185 12 12 13
-             210:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 211 20 17 203 12 19 211 12 13 207
-             212:             TypePointer Uniform 206(ParticleOut)
-             213:    212(ptr) Variable Uniform
-             214:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 1 210 17 203 12 19 1 213 78
-             217:             TypePointer Uniform 67(fvec4)
-             222:      7(int) Constant 83
-             224:     69(int) Constant 1
-             225:   24(float) Constant 0
-             226:   67(fvec4) ConstantComposite 225 225 225 225
-             229:      7(int) Constant 84
-             233:      7(int) Constant 88
-             235:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 236 28 17 233 12 16 21
-             238:     69(int) Constant 9
-             246:      7(int) Constant 90
-             248:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 249 28 17 246 12 16 21
-             256:      7(int) Constant 91
-             258:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 259 28 17 256 12 16 21
-             266:      7(int) Constant 95
-             269:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 156 10 22 12
-             275:      7(int) Constant 96
-             292:      7(int) Constant 99
-             299:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 156 10 22 12
-             305:      7(int) Constant 100
-             322:      7(int) Constant 103
-             329:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 156 10 22 12
-             335:      7(int) Constant 104
-             341:     69(int) Constant 5
-             356:      7(int) Constant 107
-             359:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 156 10 22 12
-             365:      7(int) Constant 108
-             385:      7(int) Constant 111
-             388:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 156 10 22 12
-             400:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 156 10 22 12
-             407:      7(int) Constant 112
-             414:     69(int) Constant 6
-             429:      7(int) Constant 115
-             432:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 156 10 22 12
-             440:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 156 10 22 12
-             447:      7(int) Constant 116
-             468:      7(int) Constant 119
-             475:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 156 10 22 12
-             487:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 156 10 22 12
-             494:      7(int) Constant 120
-             515:      7(int) Constant 123
-             522:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 156 10 22 12
-             530:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 156 10 22 12
+              16:             TypeFloat 32
+              18:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 17 10 13 12
+              19:             TypeVector 16(float) 3
+              20:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 18 13
+              21:             TypePointer Function 19(fvec3)
+              22:      7(int) Constant 7
+              23:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 20 22 12
+              24:             TypePointer Function 16(float)
+              25:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 18 22 12
+              26:             TypeFunction 19(fvec3) 21(ptr) 21(ptr) 24(ptr)
+              27:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 20 20 20 18
+              35:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 1 36
+              37:      7(int) Constant 66
+              39:      7(int) Constant 1
+              40:      7(int) Constant 4
+              41:      7(int) Constant 2
+              38:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 39 40 35 41
+              34:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 33 27 35 37 12 38 33 13 37
+              44:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 45 20 35 37 12 34 40 39
+              47:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
+              48:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 49 20 35 37 12 34 40 41
+              51:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 52 18 35 37 12 34 40 13
+              56:      7(int) Constant 72
+              55:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 54 6 35 56 12 38 54 13 56
+              60:      7(int) Constant 68
+              62:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 63 20 35 60 12 34 40
+              69:      7(int) Constant 69
+              72:             TypeVector 16(float) 4
+              73:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 18 40
+              74:             TypeInt 32 1
+              76:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 75 10 40 12
+              77:             TypeVector 74(int) 2
+              78:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 76 41
+         79(UBO):             TypeStruct 16(float) 16(float) 16(float) 16(float) 16(float) 16(float) 16(float) 16(float) 72(fvec4) 72(fvec4) 77(ivec2)
+              82:      7(int) Constant 56
+              83:      7(int) Constant 8
+              80:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 81 18 35 82 83 12 12 13
+              84:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 81 18 35 82 83 12 12 13
+              85:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 81 18 35 82 83 12 12 13
+              86:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 81 18 35 82 83 12 12 13
+              87:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 81 18 35 82 83 12 12 13
+              88:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 81 18 35 82 83 12 12 13
+              89:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 81 18 35 82 83 12 12 13
+              90:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 81 18 35 82 83 12 12 13
+              93:      7(int) Constant 58
+              91:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 92 73 35 93 22 12 12 13
+              94:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 92 73 35 93 22 12 12 13
+              97:      7(int) Constant 59
+              95:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 96 78 35 97 83 12 12 13
+              98:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 99 39 35 69 12 38 99 12 13 80 84 85 86 87 88 89 90 91 94 95
+             100:             TypePointer Uniform 79(UBO)
+             101:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 98 41 12
+     102(params):    100(ptr) Variable Uniform
+             103:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 104 98 35 69 12 38 104 102(params) 83
+             105:     74(int) Constant 2
+             106:             TypePointer Uniform 16(float)
+             107:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 18 41 12
+             121:      7(int) Constant 74
+             122:             TypeVector 7(int) 3
+             123:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 9 13
+             124:             TypePointer Function 122(ivec3)
+             125:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 123 22 12
+             127:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 128 123 35 121 12 55 40
+             130:             TypePointer Input 122(ivec3)
+             131:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 123 39 12
+132(gl_GlobalInvocationID):    130(ptr) Variable Input
+             133:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 134 123 35 121 12 38 134 132(gl_GlobalInvocationID) 83
+             137:      7(int) Constant 76
+             138:             TypePointer Function 7(int)
+             139:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 9 22 12
+             141:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 142 9 35 137 12 55 40
+             146:     74(int) Constant 10
+             147:             TypePointer Uniform 74(int)
+             148:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 76 41 12
+             157:      7(int) Constant 77
+             165:             TypeBool
+             167:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 166 10 41 12
+             173:      7(int) Constant 78
+             177:      7(int) Constant 81
+   178(Particle):             TypeStruct 72(fvec4) 72(fvec4) 72(fvec4) 72(fvec4) 16(float)
+             181:      7(int) Constant 31
+             179:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 180 73 35 181 22 12 12 13
+             182:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 180 73 35 181 22 12 12 13
+             183:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 180 73 35 181 22 12 12 13
+             184:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 180 73 35 181 22 12 12 13
+             185:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 186 18 35 10 83 12 12 13
+             187:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 188 39 35 177 12 38 188 12 13 179 182 183 184 185
+             189:             TypeRuntimeArray 178(Particle)
+             190:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 187 12
+ 191(ParticleIn):             TypeStruct 189
+             194:      7(int) Constant 36
+             195:      7(int) Constant 11
+             192:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 193 190 35 194 195 12 12 13
+             196:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 197 39 35 177 12 38 197 12 13 192
+             198:             TypePointer Uniform 191(ParticleIn)
+             199:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 196 41 12
+             200:    198(ptr) Variable Uniform
+             201:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 1 196 35 177 12 38 1 200 83
+             202:     74(int) Constant 0
+             204:     74(int) Constant 4
+             207:   16(float) Constant 1065353216
+             213:      7(int) Constant 82
+             214:             TypeRuntimeArray 178(Particle)
+             215:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 187 12
+216(ParticleOut):             TypeStruct 214
+             219:      7(int) Constant 40
+             217:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 218 215 35 219 195 12 12 13
+             220:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 221 39 35 213 12 38 221 12 13 217
+             222:             TypePointer Uniform 216(ParticleOut)
+             223:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 220 41 12
+             224:    222(ptr) Variable Uniform
+             225:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 1 220 35 213 12 38 1 224 83
+             228:             TypePointer Uniform 72(fvec4)
+             229:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 73 41 12
+             234:      7(int) Constant 83
+             236:     74(int) Constant 1
+             237:   16(float) Constant 0
+             238:   72(fvec4) ConstantComposite 237 237 237 237
+             241:      7(int) Constant 84
+             245:      7(int) Constant 88
+             247:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 248 20 35 245 12 55 40
+             250:     74(int) Constant 9
+             258:      7(int) Constant 90
+             260:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 261 20 35 258 12 55 40
+             268:      7(int) Constant 91
+             270:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 271 20 35 268 12 55 40
+             278:      7(int) Constant 95
+             286:      7(int) Constant 96
+             303:      7(int) Constant 99
+             315:      7(int) Constant 100
+             332:      7(int) Constant 103
+             344:      7(int) Constant 104
+             350:     74(int) Constant 5
+             365:      7(int) Constant 107
+             373:      7(int) Constant 108
+             393:      7(int) Constant 111
+             413:      7(int) Constant 112
+             420:     74(int) Constant 6
+             435:      7(int) Constant 115
+             451:      7(int) Constant 116
+             472:      7(int) Constant 119
+             496:      7(int) Constant 120
+             517:      7(int) Constant 123
              537:      7(int) Constant 124
              558:      7(int) Constant 127
-             559:     69(int) Constant 3
+             559:     74(int) Constant 3
              568:      7(int) Constant 130
-             570:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 571 28 17 568 12 16 21
+             570:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 571 20 35 568 12 55 40
              579:      7(int) Constant 131
-             587:   24(float) Constant 1056964608
+             587:   16(float) Constant 1056964608
              603:      7(int) Constant 132
              617:      7(int) Constant 135
-             619:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 620 28 17 617 12 16 21
-             626:     69(int) Constant 8
+             619:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 620 20 35 617 12 55 40
+             626:     74(int) Constant 8
              632:      7(int) Constant 136
-             635:     69(int) Constant 7
-             638:   24(float) Constant 1008981770
-             640:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 156 10 22 12
-             646:      7(int) Constant 138
-             665:      7(int) Constant 140
-             670:      7(int) Constant 144
- 671(PushConsts):             TypeStruct 7(int)
-             674:      7(int) Constant 63
-             672:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 673 8 17 674 89 12 12 13
-             675:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 676 20 17 670 12 19 676 12 13 672
-             677:             TypePointer PushConstant 671(PushConsts)
- 678(pushConsts):    677(ptr) Variable PushConstant
-             679:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 680 675 17 670 12 19 680 678(pushConsts) 78
-             681:             TypePointer PushConstant 7(int)
-             684:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 156 10 22 12
-             690:      7(int) Constant 145
-             692:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 170 28 17 690 12 16 21
-             694:   27(fvec3) ConstantComposite 225 225 225
-             696:      7(int) Constant 147
-             699:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 156 10 22 12
+             635:     74(int) Constant 7
+             638:   16(float) Constant 1008981770
+             645:      7(int) Constant 138
+             664:      7(int) Constant 140
+             669:      7(int) Constant 144
+ 670(PushConsts):             TypeStruct 7(int)
+             673:      7(int) Constant 63
+             671:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 672 9 35 673 22 12 12 13
+             674:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 675 39 35 669 12 38 675 12 13 671
+             676:             TypePointer PushConstant 670(PushConsts)
+             677:      7(int) Constant 9
+             678:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 674 677 12
+ 679(pushConsts):    676(ptr) Variable PushConstant
+             680:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 681 674 35 669 12 38 681 679(pushConsts) 83
+             682:             TypePointer PushConstant 7(int)
+             683:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 9 677 12
+             691:      7(int) Constant 145
+             693:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 180 20 35 691 12 55 40
+             695:   19(fvec3) ConstantComposite 237 237 237
+             697:      7(int) Constant 147
              705:      7(int) Constant 148
-             708:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 156 10 22 12
-             714:      7(int) Constant 149
-             716:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 717 28 17 714 12 16 21
-             727:      7(int) Constant 150
-             729:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 730 28 17 727 12 16 21
-             744:      7(int) Constant 151
-             746:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 747 28 17 744 12 16 21
-             760:      7(int) Constant 152
-             772:      7(int) Constant 154
-             779:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 156 10 22 12
-             785:      7(int) Constant 155
-             797:      7(int) Constant 156
-             810:      7(int) Constant 157
-             819:      7(int) Constant 158
-             831:      7(int) Constant 161
-             838:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 156 10 22 12
-             844:      7(int) Constant 162
-             847:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 156 10 22 12
-             853:      7(int) Constant 163
-             865:      7(int) Constant 164
-             878:      7(int) Constant 165
-             887:      7(int) Constant 166
-             899:      7(int) Constant 168
-             906:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 156 10 22 12
-             912:      7(int) Constant 169
-             921:      7(int) Constant 170
-             934:      7(int) Constant 171
-             946:      7(int) Constant 172
-             958:      7(int) Constant 175
-             967:      7(int) Constant 10
-             968:  116(ivec3) ConstantComposite 967 967 20
+             713:      7(int) Constant 149
+             715:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 716 20 35 713 12 55 40
+             726:      7(int) Constant 150
+             728:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 729 20 35 726 12 55 40
+             743:      7(int) Constant 151
+             745:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 746 20 35 743 12 55 40
+             759:      7(int) Constant 152
+             771:      7(int) Constant 154
+             783:      7(int) Constant 155
+             795:      7(int) Constant 156
+             808:      7(int) Constant 157
+             817:      7(int) Constant 158
+             829:      7(int) Constant 161
+             841:      7(int) Constant 162
+             849:      7(int) Constant 163
+             861:      7(int) Constant 164
+             874:      7(int) Constant 165
+             883:      7(int) Constant 166
+             895:      7(int) Constant 168
+             907:      7(int) Constant 169
+             916:      7(int) Constant 170
+             929:      7(int) Constant 171
+             941:      7(int) Constant 172
+             953:      7(int) Constant 175
+             962:      7(int) Constant 10
+             963:  122(ivec3) ConstantComposite 962 962 39
                               Line 1 72 11
         14(main):           4 Function None 5
-              23:             Label
-         119(id):    118(ptr) Variable Function
-      131(index):    130(ptr) Variable Function
-      234(force):     29(ptr) Variable Function
-        247(pos):     29(ptr) Variable Function
-        257(vel):     29(ptr) Variable Function
-      278(param):     29(ptr) Variable Function
-      282(param):     29(ptr) Variable Function
-      284(param):     30(ptr) Variable Function
-      308(param):     29(ptr) Variable Function
-      312(param):     29(ptr) Variable Function
-      314(param):     30(ptr) Variable Function
-      342(param):     29(ptr) Variable Function
-      346(param):     29(ptr) Variable Function
-      348(param):     30(ptr) Variable Function
-      371(param):     29(ptr) Variable Function
-      375(param):     29(ptr) Variable Function
-      377(param):     30(ptr) Variable Function
-      415(param):     29(ptr) Variable Function
-      419(param):     29(ptr) Variable Function
-      421(param):     30(ptr) Variable Function
-      454(param):     29(ptr) Variable Function
-      458(param):     29(ptr) Variable Function
-      460(param):     30(ptr) Variable Function
-      501(param):     29(ptr) Variable Function
-      505(param):     29(ptr) Variable Function
-      507(param):     30(ptr) Variable Function
-      544(param):     29(ptr) Variable Function
-      548(param):     29(ptr) Variable Function
-      550(param):     30(ptr) Variable Function
-          569(f):     29(ptr) Variable Function
- 618(sphereDist):     29(ptr) Variable Function
-     691(normal):     29(ptr) Variable Function
-          715(a):     29(ptr) Variable Function
-          728(b):     29(ptr) Variable Function
-          745(c):     29(ptr) Variable Function
-             112:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 16 14(main)
-             113:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             114:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 115 115 12 12
-             122:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 120 119(id) 45
-             127:  116(ivec3) Load 124(gl_GlobalInvocationID)
-                              Store 119(id) 127
-             128:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 129 129 12 12
-             134:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 132 131(index) 45
-             135:    130(ptr) AccessChain 119(id) 20
-             136:      7(int) Load 135
-             139:    138(ptr) AccessChain 97(params) 137 12
-             140:     69(int) Load 139
-             141:      7(int) Bitcast 140
-             142:      7(int) IMul 136 141
-             143:    130(ptr) AccessChain 119(id) 12
-             144:      7(int) Load 143
-             145:      7(int) IAdd 142 144
-                              Store 131(index) 145
-             146:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 147 147 12 12
-             148:      7(int) Load 131(index)
-             149:    138(ptr) AccessChain 97(params) 137 12
-             150:     69(int) Load 149
-             151:    138(ptr) AccessChain 97(params) 137 20
-             152:     69(int) Load 151
-             153:     69(int) IMul 150 152
-             154:      7(int) Bitcast 153
-             158:   155(bool) UGreaterThan 148 154
-                              SelectionMerge 160 None
-                              BranchConditional 158 159 160
-             159:               Label
-             161:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             162:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 163 163 12 12
+              15:             Label
+         126(id):    124(ptr) Variable Function
+      140(index):    138(ptr) Variable Function
+      246(force):     21(ptr) Variable Function
+        259(pos):     21(ptr) Variable Function
+        269(vel):     21(ptr) Variable Function
+      289(param):     21(ptr) Variable Function
+      293(param):     21(ptr) Variable Function
+      295(param):     24(ptr) Variable Function
+      318(param):     21(ptr) Variable Function
+      322(param):     21(ptr) Variable Function
+      324(param):     24(ptr) Variable Function
+      351(param):     21(ptr) Variable Function
+      355(param):     21(ptr) Variable Function
+      357(param):     24(ptr) Variable Function
+      379(param):     21(ptr) Variable Function
+      383(param):     21(ptr) Variable Function
+      385(param):     24(ptr) Variable Function
+      421(param):     21(ptr) Variable Function
+      425(param):     21(ptr) Variable Function
+      427(param):     24(ptr) Variable Function
+      458(param):     21(ptr) Variable Function
+      462(param):     21(ptr) Variable Function
+      464(param):     24(ptr) Variable Function
+      503(param):     21(ptr) Variable Function
+      507(param):     21(ptr) Variable Function
+      509(param):     24(ptr) Variable Function
+      544(param):     21(ptr) Variable Function
+      548(param):     21(ptr) Variable Function
+      550(param):     24(ptr) Variable Function
+          569(f):     21(ptr) Variable Function
+ 618(sphereDist):     21(ptr) Variable Function
+     692(normal):     21(ptr) Variable Function
+          714(a):     21(ptr) Variable Function
+          727(b):     21(ptr) Variable Function
+          744(c):     21(ptr) Variable Function
+             118:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 55 14(main)
+             119:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             120:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 121 121 12 12
+             129:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 127 126(id) 47
+             135:  122(ivec3) Load 132(gl_GlobalInvocationID)
+                              Store 126(id) 135
+             136:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 137 137 12 12
+             143:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 141 140(index) 47
+             144:    138(ptr) AccessChain 126(id) 39
+             145:      7(int) Load 144
+             149:    147(ptr) AccessChain 102(params) 146 12
+             150:     74(int) Load 149
+             151:      7(int) Bitcast 150
+             152:      7(int) IMul 145 151
+             153:    138(ptr) AccessChain 126(id) 12
+             154:      7(int) Load 153
+             155:      7(int) IAdd 152 154
+                              Store 140(index) 155
+             156:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 157 157 12 12
+             158:      7(int) Load 140(index)
+             159:    147(ptr) AccessChain 102(params) 146 12
+             160:     74(int) Load 159
+             161:    147(ptr) AccessChain 102(params) 146 39
+             162:     74(int) Load 161
+             163:     74(int) IMul 160 162
+             164:      7(int) Bitcast 163
+             168:   165(bool) UGreaterThan 158 164
+                              SelectionMerge 170 None
+                              BranchConditional 168 169 170
+             169:               Label
+             171:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             172:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 173 173 12 12
                                 Return
-             160:             Label
-             165:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             166:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 167 167 12 12
-             192:      7(int) Load 131(index)
-             194:    101(ptr) AccessChain 189 191 192 193
-             195:   24(float) Load 194
-             198:   155(bool) FOrdEqual 195 196
-                              SelectionMerge 200 None
-                              BranchConditional 198 199 200
-             199:               Label
-             201:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             202:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 203 203 12 12
-             215:      7(int)   Load 131(index)
-             216:      7(int)   Load 131(index)
-             218:    217(ptr)   AccessChain 213 191 216 191
-             219:   67(fvec4)   Load 218
-             220:    217(ptr)   AccessChain 213 191 215 191
-                                Store 220 219
-             221:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 222 222 12 12
-             223:      7(int)   Load 131(index)
-             227:    217(ptr)   AccessChain 213 191 223 224
-                                Store 227 226
-             228:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 229 229 12 12
+             170:             Label
+             175:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             176:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 177 177 12 12
+             203:      7(int) Load 140(index)
+             205:    106(ptr) AccessChain 200 202 203 204
+             206:   16(float) Load 205
+             208:   165(bool) FOrdEqual 206 207
+                              SelectionMerge 210 None
+                              BranchConditional 208 209 210
+             209:               Label
+             211:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             212:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 213 213 12 12
+             226:      7(int)   Load 140(index)
+             227:      7(int)   Load 140(index)
+             230:    228(ptr)   AccessChain 224 202 227 202
+             231:   72(fvec4)   Load 230
+             232:    228(ptr)   AccessChain 224 202 226 202
+                                Store 232 231
+             233:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 234 234 12 12
+             235:      7(int)   Load 140(index)
+             239:    228(ptr)   AccessChain 224 202 235 236
+                                Store 239 238
+             240:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 241 241 12 12
                                 Return
-             200:             Label
-             231:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             232:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 233 233 12 12
-             237:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 235 234(force) 45
-             239:    217(ptr) AccessChain 97(params) 238
-             240:   67(fvec4) Load 239
-             241:   27(fvec3) VectorShuffle 240 240 0 1 2
-             242:    101(ptr) AccessChain 97(params) 224
-             243:   24(float) Load 242
-             244:   27(fvec3) VectorTimesScalar 241 243
-                              Store 234(force) 244
-             245:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 246 246 12 12
-             250:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 248 247(pos) 45
-             251:      7(int) Load 131(index)
-             252:    217(ptr) AccessChain 189 191 251 191
-             253:   67(fvec4) Load 252
-             254:   27(fvec3) VectorShuffle 253 253 0 1 2
-                              Store 247(pos) 254
-             255:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 256 256 12 12
-             260:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 258 257(vel) 45
-             261:      7(int) Load 131(index)
-             262:    217(ptr) AccessChain 189 191 261 224
-             263:   67(fvec4) Load 262
-             264:   27(fvec3) VectorShuffle 263 263 0 1 2
-                              Store 257(vel) 264
-             265:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 266 266 12 12
-             267:    130(ptr) AccessChain 119(id) 12
-             268:      7(int) Load 267
-             270:   155(bool) UGreaterThan 268 12
-                              SelectionMerge 272 None
-                              BranchConditional 270 271 272
-             271:               Label
-             273:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             274:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 275 275 12 12
-             276:      7(int)   Load 131(index)
-             277:      7(int)   ISub 276 20
-             279:    217(ptr)   AccessChain 189 191 277 191
-             280:   67(fvec4)   Load 279
-             281:   27(fvec3)   VectorShuffle 280 280 0 1 2
-                                Store 278(param) 281
-             283:   27(fvec3)   Load 247(pos)
-                                Store 282(param) 283
-             285:    101(ptr)   AccessChain 97(params) 193
-             286:   24(float)   Load 285
-                                Store 284(param) 286
-             287:   27(fvec3)   FunctionCall 36(springForce(vf3;vf3;f1;) 278(param) 282(param) 284(param)
-             288:   27(fvec3)   Load 234(force)
-             289:   27(fvec3)   FAdd 288 287
-                                Store 234(force) 289
-                                Branch 272
-             272:             Label
-             290:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             291:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 292 292 12 12
-             293:    130(ptr) AccessChain 119(id) 12
-             294:      7(int) Load 293
-             295:    138(ptr) AccessChain 97(params) 137 12
-             296:     69(int) Load 295
-             297:     69(int) ISub 296 224
-             298:      7(int) Bitcast 297
-             300:   155(bool) ULessThan 294 298
-                              SelectionMerge 302 None
-                              BranchConditional 300 301 302
-             301:               Label
-             303:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             304:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 305 305 12 12
-             306:      7(int)   Load 131(index)
-             307:      7(int)   IAdd 306 20
-             309:    217(ptr)   AccessChain 189 191 307 191
-             310:   67(fvec4)   Load 309
-             311:   27(fvec3)   VectorShuffle 310 310 0 1 2
-                                Store 308(param) 311
-             313:   27(fvec3)   Load 247(pos)
-                                Store 312(param) 313
-             315:    101(ptr)   AccessChain 97(params) 193
-             316:   24(float)   Load 315
-                                Store 314(param) 316
-             317:   27(fvec3)   FunctionCall 36(springForce(vf3;vf3;f1;) 308(param) 312(param) 314(param)
-             318:   27(fvec3)   Load 234(force)
-             319:   27(fvec3)   FAdd 318 317
-                                Store 234(force) 319
-                                Branch 302
-             302:             Label
-             320:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             321:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 322 322 12 12
-             323:    130(ptr) AccessChain 119(id) 20
-             324:      7(int) Load 323
-             325:    138(ptr) AccessChain 97(params) 137 20
-             326:     69(int) Load 325
-             327:     69(int) ISub 326 224
-             328:      7(int) Bitcast 327
-             330:   155(bool) ULessThan 324 328
-                              SelectionMerge 332 None
-                              BranchConditional 330 331 332
-             331:               Label
-             333:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             334:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 335 335 12 12
-             336:      7(int)   Load 131(index)
-             337:    138(ptr)   AccessChain 97(params) 137 12
-             338:     69(int)   Load 337
-             339:      7(int)   Bitcast 338
-             340:      7(int)   IAdd 336 339
-             343:    217(ptr)   AccessChain 189 191 340 191
-             344:   67(fvec4)   Load 343
-             345:   27(fvec3)   VectorShuffle 344 344 0 1 2
-                                Store 342(param) 345
-             347:   27(fvec3)   Load 247(pos)
-                                Store 346(param) 347
-             349:    101(ptr)   AccessChain 97(params) 341
-             350:   24(float)   Load 349
-                                Store 348(param) 350
-             351:   27(fvec3)   FunctionCall 36(springForce(vf3;vf3;f1;) 342(param) 346(param) 348(param)
-             352:   27(fvec3)   Load 234(force)
-             353:   27(fvec3)   FAdd 352 351
-                                Store 234(force) 353
-                                Branch 332
-             332:             Label
-             354:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             355:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 356 356 12 12
-             357:    130(ptr) AccessChain 119(id) 20
-             358:      7(int) Load 357
-             360:   155(bool) UGreaterThan 358 12
-                              SelectionMerge 362 None
-                              BranchConditional 360 361 362
-             361:               Label
-             363:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             364:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 365 365 12 12
-             366:      7(int)   Load 131(index)
-             367:    138(ptr)   AccessChain 97(params) 137 12
-             368:     69(int)   Load 367
-             369:      7(int)   Bitcast 368
-             370:      7(int)   ISub 366 369
-             372:    217(ptr)   AccessChain 189 191 370 191
-             373:   67(fvec4)   Load 372
-             374:   27(fvec3)   VectorShuffle 373 373 0 1 2
-                                Store 371(param) 374
-             376:   27(fvec3)   Load 247(pos)
-                                Store 375(param) 376
-             378:    101(ptr)   AccessChain 97(params) 341
-             379:   24(float)   Load 378
-                                Store 377(param) 379
-             380:   27(fvec3)   FunctionCall 36(springForce(vf3;vf3;f1;) 371(param) 375(param) 377(param)
-             381:   27(fvec3)   Load 234(force)
-             382:   27(fvec3)   FAdd 381 380
-                                Store 234(force) 382
-                                Branch 362
-             362:             Label
-             383:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             384:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 385 385 12 12
-             386:    130(ptr) AccessChain 119(id) 12
-             387:      7(int) Load 386
-             389:   155(bool) UGreaterThan 387 12
-                              SelectionMerge 391 None
-                              BranchConditional 389 390 391
-             390:               Label
-             392:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             393:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 385 385 12 12
-             394:    130(ptr)   AccessChain 119(id) 20
-             395:      7(int)   Load 394
-             396:    138(ptr)   AccessChain 97(params) 137 20
-             397:     69(int)   Load 396
-             398:     69(int)   ISub 397 224
-             399:      7(int)   Bitcast 398
-             401:   155(bool)   ULessThan 395 399
-                                Branch 391
-             391:             Label
-             402:   155(bool) Phi 389 362 401 390
-                              SelectionMerge 404 None
-                              BranchConditional 402 403 404
-             403:               Label
-             405:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             406:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 407 407 12 12
-             408:      7(int)   Load 131(index)
-             409:    138(ptr)   AccessChain 97(params) 137 12
-             410:     69(int)   Load 409
-             411:      7(int)   Bitcast 410
-             412:      7(int)   IAdd 408 411
-             413:      7(int)   ISub 412 20
-             416:    217(ptr)   AccessChain 189 191 413 191
-             417:   67(fvec4)   Load 416
-             418:   27(fvec3)   VectorShuffle 417 417 0 1 2
-                                Store 415(param) 418
-             420:   27(fvec3)   Load 247(pos)
-                                Store 419(param) 420
-             422:    101(ptr)   AccessChain 97(params) 414
-             423:   24(float)   Load 422
-                                Store 421(param) 423
-             424:   27(fvec3)   FunctionCall 36(springForce(vf3;vf3;f1;) 415(param) 419(param) 421(param)
-             425:   27(fvec3)   Load 234(force)
-             426:   27(fvec3)   FAdd 425 424
-                                Store 234(force) 426
-                                Branch 404
-             404:             Label
-             427:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             428:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 429 429 12 12
-             430:    130(ptr) AccessChain 119(id) 12
-             431:      7(int) Load 430
-             433:   155(bool) UGreaterThan 431 12
-                              SelectionMerge 435 None
-                              BranchConditional 433 434 435
-             434:               Label
-             436:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             437:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 429 429 12 12
-             438:    130(ptr)   AccessChain 119(id) 20
-             439:      7(int)   Load 438
-             441:   155(bool)   UGreaterThan 439 12
-                                Branch 435
-             435:             Label
-             442:   155(bool) Phi 433 404 441 434
-                              SelectionMerge 444 None
-                              BranchConditional 442 443 444
-             443:               Label
-             445:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             446:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 447 447 12 12
-             448:      7(int)   Load 131(index)
-             449:    138(ptr)   AccessChain 97(params) 137 12
-             450:     69(int)   Load 449
-             451:      7(int)   Bitcast 450
-             452:      7(int)   ISub 448 451
-             453:      7(int)   ISub 452 20
-             455:    217(ptr)   AccessChain 189 191 453 191
-             456:   67(fvec4)   Load 455
-             457:   27(fvec3)   VectorShuffle 456 456 0 1 2
-                                Store 454(param) 457
-             459:   27(fvec3)   Load 247(pos)
-                                Store 458(param) 459
-             461:    101(ptr)   AccessChain 97(params) 414
-             462:   24(float)   Load 461
-                                Store 460(param) 462
-             463:   27(fvec3)   FunctionCall 36(springForce(vf3;vf3;f1;) 454(param) 458(param) 460(param)
-             464:   27(fvec3)   Load 234(force)
-             465:   27(fvec3)   FAdd 464 463
-                                Store 234(force) 465
-                                Branch 444
-             444:             Label
-             466:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             467:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 468 468 12 12
-             469:    130(ptr) AccessChain 119(id) 12
-             470:      7(int) Load 469
-             471:    138(ptr) AccessChain 97(params) 137 12
-             472:     69(int) Load 471
-             473:     69(int) ISub 472 224
-             474:      7(int) Bitcast 473
-             476:   155(bool) ULessThan 470 474
-                              SelectionMerge 478 None
-                              BranchConditional 476 477 478
-             477:               Label
-             479:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             480:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 468 468 12 12
-             481:    130(ptr)   AccessChain 119(id) 20
-             482:      7(int)   Load 481
-             483:    138(ptr)   AccessChain 97(params) 137 20
-             484:     69(int)   Load 483
-             485:     69(int)   ISub 484 224
-             486:      7(int)   Bitcast 485
-             488:   155(bool)   ULessThan 482 486
-                                Branch 478
-             478:             Label
-             489:   155(bool) Phi 476 444 488 477
-                              SelectionMerge 491 None
-                              BranchConditional 489 490 491
-             490:               Label
-             492:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             493:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 494 494 12 12
-             495:      7(int)   Load 131(index)
-             496:    138(ptr)   AccessChain 97(params) 137 12
-             497:     69(int)   Load 496
-             498:      7(int)   Bitcast 497
-             499:      7(int)   IAdd 495 498
-             500:      7(int)   IAdd 499 20
-             502:    217(ptr)   AccessChain 189 191 500 191
-             503:   67(fvec4)   Load 502
-             504:   27(fvec3)   VectorShuffle 503 503 0 1 2
-                                Store 501(param) 504
-             506:   27(fvec3)   Load 247(pos)
-                                Store 505(param) 506
-             508:    101(ptr)   AccessChain 97(params) 414
-             509:   24(float)   Load 508
-                                Store 507(param) 509
-             510:   27(fvec3)   FunctionCall 36(springForce(vf3;vf3;f1;) 501(param) 505(param) 507(param)
-             511:   27(fvec3)   Load 234(force)
-             512:   27(fvec3)   FAdd 511 510
-                                Store 234(force) 512
-                                Branch 491
-             491:             Label
-             513:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             514:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 515 515 12 12
-             516:    130(ptr) AccessChain 119(id) 12
-             517:      7(int) Load 516
-             518:    138(ptr) AccessChain 97(params) 137 12
-             519:     69(int) Load 518
-             520:     69(int) ISub 519 224
-             521:      7(int) Bitcast 520
-             523:   155(bool) ULessThan 517 521
-                              SelectionMerge 525 None
-                              BranchConditional 523 524 525
-             524:               Label
-             526:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             527:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 515 515 12 12
-             528:    130(ptr)   AccessChain 119(id) 20
-             529:      7(int)   Load 528
-             531:   155(bool)   UGreaterThan 529 12
-                                Branch 525
-             525:             Label
-             532:   155(bool) Phi 523 491 531 524
+             210:             Label
+             243:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             244:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 245 245 12 12
+             249:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 247 246(force) 47
+             251:    228(ptr) AccessChain 102(params) 250
+             252:   72(fvec4) Load 251
+             253:   19(fvec3) VectorShuffle 252 252 0 1 2
+             254:    106(ptr) AccessChain 102(params) 236
+             255:   16(float) Load 254
+             256:   19(fvec3) VectorTimesScalar 253 255
+                              Store 246(force) 256
+             257:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 258 258 12 12
+             262:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 260 259(pos) 47
+             263:      7(int) Load 140(index)
+             264:    228(ptr) AccessChain 200 202 263 202
+             265:   72(fvec4) Load 264
+             266:   19(fvec3) VectorShuffle 265 265 0 1 2
+                              Store 259(pos) 266
+             267:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 268 268 12 12
+             272:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 270 269(vel) 47
+             273:      7(int) Load 140(index)
+             274:    228(ptr) AccessChain 200 202 273 236
+             275:   72(fvec4) Load 274
+             276:   19(fvec3) VectorShuffle 275 275 0 1 2
+                              Store 269(vel) 276
+             277:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 278 278 12 12
+             279:    138(ptr) AccessChain 126(id) 12
+             280:      7(int) Load 279
+             281:   165(bool) UGreaterThan 280 12
+                              SelectionMerge 283 None
+                              BranchConditional 281 282 283
+             282:               Label
+             284:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             285:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 286 286 12 12
+             287:      7(int)   Load 140(index)
+             288:      7(int)   ISub 287 39
+             290:    228(ptr)   AccessChain 200 202 288 202
+             291:   72(fvec4)   Load 290
+             292:   19(fvec3)   VectorShuffle 291 291 0 1 2
+                                Store 289(param) 292
+             294:   19(fvec3)   Load 259(pos)
+                                Store 293(param) 294
+             296:    106(ptr)   AccessChain 102(params) 204
+             297:   16(float)   Load 296
+                                Store 295(param) 297
+             298:   19(fvec3)   FunctionCall 31(springForce(vf3;vf3;f1;) 289(param) 293(param) 295(param)
+             299:   19(fvec3)   Load 246(force)
+             300:   19(fvec3)   FAdd 299 298
+                                Store 246(force) 300
+                                Branch 283
+             283:             Label
+             301:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             302:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 303 303 12 12
+             304:    138(ptr) AccessChain 126(id) 12
+             305:      7(int) Load 304
+             306:    147(ptr) AccessChain 102(params) 146 12
+             307:     74(int) Load 306
+             308:     74(int) ISub 307 236
+             309:      7(int) Bitcast 308
+             310:   165(bool) ULessThan 305 309
+                              SelectionMerge 312 None
+                              BranchConditional 310 311 312
+             311:               Label
+             313:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             314:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 315 315 12 12
+             316:      7(int)   Load 140(index)
+             317:      7(int)   IAdd 316 39
+             319:    228(ptr)   AccessChain 200 202 317 202
+             320:   72(fvec4)   Load 319
+             321:   19(fvec3)   VectorShuffle 320 320 0 1 2
+                                Store 318(param) 321
+             323:   19(fvec3)   Load 259(pos)
+                                Store 322(param) 323
+             325:    106(ptr)   AccessChain 102(params) 204
+             326:   16(float)   Load 325
+                                Store 324(param) 326
+             327:   19(fvec3)   FunctionCall 31(springForce(vf3;vf3;f1;) 318(param) 322(param) 324(param)
+             328:   19(fvec3)   Load 246(force)
+             329:   19(fvec3)   FAdd 328 327
+                                Store 246(force) 329
+                                Branch 312
+             312:             Label
+             330:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             331:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 332 332 12 12
+             333:    138(ptr) AccessChain 126(id) 39
+             334:      7(int) Load 333
+             335:    147(ptr) AccessChain 102(params) 146 39
+             336:     74(int) Load 335
+             337:     74(int) ISub 336 236
+             338:      7(int) Bitcast 337
+             339:   165(bool) ULessThan 334 338
+                              SelectionMerge 341 None
+                              BranchConditional 339 340 341
+             340:               Label
+             342:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             343:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 344 344 12 12
+             345:      7(int)   Load 140(index)
+             346:    147(ptr)   AccessChain 102(params) 146 12
+             347:     74(int)   Load 346
+             348:      7(int)   Bitcast 347
+             349:      7(int)   IAdd 345 348
+             352:    228(ptr)   AccessChain 200 202 349 202
+             353:   72(fvec4)   Load 352
+             354:   19(fvec3)   VectorShuffle 353 353 0 1 2
+                                Store 351(param) 354
+             356:   19(fvec3)   Load 259(pos)
+                                Store 355(param) 356
+             358:    106(ptr)   AccessChain 102(params) 350
+             359:   16(float)   Load 358
+                                Store 357(param) 359
+             360:   19(fvec3)   FunctionCall 31(springForce(vf3;vf3;f1;) 351(param) 355(param) 357(param)
+             361:   19(fvec3)   Load 246(force)
+             362:   19(fvec3)   FAdd 361 360
+                                Store 246(force) 362
+                                Branch 341
+             341:             Label
+             363:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             364:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 365 365 12 12
+             366:    138(ptr) AccessChain 126(id) 39
+             367:      7(int) Load 366
+             368:   165(bool) UGreaterThan 367 12
+                              SelectionMerge 370 None
+                              BranchConditional 368 369 370
+             369:               Label
+             371:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             372:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 373 373 12 12
+             374:      7(int)   Load 140(index)
+             375:    147(ptr)   AccessChain 102(params) 146 12
+             376:     74(int)   Load 375
+             377:      7(int)   Bitcast 376
+             378:      7(int)   ISub 374 377
+             380:    228(ptr)   AccessChain 200 202 378 202
+             381:   72(fvec4)   Load 380
+             382:   19(fvec3)   VectorShuffle 381 381 0 1 2
+                                Store 379(param) 382
+             384:   19(fvec3)   Load 259(pos)
+                                Store 383(param) 384
+             386:    106(ptr)   AccessChain 102(params) 350
+             387:   16(float)   Load 386
+                                Store 385(param) 387
+             388:   19(fvec3)   FunctionCall 31(springForce(vf3;vf3;f1;) 379(param) 383(param) 385(param)
+             389:   19(fvec3)   Load 246(force)
+             390:   19(fvec3)   FAdd 389 388
+                                Store 246(force) 390
+                                Branch 370
+             370:             Label
+             391:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             392:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 393 393 12 12
+             394:    138(ptr) AccessChain 126(id) 12
+             395:      7(int) Load 394
+             396:   165(bool) UGreaterThan 395 12
+                              SelectionMerge 398 None
+                              BranchConditional 396 397 398
+             397:               Label
+             399:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             400:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 393 393 12 12
+             401:    138(ptr)   AccessChain 126(id) 39
+             402:      7(int)   Load 401
+             403:    147(ptr)   AccessChain 102(params) 146 39
+             404:     74(int)   Load 403
+             405:     74(int)   ISub 404 236
+             406:      7(int)   Bitcast 405
+             407:   165(bool)   ULessThan 402 406
+                                Branch 398
+             398:             Label
+             408:   165(bool) Phi 396 370 407 397
+                              SelectionMerge 410 None
+                              BranchConditional 408 409 410
+             409:               Label
+             411:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             412:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 413 413 12 12
+             414:      7(int)   Load 140(index)
+             415:    147(ptr)   AccessChain 102(params) 146 12
+             416:     74(int)   Load 415
+             417:      7(int)   Bitcast 416
+             418:      7(int)   IAdd 414 417
+             419:      7(int)   ISub 418 39
+             422:    228(ptr)   AccessChain 200 202 419 202
+             423:   72(fvec4)   Load 422
+             424:   19(fvec3)   VectorShuffle 423 423 0 1 2
+                                Store 421(param) 424
+             426:   19(fvec3)   Load 259(pos)
+                                Store 425(param) 426
+             428:    106(ptr)   AccessChain 102(params) 420
+             429:   16(float)   Load 428
+                                Store 427(param) 429
+             430:   19(fvec3)   FunctionCall 31(springForce(vf3;vf3;f1;) 421(param) 425(param) 427(param)
+             431:   19(fvec3)   Load 246(force)
+             432:   19(fvec3)   FAdd 431 430
+                                Store 246(force) 432
+                                Branch 410
+             410:             Label
+             433:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             434:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 435 435 12 12
+             436:    138(ptr) AccessChain 126(id) 12
+             437:      7(int) Load 436
+             438:   165(bool) UGreaterThan 437 12
+                              SelectionMerge 440 None
+                              BranchConditional 438 439 440
+             439:               Label
+             441:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             442:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 435 435 12 12
+             443:    138(ptr)   AccessChain 126(id) 39
+             444:      7(int)   Load 443
+             445:   165(bool)   UGreaterThan 444 12
+                                Branch 440
+             440:             Label
+             446:   165(bool) Phi 438 410 445 439
+                              SelectionMerge 448 None
+                              BranchConditional 446 447 448
+             447:               Label
+             449:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             450:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 451 451 12 12
+             452:      7(int)   Load 140(index)
+             453:    147(ptr)   AccessChain 102(params) 146 12
+             454:     74(int)   Load 453
+             455:      7(int)   Bitcast 454
+             456:      7(int)   ISub 452 455
+             457:      7(int)   ISub 456 39
+             459:    228(ptr)   AccessChain 200 202 457 202
+             460:   72(fvec4)   Load 459
+             461:   19(fvec3)   VectorShuffle 460 460 0 1 2
+                                Store 458(param) 461
+             463:   19(fvec3)   Load 259(pos)
+                                Store 462(param) 463
+             465:    106(ptr)   AccessChain 102(params) 420
+             466:   16(float)   Load 465
+                                Store 464(param) 466
+             467:   19(fvec3)   FunctionCall 31(springForce(vf3;vf3;f1;) 458(param) 462(param) 464(param)
+             468:   19(fvec3)   Load 246(force)
+             469:   19(fvec3)   FAdd 468 467
+                                Store 246(force) 469
+                                Branch 448
+             448:             Label
+             470:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             471:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 472 472 12 12
+             473:    138(ptr) AccessChain 126(id) 12
+             474:      7(int) Load 473
+             475:    147(ptr) AccessChain 102(params) 146 12
+             476:     74(int) Load 475
+             477:     74(int) ISub 476 236
+             478:      7(int) Bitcast 477
+             479:   165(bool) ULessThan 474 478
+                              SelectionMerge 481 None
+                              BranchConditional 479 480 481
+             480:               Label
+             482:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             483:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 472 472 12 12
+             484:    138(ptr)   AccessChain 126(id) 39
+             485:      7(int)   Load 484
+             486:    147(ptr)   AccessChain 102(params) 146 39
+             487:     74(int)   Load 486
+             488:     74(int)   ISub 487 236
+             489:      7(int)   Bitcast 488
+             490:   165(bool)   ULessThan 485 489
+                                Branch 481
+             481:             Label
+             491:   165(bool) Phi 479 448 490 480
+                              SelectionMerge 493 None
+                              BranchConditional 491 492 493
+             492:               Label
+             494:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             495:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 496 496 12 12
+             497:      7(int)   Load 140(index)
+             498:    147(ptr)   AccessChain 102(params) 146 12
+             499:     74(int)   Load 498
+             500:      7(int)   Bitcast 499
+             501:      7(int)   IAdd 497 500
+             502:      7(int)   IAdd 501 39
+             504:    228(ptr)   AccessChain 200 202 502 202
+             505:   72(fvec4)   Load 504
+             506:   19(fvec3)   VectorShuffle 505 505 0 1 2
+                                Store 503(param) 506
+             508:   19(fvec3)   Load 259(pos)
+                                Store 507(param) 508
+             510:    106(ptr)   AccessChain 102(params) 420
+             511:   16(float)   Load 510
+                                Store 509(param) 511
+             512:   19(fvec3)   FunctionCall 31(springForce(vf3;vf3;f1;) 503(param) 507(param) 509(param)
+             513:   19(fvec3)   Load 246(force)
+             514:   19(fvec3)   FAdd 513 512
+                                Store 246(force) 514
+                                Branch 493
+             493:             Label
+             515:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             516:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 517 517 12 12
+             518:    138(ptr) AccessChain 126(id) 12
+             519:      7(int) Load 518
+             520:    147(ptr) AccessChain 102(params) 146 12
+             521:     74(int) Load 520
+             522:     74(int) ISub 521 236
+             523:      7(int) Bitcast 522
+             524:   165(bool) ULessThan 519 523
+                              SelectionMerge 526 None
+                              BranchConditional 524 525 526
+             525:               Label
+             527:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             528:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 517 517 12 12
+             529:    138(ptr)   AccessChain 126(id) 39
+             530:      7(int)   Load 529
+             531:   165(bool)   UGreaterThan 530 12
+                                Branch 526
+             526:             Label
+             532:   165(bool) Phi 524 493 531 525
                               SelectionMerge 534 None
                               BranchConditional 532 533 534
              533:               Label
-             535:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             536:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 537 537 12 12
-             538:      7(int)   Load 131(index)
-             539:    138(ptr)   AccessChain 97(params) 137 12
-             540:     69(int)   Load 539
+             535:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             536:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 537 537 12 12
+             538:      7(int)   Load 140(index)
+             539:    147(ptr)   AccessChain 102(params) 146 12
+             540:     74(int)   Load 539
              541:      7(int)   Bitcast 540
              542:      7(int)   ISub 538 541
-             543:      7(int)   IAdd 542 20
-             545:    217(ptr)   AccessChain 189 191 543 191
-             546:   67(fvec4)   Load 545
-             547:   27(fvec3)   VectorShuffle 546 546 0 1 2
+             543:      7(int)   IAdd 542 39
+             545:    228(ptr)   AccessChain 200 202 543 202
+             546:   72(fvec4)   Load 545
+             547:   19(fvec3)   VectorShuffle 546 546 0 1 2
                                 Store 544(param) 547
-             549:   27(fvec3)   Load 247(pos)
+             549:   19(fvec3)   Load 259(pos)
                                 Store 548(param) 549
-             551:    101(ptr)   AccessChain 97(params) 414
-             552:   24(float)   Load 551
+             551:    106(ptr)   AccessChain 102(params) 420
+             552:   16(float)   Load 551
                                 Store 550(param) 552
-             553:   27(fvec3)   FunctionCall 36(springForce(vf3;vf3;f1;) 544(param) 548(param) 550(param)
-             554:   27(fvec3)   Load 234(force)
-             555:   27(fvec3)   FAdd 554 553
-                                Store 234(force) 555
+             553:   19(fvec3)   FunctionCall 31(springForce(vf3;vf3;f1;) 544(param) 548(param) 550(param)
+             554:   19(fvec3)   Load 246(force)
+             555:   19(fvec3)   FAdd 554 553
+                                Store 246(force) 555
                                 Branch 534
              534:             Label
-             556:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             557:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 558 558 12 12
-             560:    101(ptr) AccessChain 97(params) 559
-             561:   24(float) Load 560
-             562:   24(float) FNegate 561
-             563:   27(fvec3) Load 257(vel)
-             564:   27(fvec3) VectorTimesScalar 563 562
-             565:   27(fvec3) Load 234(force)
-             566:   27(fvec3) FAdd 565 564
-                              Store 234(force) 566
-             567:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 568 568 12 12
-             572:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 570 569(f) 45
-             573:   27(fvec3) Load 234(force)
-             574:    101(ptr) AccessChain 97(params) 224
-             575:   24(float) Load 574
-             576:   24(float) FDiv 196 575
-             577:   27(fvec3) VectorTimesScalar 573 576
+             556:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             557:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 558 558 12 12
+             560:    106(ptr) AccessChain 102(params) 559
+             561:   16(float) Load 560
+             562:   16(float) FNegate 561
+             563:   19(fvec3) Load 269(vel)
+             564:   19(fvec3) VectorTimesScalar 563 562
+             565:   19(fvec3) Load 246(force)
+             566:   19(fvec3) FAdd 565 564
+                              Store 246(force) 566
+             567:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 568 568 12 12
+             572:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 570 569(f) 47
+             573:   19(fvec3) Load 246(force)
+             574:    106(ptr) AccessChain 102(params) 236
+             575:   16(float) Load 574
+             576:   16(float) FDiv 207 575
+             577:   19(fvec3) VectorTimesScalar 573 576
                               Store 569(f) 577
-             578:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 579 579 12 12
-             580:      7(int) Load 131(index)
-             581:   27(fvec3) Load 247(pos)
-             582:   27(fvec3) Load 257(vel)
-             583:    101(ptr) AccessChain 97(params) 191
-             584:   24(float) Load 583
-             585:   27(fvec3) VectorTimesScalar 582 584
-             586:   27(fvec3) FAdd 581 585
-             588:   27(fvec3) Load 569(f)
-             589:   27(fvec3) VectorTimesScalar 588 587
-             590:    101(ptr) AccessChain 97(params) 191
-             591:   24(float) Load 590
-             592:   27(fvec3) VectorTimesScalar 589 591
-             593:    101(ptr) AccessChain 97(params) 191
-             594:   24(float) Load 593
-             595:   27(fvec3) VectorTimesScalar 592 594
-             596:   27(fvec3) FAdd 586 595
-             597:   24(float) CompositeExtract 596 0
-             598:   24(float) CompositeExtract 596 1
-             599:   24(float) CompositeExtract 596 2
-             600:   67(fvec4) CompositeConstruct 597 598 599 196
-             601:    217(ptr) AccessChain 213 191 580 191
+             578:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 579 579 12 12
+             580:      7(int) Load 140(index)
+             581:   19(fvec3) Load 259(pos)
+             582:   19(fvec3) Load 269(vel)
+             583:    106(ptr) AccessChain 102(params) 202
+             584:   16(float) Load 583
+             585:   19(fvec3) VectorTimesScalar 582 584
+             586:   19(fvec3) FAdd 581 585
+             588:   19(fvec3) Load 569(f)
+             589:   19(fvec3) VectorTimesScalar 588 587
+             590:    106(ptr) AccessChain 102(params) 202
+             591:   16(float) Load 590
+             592:   19(fvec3) VectorTimesScalar 589 591
+             593:    106(ptr) AccessChain 102(params) 202
+             594:   16(float) Load 593
+             595:   19(fvec3) VectorTimesScalar 592 594
+             596:   19(fvec3) FAdd 586 595
+             597:   16(float) CompositeExtract 596 0
+             598:   16(float) CompositeExtract 596 1
+             599:   16(float) CompositeExtract 596 2
+             600:   72(fvec4) CompositeConstruct 597 598 599 207
+             601:    228(ptr) AccessChain 224 202 580 202
                               Store 601 600
-             602:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 603 603 12 12
-             604:      7(int) Load 131(index)
-             605:   27(fvec3) Load 257(vel)
-             606:   27(fvec3) Load 569(f)
-             607:    101(ptr) AccessChain 97(params) 191
-             608:   24(float) Load 607
-             609:   27(fvec3) VectorTimesScalar 606 608
-             610:   27(fvec3) FAdd 605 609
-             611:   24(float) CompositeExtract 610 0
-             612:   24(float) CompositeExtract 610 1
-             613:   24(float) CompositeExtract 610 2
-             614:   67(fvec4) CompositeConstruct 611 612 613 225
-             615:    217(ptr) AccessChain 213 191 604 224
+             602:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 603 603 12 12
+             604:      7(int) Load 140(index)
+             605:   19(fvec3) Load 269(vel)
+             606:   19(fvec3) Load 569(f)
+             607:    106(ptr) AccessChain 102(params) 202
+             608:   16(float) Load 607
+             609:   19(fvec3) VectorTimesScalar 606 608
+             610:   19(fvec3) FAdd 605 609
+             611:   16(float) CompositeExtract 610 0
+             612:   16(float) CompositeExtract 610 1
+             613:   16(float) CompositeExtract 610 2
+             614:   72(fvec4) CompositeConstruct 611 612 613 237
+             615:    228(ptr) AccessChain 224 202 604 236
                               Store 615 614
-             616:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 617 617 12 12
-             621:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 619 618(sphereDist) 45
-             622:      7(int) Load 131(index)
-             623:    217(ptr) AccessChain 213 191 622 191
-             624:   67(fvec4) Load 623
-             625:   27(fvec3) VectorShuffle 624 624 0 1 2
-             627:    217(ptr) AccessChain 97(params) 626
-             628:   67(fvec4) Load 627
-             629:   27(fvec3) VectorShuffle 628 628 0 1 2
-             630:   27(fvec3) FSub 625 629
+             616:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 617 617 12 12
+             621:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 619 618(sphereDist) 47
+             622:      7(int) Load 140(index)
+             623:    228(ptr) AccessChain 224 202 622 202
+             624:   72(fvec4) Load 623
+             625:   19(fvec3) VectorShuffle 624 624 0 1 2
+             627:    228(ptr) AccessChain 102(params) 626
+             628:   72(fvec4) Load 627
+             629:   19(fvec3) VectorShuffle 628 628 0 1 2
+             630:   19(fvec3) FSub 625 629
                               Store 618(sphereDist) 630
-             631:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 632 632 12 12
-             633:   27(fvec3) Load 618(sphereDist)
-             634:   24(float) ExtInst 3(GLSL.std.450) 66(Length) 633
-             636:    101(ptr) AccessChain 97(params) 635
-             637:   24(float) Load 636
-             639:   24(float) FAdd 637 638
-             641:   155(bool) FOrdLessThan 634 639
-                              SelectionMerge 643 None
-                              BranchConditional 641 642 643
-             642:               Label
-             644:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             645:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 646 646 12 12
-             647:      7(int)   Load 131(index)
-             648:    217(ptr)   AccessChain 97(params) 626
-             649:   67(fvec4)   Load 648
-             650:   27(fvec3)   VectorShuffle 649 649 0 1 2
-             651:   27(fvec3)   Load 618(sphereDist)
-             652:   27(fvec3)   ExtInst 3(GLSL.std.450) 69(Normalize) 651
-             653:    101(ptr)   AccessChain 97(params) 635
-             654:   24(float)   Load 653
-             655:   24(float)   FAdd 654 638
-             656:   27(fvec3)   VectorTimesScalar 652 655
-             657:   27(fvec3)   FAdd 650 656
-             658:    101(ptr)   AccessChain 213 191 647 191 12
-             659:   24(float)   CompositeExtract 657 0
-                                Store 658 659
-             660:    101(ptr)   AccessChain 213 191 647 191 20
-             661:   24(float)   CompositeExtract 657 1
-                                Store 660 661
-             662:    101(ptr)   AccessChain 213 191 647 191 22
-             663:   24(float)   CompositeExtract 657 2
-                                Store 662 663
-             664:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 665 665 12 12
-             666:      7(int)   Load 131(index)
-             667:    217(ptr)   AccessChain 213 191 666 224
-                                Store 667 226
-                                Branch 643
-             643:             Label
-             668:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             669:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 670 670 12 12
-             682:    681(ptr) AccessChain 678(pushConsts) 191
-             683:      7(int) Load 682
-             685:   155(bool) IEqual 683 20
-                              SelectionMerge 687 None
-                              BranchConditional 685 686 687
-             686:               Label
-             688:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             689:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 690 690 12 12
-             693:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 692 691(normal) 45
-                                Store 691(normal) 694
-             695:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 696 696 12 12
-             697:    130(ptr)   AccessChain 119(id) 20
-             698:      7(int)   Load 697
-             700:   155(bool)   UGreaterThan 698 12
+             631:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 632 632 12 12
+             633:   19(fvec3) Load 618(sphereDist)
+             634:   16(float) ExtInst 3(GLSL.std.450) 66(Length) 633
+             636:    106(ptr) AccessChain 102(params) 635
+             637:   16(float) Load 636
+             639:   16(float) FAdd 637 638
+             640:   165(bool) FOrdLessThan 634 639
+                              SelectionMerge 642 None
+                              BranchConditional 640 641 642
+             641:               Label
+             643:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             644:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 645 645 12 12
+             646:      7(int)   Load 140(index)
+             647:    228(ptr)   AccessChain 102(params) 626
+             648:   72(fvec4)   Load 647
+             649:   19(fvec3)   VectorShuffle 648 648 0 1 2
+             650:   19(fvec3)   Load 618(sphereDist)
+             651:   19(fvec3)   ExtInst 3(GLSL.std.450) 69(Normalize) 650
+             652:    106(ptr)   AccessChain 102(params) 635
+             653:   16(float)   Load 652
+             654:   16(float)   FAdd 653 638
+             655:   19(fvec3)   VectorTimesScalar 651 654
+             656:   19(fvec3)   FAdd 649 655
+             657:    106(ptr)   AccessChain 224 202 646 202 12
+             658:   16(float)   CompositeExtract 656 0
+                                Store 657 658
+             659:    106(ptr)   AccessChain 224 202 646 202 39
+             660:   16(float)   CompositeExtract 656 1
+                                Store 659 660
+             661:    106(ptr)   AccessChain 224 202 646 202 41
+             662:   16(float)   CompositeExtract 656 2
+                                Store 661 662
+             663:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 664 664 12 12
+             665:      7(int)   Load 140(index)
+             666:    228(ptr)   AccessChain 224 202 665 236
+                                Store 666 238
+                                Branch 642
+             642:             Label
+             667:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             668:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 669 669 12 12
+             684:    682(ptr) AccessChain 679(pushConsts) 202
+             685:      7(int) Load 684
+             686:   165(bool) IEqual 685 39
+                              SelectionMerge 688 None
+                              BranchConditional 686 687 688
+             687:               Label
+             689:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             690:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 691 691 12 12
+             694:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 693 692(normal) 47
+                                Store 692(normal) 695
+             696:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 697 697 12 12
+             698:    138(ptr)   AccessChain 126(id) 39
+             699:      7(int)   Load 698
+             700:   165(bool)   UGreaterThan 699 12
                                 SelectionMerge 702 None
                                 BranchConditional 700 701 702
              701:                 Label
-             703:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             704:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 705 705 12 12
-             706:    130(ptr)     AccessChain 119(id) 12
+             703:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             704:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 705 705 12 12
+             706:    138(ptr)     AccessChain 126(id) 12
              707:      7(int)     Load 706
-             709:   155(bool)     UGreaterThan 707 12
-                                  SelectionMerge 711 None
-                                  BranchConditional 709 710 711
-             710:                   Label
-             712:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             713:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 714 714 12 12
-             718:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 716 715(a) 45
-             719:      7(int)       Load 131(index)
-             720:      7(int)       ISub 719 20
-             721:    217(ptr)       AccessChain 189 191 720 191
-             722:   67(fvec4)       Load 721
-             723:   27(fvec3)       VectorShuffle 722 722 0 1 2
-             724:   27(fvec3)       Load 247(pos)
-             725:   27(fvec3)       FSub 723 724
-                                    Store 715(a) 725
-             726:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 727 727 12 12
-             731:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 729 728(b) 45
-             732:      7(int)       Load 131(index)
-             733:    138(ptr)       AccessChain 97(params) 137 12
-             734:     69(int)       Load 733
-             735:      7(int)       Bitcast 734
-             736:      7(int)       ISub 732 735
-             737:      7(int)       ISub 736 20
-             738:    217(ptr)       AccessChain 189 191 737 191
-             739:   67(fvec4)       Load 738
-             740:   27(fvec3)       VectorShuffle 739 739 0 1 2
-             741:   27(fvec3)       Load 247(pos)
-             742:   27(fvec3)       FSub 740 741
-                                    Store 728(b) 742
-             743:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 744 744 12 12
-             748:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 746 745(c) 45
-             749:      7(int)       Load 131(index)
-             750:    138(ptr)       AccessChain 97(params) 137 12
-             751:     69(int)       Load 750
-             752:      7(int)       Bitcast 751
-             753:      7(int)       ISub 749 752
-             754:    217(ptr)       AccessChain 189 191 753 191
-             755:   67(fvec4)       Load 754
-             756:   27(fvec3)       VectorShuffle 755 755 0 1 2
-             757:   27(fvec3)       Load 247(pos)
-             758:   27(fvec3)       FSub 756 757
-                                    Store 745(c) 758
-             759:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 760 760 12 12
-             761:   27(fvec3)       Load 715(a)
-             762:   27(fvec3)       Load 728(b)
-             763:   27(fvec3)       ExtInst 3(GLSL.std.450) 68(Cross) 761 762
-             764:   27(fvec3)       Load 728(b)
-             765:   27(fvec3)       Load 745(c)
-             766:   27(fvec3)       ExtInst 3(GLSL.std.450) 68(Cross) 764 765
-             767:   27(fvec3)       FAdd 763 766
-             768:   27(fvec3)       Load 691(normal)
-             769:   27(fvec3)       FAdd 768 767
-                                    Store 691(normal) 769
-                                    Branch 711
-             711:                 Label
-             770:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             771:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 772 772 12 12
-             773:    130(ptr)     AccessChain 119(id) 12
-             774:      7(int)     Load 773
-             775:    138(ptr)     AccessChain 97(params) 137 12
-             776:     69(int)     Load 775
-             777:     69(int)     ISub 776 224
-             778:      7(int)     Bitcast 777
-             780:   155(bool)     ULessThan 774 778
-                                  SelectionMerge 782 None
-                                  BranchConditional 780 781 782
-             781:                   Label
-             783:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             784:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 785 785 12 12
-             786:      7(int)       Load 131(index)
-             787:    138(ptr)       AccessChain 97(params) 137 12
-             788:     69(int)       Load 787
-             789:      7(int)       Bitcast 788
-             790:      7(int)       ISub 786 789
-             791:    217(ptr)       AccessChain 189 191 790 191
-             792:   67(fvec4)       Load 791
-             793:   27(fvec3)       VectorShuffle 792 792 0 1 2
-             794:   27(fvec3)       Load 247(pos)
-             795:   27(fvec3)       FSub 793 794
-                                    Store 715(a) 795
-             796:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 797 797 12 12
-             798:      7(int)       Load 131(index)
-             799:    138(ptr)       AccessChain 97(params) 137 12
-             800:     69(int)       Load 799
-             801:      7(int)       Bitcast 800
-             802:      7(int)       ISub 798 801
-             803:      7(int)       IAdd 802 20
-             804:    217(ptr)       AccessChain 189 191 803 191
-             805:   67(fvec4)       Load 804
-             806:   27(fvec3)       VectorShuffle 805 805 0 1 2
-             807:   27(fvec3)       Load 247(pos)
-             808:   27(fvec3)       FSub 806 807
-                                    Store 728(b) 808
-             809:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 810 810 12 12
-             811:      7(int)       Load 131(index)
-             812:      7(int)       IAdd 811 20
-             813:    217(ptr)       AccessChain 189 191 812 191
-             814:   67(fvec4)       Load 813
-             815:   27(fvec3)       VectorShuffle 814 814 0 1 2
-             816:   27(fvec3)       Load 247(pos)
-             817:   27(fvec3)       FSub 815 816
-                                    Store 745(c) 817
-             818:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 819 819 12 12
-             820:   27(fvec3)       Load 715(a)
-             821:   27(fvec3)       Load 728(b)
-             822:   27(fvec3)       ExtInst 3(GLSL.std.450) 68(Cross) 820 821
-             823:   27(fvec3)       Load 728(b)
-             824:   27(fvec3)       Load 745(c)
-             825:   27(fvec3)       ExtInst 3(GLSL.std.450) 68(Cross) 823 824
-             826:   27(fvec3)       FAdd 822 825
-             827:   27(fvec3)       Load 691(normal)
-             828:   27(fvec3)       FAdd 827 826
-                                    Store 691(normal) 828
-                                    Branch 782
-             782:                 Label
+             708:   165(bool)     UGreaterThan 707 12
+                                  SelectionMerge 710 None
+                                  BranchConditional 708 709 710
+             709:                   Label
+             711:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             712:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 713 713 12 12
+             717:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 715 714(a) 47
+             718:      7(int)       Load 140(index)
+             719:      7(int)       ISub 718 39
+             720:    228(ptr)       AccessChain 200 202 719 202
+             721:   72(fvec4)       Load 720
+             722:   19(fvec3)       VectorShuffle 721 721 0 1 2
+             723:   19(fvec3)       Load 259(pos)
+             724:   19(fvec3)       FSub 722 723
+                                    Store 714(a) 724
+             725:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 726 726 12 12
+             730:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 728 727(b) 47
+             731:      7(int)       Load 140(index)
+             732:    147(ptr)       AccessChain 102(params) 146 12
+             733:     74(int)       Load 732
+             734:      7(int)       Bitcast 733
+             735:      7(int)       ISub 731 734
+             736:      7(int)       ISub 735 39
+             737:    228(ptr)       AccessChain 200 202 736 202
+             738:   72(fvec4)       Load 737
+             739:   19(fvec3)       VectorShuffle 738 738 0 1 2
+             740:   19(fvec3)       Load 259(pos)
+             741:   19(fvec3)       FSub 739 740
+                                    Store 727(b) 741
+             742:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 743 743 12 12
+             747:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 745 744(c) 47
+             748:      7(int)       Load 140(index)
+             749:    147(ptr)       AccessChain 102(params) 146 12
+             750:     74(int)       Load 749
+             751:      7(int)       Bitcast 750
+             752:      7(int)       ISub 748 751
+             753:    228(ptr)       AccessChain 200 202 752 202
+             754:   72(fvec4)       Load 753
+             755:   19(fvec3)       VectorShuffle 754 754 0 1 2
+             756:   19(fvec3)       Load 259(pos)
+             757:   19(fvec3)       FSub 755 756
+                                    Store 744(c) 757
+             758:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 759 759 12 12
+             760:   19(fvec3)       Load 714(a)
+             761:   19(fvec3)       Load 727(b)
+             762:   19(fvec3)       ExtInst 3(GLSL.std.450) 68(Cross) 760 761
+             763:   19(fvec3)       Load 727(b)
+             764:   19(fvec3)       Load 744(c)
+             765:   19(fvec3)       ExtInst 3(GLSL.std.450) 68(Cross) 763 764
+             766:   19(fvec3)       FAdd 762 765
+             767:   19(fvec3)       Load 692(normal)
+             768:   19(fvec3)       FAdd 767 766
+                                    Store 692(normal) 768
+                                    Branch 710
+             710:                 Label
+             769:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             770:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 771 771 12 12
+             772:    138(ptr)     AccessChain 126(id) 12
+             773:      7(int)     Load 772
+             774:    147(ptr)     AccessChain 102(params) 146 12
+             775:     74(int)     Load 774
+             776:     74(int)     ISub 775 236
+             777:      7(int)     Bitcast 776
+             778:   165(bool)     ULessThan 773 777
+                                  SelectionMerge 780 None
+                                  BranchConditional 778 779 780
+             779:                   Label
+             781:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             782:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 783 783 12 12
+             784:      7(int)       Load 140(index)
+             785:    147(ptr)       AccessChain 102(params) 146 12
+             786:     74(int)       Load 785
+             787:      7(int)       Bitcast 786
+             788:      7(int)       ISub 784 787
+             789:    228(ptr)       AccessChain 200 202 788 202
+             790:   72(fvec4)       Load 789
+             791:   19(fvec3)       VectorShuffle 790 790 0 1 2
+             792:   19(fvec3)       Load 259(pos)
+             793:   19(fvec3)       FSub 791 792
+                                    Store 714(a) 793
+             794:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 795 795 12 12
+             796:      7(int)       Load 140(index)
+             797:    147(ptr)       AccessChain 102(params) 146 12
+             798:     74(int)       Load 797
+             799:      7(int)       Bitcast 798
+             800:      7(int)       ISub 796 799
+             801:      7(int)       IAdd 800 39
+             802:    228(ptr)       AccessChain 200 202 801 202
+             803:   72(fvec4)       Load 802
+             804:   19(fvec3)       VectorShuffle 803 803 0 1 2
+             805:   19(fvec3)       Load 259(pos)
+             806:   19(fvec3)       FSub 804 805
+                                    Store 727(b) 806
+             807:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 808 808 12 12
+             809:      7(int)       Load 140(index)
+             810:      7(int)       IAdd 809 39
+             811:    228(ptr)       AccessChain 200 202 810 202
+             812:   72(fvec4)       Load 811
+             813:   19(fvec3)       VectorShuffle 812 812 0 1 2
+             814:   19(fvec3)       Load 259(pos)
+             815:   19(fvec3)       FSub 813 814
+                                    Store 744(c) 815
+             816:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 817 817 12 12
+             818:   19(fvec3)       Load 714(a)
+             819:   19(fvec3)       Load 727(b)
+             820:   19(fvec3)       ExtInst 3(GLSL.std.450) 68(Cross) 818 819
+             821:   19(fvec3)       Load 727(b)
+             822:   19(fvec3)       Load 744(c)
+             823:   19(fvec3)       ExtInst 3(GLSL.std.450) 68(Cross) 821 822
+             824:   19(fvec3)       FAdd 820 823
+             825:   19(fvec3)       Load 692(normal)
+             826:   19(fvec3)       FAdd 825 824
+                                    Store 692(normal) 826
+                                    Branch 780
+             780:                 Label
                                   Branch 702
              702:               Label
-             829:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             830:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 831 831 12 12
-             832:    130(ptr)   AccessChain 119(id) 20
-             833:      7(int)   Load 832
-             834:    138(ptr)   AccessChain 97(params) 137 20
-             835:     69(int)   Load 834
-             836:     69(int)   ISub 835 224
-             837:      7(int)   Bitcast 836
-             839:   155(bool)   ULessThan 833 837
-                                SelectionMerge 841 None
-                                BranchConditional 839 840 841
-             840:                 Label
-             842:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             843:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 844 844 12 12
-             845:    130(ptr)     AccessChain 119(id) 12
-             846:      7(int)     Load 845
-             848:   155(bool)     UGreaterThan 846 12
-                                  SelectionMerge 850 None
-                                  BranchConditional 848 849 850
-             849:                   Label
-             851:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             852:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 853 853 12 12
-             854:      7(int)       Load 131(index)
-             855:    138(ptr)       AccessChain 97(params) 137 12
-             856:     69(int)       Load 855
-             857:      7(int)       Bitcast 856
-             858:      7(int)       IAdd 854 857
-             859:    217(ptr)       AccessChain 189 191 858 191
-             860:   67(fvec4)       Load 859
-             861:   27(fvec3)       VectorShuffle 860 860 0 1 2
-             862:   27(fvec3)       Load 247(pos)
-             863:   27(fvec3)       FSub 861 862
-                                    Store 715(a) 863
-             864:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 865 865 12 12
-             866:      7(int)       Load 131(index)
-             867:    138(ptr)       AccessChain 97(params) 137 12
-             868:     69(int)       Load 867
-             869:      7(int)       Bitcast 868
-             870:      7(int)       IAdd 866 869
-             871:      7(int)       ISub 870 20
-             872:    217(ptr)       AccessChain 189 191 871 191
-             873:   67(fvec4)       Load 872
-             874:   27(fvec3)       VectorShuffle 873 873 0 1 2
-             875:   27(fvec3)       Load 247(pos)
-             876:   27(fvec3)       FSub 874 875
-                                    Store 728(b) 876
-             877:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 878 878 12 12
-             879:      7(int)       Load 131(index)
-             880:      7(int)       ISub 879 20
-             881:    217(ptr)       AccessChain 189 191 880 191
-             882:   67(fvec4)       Load 881
-             883:   27(fvec3)       VectorShuffle 882 882 0 1 2
-             884:   27(fvec3)       Load 247(pos)
-             885:   27(fvec3)       FSub 883 884
-                                    Store 745(c) 885
-             886:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 887 887 12 12
-             888:   27(fvec3)       Load 715(a)
-             889:   27(fvec3)       Load 728(b)
-             890:   27(fvec3)       ExtInst 3(GLSL.std.450) 68(Cross) 888 889
-             891:   27(fvec3)       Load 728(b)
-             892:   27(fvec3)       Load 745(c)
-             893:   27(fvec3)       ExtInst 3(GLSL.std.450) 68(Cross) 891 892
-             894:   27(fvec3)       FAdd 890 893
-             895:   27(fvec3)       Load 691(normal)
-             896:   27(fvec3)       FAdd 895 894
-                                    Store 691(normal) 896
-                                    Branch 850
-             850:                 Label
-             897:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             898:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 899 899 12 12
-             900:    130(ptr)     AccessChain 119(id) 12
-             901:      7(int)     Load 900
-             902:    138(ptr)     AccessChain 97(params) 137 12
-             903:     69(int)     Load 902
-             904:     69(int)     ISub 903 224
-             905:      7(int)     Bitcast 904
-             907:   155(bool)     ULessThan 901 905
-                                  SelectionMerge 909 None
-                                  BranchConditional 907 908 909
-             908:                   Label
-             910:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             911:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 912 912 12 12
-             913:      7(int)       Load 131(index)
-             914:      7(int)       IAdd 913 20
-             915:    217(ptr)       AccessChain 189 191 914 191
-             916:   67(fvec4)       Load 915
-             917:   27(fvec3)       VectorShuffle 916 916 0 1 2
-             918:   27(fvec3)       Load 247(pos)
-             919:   27(fvec3)       FSub 917 918
-                                    Store 715(a) 919
-             920:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 921 921 12 12
-             922:      7(int)       Load 131(index)
-             923:    138(ptr)       AccessChain 97(params) 137 12
-             924:     69(int)       Load 923
-             925:      7(int)       Bitcast 924
-             926:      7(int)       IAdd 922 925
-             927:      7(int)       IAdd 926 20
-             928:    217(ptr)       AccessChain 189 191 927 191
-             929:   67(fvec4)       Load 928
-             930:   27(fvec3)       VectorShuffle 929 929 0 1 2
-             931:   27(fvec3)       Load 247(pos)
-             932:   27(fvec3)       FSub 930 931
-                                    Store 728(b) 932
-             933:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 934 934 12 12
-             935:      7(int)       Load 131(index)
-             936:    138(ptr)       AccessChain 97(params) 137 12
-             937:     69(int)       Load 936
-             938:      7(int)       Bitcast 937
-             939:      7(int)       IAdd 935 938
-             940:    217(ptr)       AccessChain 189 191 939 191
-             941:   67(fvec4)       Load 940
-             942:   27(fvec3)       VectorShuffle 941 941 0 1 2
-             943:   27(fvec3)       Load 247(pos)
-             944:   27(fvec3)       FSub 942 943
-                                    Store 745(c) 944
-             945:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 946 946 12 12
-             947:   27(fvec3)       Load 715(a)
-             948:   27(fvec3)       Load 728(b)
-             949:   27(fvec3)       ExtInst 3(GLSL.std.450) 68(Cross) 947 948
-             950:   27(fvec3)       Load 728(b)
-             951:   27(fvec3)       Load 745(c)
-             952:   27(fvec3)       ExtInst 3(GLSL.std.450) 68(Cross) 950 951
-             953:   27(fvec3)       FAdd 949 952
-             954:   27(fvec3)       Load 691(normal)
-             955:   27(fvec3)       FAdd 954 953
-                                    Store 691(normal) 955
-                                    Branch 909
-             909:                 Label
-                                  Branch 841
-             841:               Label
-             956:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             957:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 958 958 12 12
-             959:      7(int)   Load 131(index)
-             960:   27(fvec3)   Load 691(normal)
-             961:   27(fvec3)   ExtInst 3(GLSL.std.450) 69(Normalize) 960
-             962:   24(float)   CompositeExtract 961 0
-             963:   24(float)   CompositeExtract 961 1
-             964:   24(float)   CompositeExtract 961 2
-             965:   67(fvec4)   CompositeConstruct 962 963 964 225
-             966:    217(ptr)   AccessChain 213 191 959 559
-                                Store 966 965
-                                Branch 687
-             687:             Label
+             827:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             828:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 829 829 12 12
+             830:    138(ptr)   AccessChain 126(id) 39
+             831:      7(int)   Load 830
+             832:    147(ptr)   AccessChain 102(params) 146 39
+             833:     74(int)   Load 832
+             834:     74(int)   ISub 833 236
+             835:      7(int)   Bitcast 834
+             836:   165(bool)   ULessThan 831 835
+                                SelectionMerge 838 None
+                                BranchConditional 836 837 838
+             837:                 Label
+             839:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             840:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 841 841 12 12
+             842:    138(ptr)     AccessChain 126(id) 12
+             843:      7(int)     Load 842
+             844:   165(bool)     UGreaterThan 843 12
+                                  SelectionMerge 846 None
+                                  BranchConditional 844 845 846
+             845:                   Label
+             847:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             848:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 849 849 12 12
+             850:      7(int)       Load 140(index)
+             851:    147(ptr)       AccessChain 102(params) 146 12
+             852:     74(int)       Load 851
+             853:      7(int)       Bitcast 852
+             854:      7(int)       IAdd 850 853
+             855:    228(ptr)       AccessChain 200 202 854 202
+             856:   72(fvec4)       Load 855
+             857:   19(fvec3)       VectorShuffle 856 856 0 1 2
+             858:   19(fvec3)       Load 259(pos)
+             859:   19(fvec3)       FSub 857 858
+                                    Store 714(a) 859
+             860:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 861 861 12 12
+             862:      7(int)       Load 140(index)
+             863:    147(ptr)       AccessChain 102(params) 146 12
+             864:     74(int)       Load 863
+             865:      7(int)       Bitcast 864
+             866:      7(int)       IAdd 862 865
+             867:      7(int)       ISub 866 39
+             868:    228(ptr)       AccessChain 200 202 867 202
+             869:   72(fvec4)       Load 868
+             870:   19(fvec3)       VectorShuffle 869 869 0 1 2
+             871:   19(fvec3)       Load 259(pos)
+             872:   19(fvec3)       FSub 870 871
+                                    Store 727(b) 872
+             873:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 874 874 12 12
+             875:      7(int)       Load 140(index)
+             876:      7(int)       ISub 875 39
+             877:    228(ptr)       AccessChain 200 202 876 202
+             878:   72(fvec4)       Load 877
+             879:   19(fvec3)       VectorShuffle 878 878 0 1 2
+             880:   19(fvec3)       Load 259(pos)
+             881:   19(fvec3)       FSub 879 880
+                                    Store 744(c) 881
+             882:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 883 883 12 12
+             884:   19(fvec3)       Load 714(a)
+             885:   19(fvec3)       Load 727(b)
+             886:   19(fvec3)       ExtInst 3(GLSL.std.450) 68(Cross) 884 885
+             887:   19(fvec3)       Load 727(b)
+             888:   19(fvec3)       Load 744(c)
+             889:   19(fvec3)       ExtInst 3(GLSL.std.450) 68(Cross) 887 888
+             890:   19(fvec3)       FAdd 886 889
+             891:   19(fvec3)       Load 692(normal)
+             892:   19(fvec3)       FAdd 891 890
+                                    Store 692(normal) 892
+                                    Branch 846
+             846:                 Label
+             893:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             894:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 895 895 12 12
+             896:    138(ptr)     AccessChain 126(id) 12
+             897:      7(int)     Load 896
+             898:    147(ptr)     AccessChain 102(params) 146 12
+             899:     74(int)     Load 898
+             900:     74(int)     ISub 899 236
+             901:      7(int)     Bitcast 900
+             902:   165(bool)     ULessThan 897 901
+                                  SelectionMerge 904 None
+                                  BranchConditional 902 903 904
+             903:                   Label
+             905:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             906:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 907 907 12 12
+             908:      7(int)       Load 140(index)
+             909:      7(int)       IAdd 908 39
+             910:    228(ptr)       AccessChain 200 202 909 202
+             911:   72(fvec4)       Load 910
+             912:   19(fvec3)       VectorShuffle 911 911 0 1 2
+             913:   19(fvec3)       Load 259(pos)
+             914:   19(fvec3)       FSub 912 913
+                                    Store 714(a) 914
+             915:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 916 916 12 12
+             917:      7(int)       Load 140(index)
+             918:    147(ptr)       AccessChain 102(params) 146 12
+             919:     74(int)       Load 918
+             920:      7(int)       Bitcast 919
+             921:      7(int)       IAdd 917 920
+             922:      7(int)       IAdd 921 39
+             923:    228(ptr)       AccessChain 200 202 922 202
+             924:   72(fvec4)       Load 923
+             925:   19(fvec3)       VectorShuffle 924 924 0 1 2
+             926:   19(fvec3)       Load 259(pos)
+             927:   19(fvec3)       FSub 925 926
+                                    Store 727(b) 927
+             928:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 929 929 12 12
+             930:      7(int)       Load 140(index)
+             931:    147(ptr)       AccessChain 102(params) 146 12
+             932:     74(int)       Load 931
+             933:      7(int)       Bitcast 932
+             934:      7(int)       IAdd 930 933
+             935:    228(ptr)       AccessChain 200 202 934 202
+             936:   72(fvec4)       Load 935
+             937:   19(fvec3)       VectorShuffle 936 936 0 1 2
+             938:   19(fvec3)       Load 259(pos)
+             939:   19(fvec3)       FSub 937 938
+                                    Store 744(c) 939
+             940:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 941 941 12 12
+             942:   19(fvec3)       Load 714(a)
+             943:   19(fvec3)       Load 727(b)
+             944:   19(fvec3)       ExtInst 3(GLSL.std.450) 68(Cross) 942 943
+             945:   19(fvec3)       Load 727(b)
+             946:   19(fvec3)       Load 744(c)
+             947:   19(fvec3)       ExtInst 3(GLSL.std.450) 68(Cross) 945 946
+             948:   19(fvec3)       FAdd 944 947
+             949:   19(fvec3)       Load 692(normal)
+             950:   19(fvec3)       FAdd 949 948
+                                    Store 692(normal) 950
+                                    Branch 904
+             904:                 Label
+                                  Branch 838
+             838:               Label
+             951:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 55
+             952:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 953 953 12 12
+             954:      7(int)   Load 140(index)
+             955:   19(fvec3)   Load 692(normal)
+             956:   19(fvec3)   ExtInst 3(GLSL.std.450) 69(Normalize) 955
+             957:   16(float)   CompositeExtract 956 0
+             958:   16(float)   CompositeExtract 956 1
+             959:   16(float)   CompositeExtract 956 2
+             960:   72(fvec4)   CompositeConstruct 957 958 959 237
+             961:    228(ptr)   AccessChain 224 202 954 559
+                                Store 961 960
+                                Branch 688
+             688:             Label
                               Return
                               FunctionEnd
                               Line 1 66 50
-36(springForce(vf3;vf3;f1;):   27(fvec3) Function None 31
-          33(p0):     29(ptr) FunctionParameter
-          34(p1):     29(ptr) FunctionParameter
-    35(restDist):     30(ptr) FunctionParameter
-              39:             Label
-        56(dist):     29(ptr) Variable Function
-              40:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 38
-              41:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 12 12 12 12
-              44:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 42 33(p0) 45
-              48:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 46 34(p1) 45
-              51:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 49 35(restDist) 45
-              52:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 38 36(springForce(vf3;vf3;f1;)
-              53:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 38
-              54:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 55 55 12 12
-              59:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 57 56(dist) 45
-              60:   27(fvec3) Load 33(p0)
-              61:   27(fvec3) Load 34(p1)
-              62:   27(fvec3) FSub 60 61
-                              Store 56(dist) 62
-              63:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 64 64 12 12
-              65:   27(fvec3) Load 56(dist)
-              66:   27(fvec3) ExtInst 3(GLSL.std.450) 69(Normalize) 65
-             102:    101(ptr) AccessChain 97(params) 100
-             103:   24(float) Load 102
-             104:   27(fvec3) VectorTimesScalar 66 103
-             105:   27(fvec3) Load 56(dist)
-             106:   24(float) ExtInst 3(GLSL.std.450) 66(Length) 105
-             107:   24(float) Load 35(restDist)
-             108:   24(float) FSub 106 107
-             109:   27(fvec3) VectorTimesScalar 104 108
-                              ReturnValue 109
+31(springForce(vf3;vf3;f1;):   19(fvec3) Function None 26
+          28(p0):     21(ptr) FunctionParameter
+          29(p1):     21(ptr) FunctionParameter
+    30(restDist):     24(ptr) FunctionParameter
+              32:             Label
+        61(dist):     21(ptr) Variable Function
+              42:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 34
+              43:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 37 37 12 12
+              46:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 44 28(p0) 47
+              50:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 48 29(p1) 47
+              53:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 51 30(restDist) 47
+              57:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 34 31(springForce(vf3;vf3;f1;)
+              58:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 34
+              59:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 60 60 12 12
+              64:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 62 61(dist) 47
+              65:   19(fvec3) Load 28(p0)
+              66:   19(fvec3) Load 29(p1)
+              67:   19(fvec3) FSub 65 66
+                              Store 61(dist) 67
+              68:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 69 69 12 12
+              70:   19(fvec3) Load 61(dist)
+              71:   19(fvec3) ExtInst 3(GLSL.std.450) 69(Normalize) 70
+             108:    106(ptr) AccessChain 102(params) 105
+             109:   16(float) Load 108
+             110:   19(fvec3) VectorTimesScalar 71 109
+             111:   19(fvec3) Load 61(dist)
+             112:   16(float) ExtInst 3(GLSL.std.450) 66(Length) 111
+             113:   16(float) Load 30(restDist)
+             114:   16(float) FSub 112 113
+             115:   19(fvec3) VectorTimesScalar 110 114
+                              ReturnValue 115
                               FunctionEnd
diff --git a/Test/baseResults/spv.debuginfo.glsl.frag.out b/Test/baseResults/spv.debuginfo.glsl.frag.out
index 72777c5..2c7bac8 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
 // Module Version 10000
 // Generated by (magic number): 8000b
-// Id's are bound by 859
+// Id's are bound by 870
 
                               Capability Shader
                               Capability ImageQuery
@@ -9,12 +9,13 @@
                2:             ExtInstImport  "NonSemantic.Shader.DebugInfo.100"
                3:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 14  "main" 478 533
+                              EntryPoint Fragment 14  "main" 488 544
                               ExecutionMode 14 OriginUpperLeft
                1:             String  ""
-               9:             String  "uint"
-              15:             String  "main"
-              18:             String  "// OpModuleProcessed auto-map-locations
+               8:             String  "uint"
+              17:             String  "float"
+              39:             String  "textureProj"
+              42:             String  "// OpModuleProcessed auto-map-locations
 // OpModuleProcessed auto-map-bindings
 // OpModuleProcessed client vulkan100
 // OpModuleProcessed target-env vulkan1.0
@@ -22,1083 +23,1093 @@
 // OpModuleProcessed entry-point main
 #line 1
 "
-              25:             String  "float"
-              40:             String  "textureProj"
-              46:             String  "P"
-              50:             String  "layer"
-              53:             String  "offset"
-              60:             String  "filterPCF"
-              66:             String  "sc"
-              78:             String  "shadow"
-              84:             String  "fragcolor"
-              87:             String  "fragpos"
-              93:             String  "int"
-              98:             String  "global_var"
-             113:             String  "shadowCoord"
-             138:             String  "bool"
-             157:             String  "dist"
-             161:             String  "type.2d.image"
-             162:             String  "@type.2d.image"
-             166:             String  "type.sampled.image"
-             167:             String  "@type.sampled.image"
-             171:             String  "samplerShadowMap"
-             221:             String  "texDim"
-             233:             String  "scale"
-             240:             String  "dx"
-             253:             String  "dy"
-             265:             String  "shadowFactor"
-             271:             String  "count"
-             277:             String  "range"
-             284:             String  "x"
-             306:             String  "y"
-             370:             String  "i"
-             390:             String  "shadowClip"
-             397:             String  "color"
-             403:             String  "viewMatrix"
-             406:             String  "Light"
-             412:             String  "lights"
-             415:             String  "debugDisplayTarget"
-             419:             String  "UBO"
-             423:             String  "ubo"
-             466:             String  "fragPos"
-             475:             String  "samplerposition"
-             480:             String  "inUV"
-             488:             String  "normal"
-             492:             String  "samplerNormal"
-             501:             String  "albedo"
-             505:             String  "samplerAlbedo"
-             535:             String  "outFragColor"
-             627:             String  "N"
-             653:             String  "L"
-             677:             String  "V"
-             692:             String  "lightCosInnerAngle"
-             699:             String  "lightCosOuterAngle"
-             706:             String  "lightRange"
-             713:             String  "dir"
-             729:             String  "cosDir"
-             738:             String  "spotEffect"
-             748:             String  "heightAttenuation"
-             757:             String  "NdotL"
-             767:             String  "diff"
-             775:             String  "R"
-             785:             String  "NdotR"
-             795:             String  "spec"
+              49:             String  "P"
+              53:             String  "layer"
+              56:             String  "offset"
+              64:             String  "filterPCF"
+              70:             String  "sc"
+              84:             String  "shadow"
+              90:             String  "fragcolor"
+              93:             String  "fragpos"
+              95:             String  "main"
+             102:             String  "int"
+             108:             String  "global_var"
+             123:             String  "shadowCoord"
+             145:             String  "bool"
+             166:             String  "dist"
+             170:             String  "type.2d.image"
+             171:             String  "@type.2d.image"
+             175:             String  "type.sampled.image"
+             176:             String  "@type.sampled.image"
+             181:             String  "samplerShadowMap"
+             230:             String  "texDim"
+             242:             String  "scale"
+             249:             String  "dx"
+             263:             String  "dy"
+             275:             String  "shadowFactor"
+             281:             String  "count"
+             287:             String  "range"
+             294:             String  "x"
+             315:             String  "y"
+             378:             String  "i"
+             397:             String  "shadowClip"
+             404:             String  "color"
+             409:             String  "viewMatrix"
+             412:             String  "Light"
+             418:             String  "lights"
+             421:             String  "debugDisplayTarget"
+             425:             String  "UBO"
+             430:             String  "ubo"
+             474:             String  "fragPos"
+             484:             String  "samplerposition"
+             490:             String  "inUV"
+             498:             String  "normal"
+             502:             String  "samplerNormal"
+             511:             String  "albedo"
+             515:             String  "samplerAlbedo"
+             546:             String  "outFragColor"
+             639:             String  "N"
+             664:             String  "L"
+             689:             String  "V"
+             704:             String  "lightCosInnerAngle"
+             711:             String  "lightCosOuterAngle"
+             718:             String  "lightRange"
+             725:             String  "dir"
+             741:             String  "cosDir"
+             750:             String  "spotEffect"
+             760:             String  "heightAttenuation"
+             769:             String  "NdotL"
+             779:             String  "diff"
+             787:             String  "R"
+             797:             String  "NdotR"
+             807:             String  "spec"
                               Name 14  "main"
-                              Name 39  "textureProj(vf4;f1;vf2;"
-                              Name 36  "P"
-                              Name 37  "layer"
-                              Name 38  "offset"
-                              Name 59  "filterPCF(vf4;f1;"
-                              Name 57  "sc"
-                              Name 58  "layer"
-                              Name 77  "shadow(vf3;vf3;"
-                              Name 75  "fragcolor"
-                              Name 76  "fragpos"
-                              Name 96  "global_var"
-                              Name 105  "shadow"
-                              Name 111  "shadowCoord"
-                              Name 155  "dist"
-                              Name 169  "samplerShadowMap"
-                              Name 219  "texDim"
-                              Name 231  "scale"
-                              Name 238  "dx"
-                              Name 251  "dy"
-                              Name 263  "shadowFactor"
-                              Name 269  "count"
-                              Name 275  "range"
-                              Name 282  "x"
-                              Name 304  "y"
-                              Name 335  "param"
-                              Name 337  "param"
-                              Name 339  "param"
-                              Name 368  "i"
-                              Name 388  "shadowClip"
-                              Name 395  "Light"
-                              MemberName 395(Light) 0  "position"
-                              MemberName 395(Light) 1  "target"
-                              MemberName 395(Light) 2  "color"
-                              MemberName 395(Light) 3  "viewMatrix"
-                              Name 409  "UBO"
-                              MemberName 409(UBO) 0  "viewPos"
-                              MemberName 409(UBO) 1  "lights"
-                              MemberName 409(UBO) 2  "useShadows"
-                              MemberName 409(UBO) 3  "debugDisplayTarget"
-                              Name 421  "ubo"
-                              Name 436  "shadowFactor"
-                              Name 441  "param"
-                              Name 443  "param"
-                              Name 464  "fragPos"
-                              Name 473  "samplerposition"
-                              Name 478  "inUV"
-                              Name 486  "normal"
-                              Name 490  "samplerNormal"
-                              Name 499  "albedo"
-                              Name 503  "samplerAlbedo"
-                              Name 533  "outFragColor"
-                              Name 537  "param"
-                              Name 538  "param"
-                              Name 616  "fragcolor"
-                              Name 625  "N"
-                              Name 633  "i"
-                              Name 651  "L"
-                              Name 664  "dist"
-                              Name 675  "V"
-                              Name 690  "lightCosInnerAngle"
-                              Name 697  "lightCosOuterAngle"
-                              Name 704  "lightRange"
-                              Name 711  "dir"
-                              Name 727  "cosDir"
-                              Name 736  "spotEffect"
-                              Name 746  "heightAttenuation"
-                              Name 755  "NdotL"
-                              Name 765  "diff"
-                              Name 773  "R"
-                              Name 783  "NdotR"
-                              Name 793  "spec"
-                              Name 846  "param"
-                              Name 848  "param"
-                              Decorate 169(samplerShadowMap) DescriptorSet 0
-                              Decorate 169(samplerShadowMap) Binding 5
-                              MemberDecorate 395(Light) 0 Offset 0
-                              MemberDecorate 395(Light) 1 Offset 16
-                              MemberDecorate 395(Light) 2 Offset 32
-                              MemberDecorate 395(Light) 3 ColMajor
-                              MemberDecorate 395(Light) 3 Offset 48
-                              MemberDecorate 395(Light) 3 MatrixStride 16
-                              Decorate 407 ArrayStride 112
-                              MemberDecorate 409(UBO) 0 Offset 0
-                              MemberDecorate 409(UBO) 1 Offset 16
-                              MemberDecorate 409(UBO) 2 Offset 352
-                              MemberDecorate 409(UBO) 3 Offset 356
-                              Decorate 409(UBO) Block
-                              Decorate 421(ubo) DescriptorSet 0
-                              Decorate 421(ubo) Binding 4
-                              Decorate 473(samplerposition) DescriptorSet 0
-                              Decorate 473(samplerposition) Binding 1
-                              Decorate 478(inUV) Location 0
-                              Decorate 490(samplerNormal) DescriptorSet 0
-                              Decorate 490(samplerNormal) Binding 2
-                              Decorate 503(samplerAlbedo) DescriptorSet 0
-                              Decorate 503(samplerAlbedo) Binding 3
-                              Decorate 533(outFragColor) Location 0
+                              Name 37  "textureProj(vf4;f1;vf2;"
+                              Name 34  "P"
+                              Name 35  "layer"
+                              Name 36  "offset"
+                              Name 62  "filterPCF(vf4;f1;"
+                              Name 60  "sc"
+                              Name 61  "layer"
+                              Name 82  "shadow(vf3;vf3;"
+                              Name 80  "fragcolor"
+                              Name 81  "fragpos"
+                              Name 106  "global_var"
+                              Name 115  "shadow"
+                              Name 121  "shadowCoord"
+                              Name 164  "dist"
+                              Name 179  "samplerShadowMap"
+                              Name 228  "texDim"
+                              Name 240  "scale"
+                              Name 247  "dx"
+                              Name 261  "dy"
+                              Name 273  "shadowFactor"
+                              Name 279  "count"
+                              Name 285  "range"
+                              Name 292  "x"
+                              Name 313  "y"
+                              Name 343  "param"
+                              Name 345  "param"
+                              Name 347  "param"
+                              Name 376  "i"
+                              Name 395  "shadowClip"
+                              Name 402  "Light"
+                              MemberName 402(Light) 0  "position"
+                              MemberName 402(Light) 1  "target"
+                              MemberName 402(Light) 2  "color"
+                              MemberName 402(Light) 3  "viewMatrix"
+                              Name 415  "UBO"
+                              MemberName 415(UBO) 0  "viewPos"
+                              MemberName 415(UBO) 1  "lights"
+                              MemberName 415(UBO) 2  "useShadows"
+                              MemberName 415(UBO) 3  "debugDisplayTarget"
+                              Name 428  "ubo"
+                              Name 444  "shadowFactor"
+                              Name 449  "param"
+                              Name 451  "param"
+                              Name 472  "fragPos"
+                              Name 482  "samplerposition"
+                              Name 488  "inUV"
+                              Name 496  "normal"
+                              Name 500  "samplerNormal"
+                              Name 509  "albedo"
+                              Name 513  "samplerAlbedo"
+                              Name 544  "outFragColor"
+                              Name 548  "param"
+                              Name 549  "param"
+                              Name 628  "fragcolor"
+                              Name 637  "N"
+                              Name 645  "i"
+                              Name 662  "L"
+                              Name 676  "dist"
+                              Name 687  "V"
+                              Name 702  "lightCosInnerAngle"
+                              Name 709  "lightCosOuterAngle"
+                              Name 716  "lightRange"
+                              Name 723  "dir"
+                              Name 739  "cosDir"
+                              Name 748  "spotEffect"
+                              Name 758  "heightAttenuation"
+                              Name 767  "NdotL"
+                              Name 777  "diff"
+                              Name 785  "R"
+                              Name 795  "NdotR"
+                              Name 805  "spec"
+                              Name 857  "param"
+                              Name 859  "param"
+                              Decorate 179(samplerShadowMap) DescriptorSet 0
+                              Decorate 179(samplerShadowMap) Binding 5
+                              MemberDecorate 402(Light) 0 Offset 0
+                              MemberDecorate 402(Light) 1 Offset 16
+                              MemberDecorate 402(Light) 2 Offset 32
+                              MemberDecorate 402(Light) 3 ColMajor
+                              MemberDecorate 402(Light) 3 Offset 48
+                              MemberDecorate 402(Light) 3 MatrixStride 16
+                              Decorate 413 ArrayStride 112
+                              MemberDecorate 415(UBO) 0 Offset 0
+                              MemberDecorate 415(UBO) 1 Offset 16
+                              MemberDecorate 415(UBO) 2 Offset 352
+                              MemberDecorate 415(UBO) 3 Offset 356
+                              Decorate 415(UBO) Block
+                              Decorate 428(ubo) DescriptorSet 0
+                              Decorate 428(ubo) Binding 4
+                              Decorate 482(samplerposition) DescriptorSet 0
+                              Decorate 482(samplerposition) Binding 1
+                              Decorate 488(inUV) Location 0
+                              Decorate 500(samplerNormal) DescriptorSet 0
+                              Decorate 500(samplerNormal) Binding 2
+                              Decorate 513(samplerAlbedo) DescriptorSet 0
+                              Decorate 513(samplerAlbedo) Binding 3
+                              Decorate 544(outFragColor) Location 0
                4:             TypeVoid
                5:             TypeFunction 4
                7:             TypeInt 32 0
               10:      7(int) Constant 32
               11:      7(int) Constant 6
               12:      7(int) Constant 0
-               8:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 9 10 11 12
+               9:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 8 10 11 12
               13:      7(int) Constant 3
                6:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 4
-              17:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 1 18
-              20:      7(int) Constant 1
-              21:      7(int) Constant 4
-              22:      7(int) Constant 2
-              19:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 20 21 17 22
-              16:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 15 6 17 12 12 19 15 13 12
-              24:             TypeFloat 32
-              26:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 25 10 13 12
-              27:             TypeVector 24(float) 4
-              28:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 26 21
-              29:             TypePointer Function 27(fvec4)
-              30:             TypePointer Function 24(float)
-              31:             TypeVector 24(float) 2
-              32:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 26 22
-              33:             TypePointer Function 31(fvec2)
-              34:             TypeFunction 24(float) 29(ptr) 30(ptr) 33(ptr)
-              35:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 26 28 26 32
-              41:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 40 35 17 12 12 19 40 13 12
-              45:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 46 28 17 12 12 41 21 20
-              48:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
-              49:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 50 26 17 12 12 41 21 22
-              52:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 53 32 17 12 12 41 21 13
-              55:             TypeFunction 24(float) 29(ptr) 30(ptr)
-              56:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 26 28 26
-              61:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 60 56 17 12 12 19 60 13 12
-              65:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 66 28 17 12 12 61 21 20
-              68:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 50 26 17 12 12 61 21 22
-              70:             TypeVector 24(float) 3
-              71:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 26 13
-              72:             TypePointer Function 70(fvec3)
-              73:             TypeFunction 70(fvec3) 72(ptr) 72(ptr)
-              74:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 71 71 71
-              79:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 78 74 17 12 12 19 78 13 12
-              83:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 84 71 17 12 12 79 21 20
-              86:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 87 71 17 12 12 79 21 22
-              91:      7(int) Constant 41
-              92:             TypeInt 32 1
-              94:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 93 10 21 12
-              95:             TypePointer Private 92(int)
-  96(global_var):     95(ptr) Variable Private
-              99:      7(int) Constant 8
-              97:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 98 94 17 91 12 19 98 96(global_var) 99
-             100:     92(int) Constant 0
-             104:      7(int) Constant 61
-             106:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 78 26 17 104 12 41 21
-             108:   24(float) Constant 1065353216
-             110:      7(int) Constant 62
-             112:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 113 28 17 110 12 41 21
-             121:      7(int) Constant 63
-             124:   24(float) Constant 1056964608
-             133:      7(int) Constant 65
-             134:             TypeBool
-             137:   24(float) Constant 3212836864
-             139:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 138 10 22 12
-             147:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 138 10 22 12
-             154:      7(int) Constant 67
-             156:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 157 26 17 154 12 41 21
-             159:             TypeImage 24(float) 2D array sampled format:Unknown
-             163:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 0(DebugInfoNone)
-             160:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 161 12 17 154 12 19 162 163 13
-             164:             TypeSampledImage 159
-             165:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 166 12 17 154 12 19 167 163 13
-             168:             TypePointer UniformConstant 164
-169(samplerShadowMap):    168(ptr) Variable UniformConstant
-             170:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 171 165 17 154 12 19 171 169(samplerShadowMap) 99
-             184:      7(int) Constant 68
-             187:   24(float) Constant 0
-             188:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 138 10 22 12
-             197:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 138 10 22 12
-             204:      7(int) Constant 70
-             205:   24(float) Constant 1048576000
-             208:      7(int) Constant 73
-             215:      7(int) Constant 78
-             216:             TypeVector 92(int) 2
-             217:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 94 22
-             218:             TypePointer Function 216(ivec2)
-             220:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 221 217 17 215 12 61 21
-             225:             TypeVector 92(int) 3
-             226:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 94 13
-             230:      7(int) Constant 79
-             232:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 233 26 17 230 12 61 21
-             235:   24(float) Constant 1069547520
-             237:      7(int) Constant 80
-             239:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 240 26 17 237 12 61 21
-             244:             TypePointer Function 92(int)
-             250:      7(int) Constant 81
-             252:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 253 26 17 250 12 61 21
-             262:      7(int) Constant 83
-             264:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 265 26 17 262 12 61 21
-             268:      7(int) Constant 84
-             270:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 271 94 17 268 12 61 21
-             274:      7(int) Constant 85
-             276:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 277 94 17 274 12 61 21
-             279:     92(int) Constant 1
-             281:      7(int) Constant 87
-             283:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 284 94 17 281 12 61 21
-             299:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 138 10 22 12
-             303:      7(int) Constant 89
-             305:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 306 94 17 303 12 61 21
-             321:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 138 10 22 12
-             325:      7(int) Constant 91
-             344:      7(int) Constant 92
-             357:      7(int) Constant 96
-             367:      7(int) Constant 100
-             369:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 370 94 17 367 12 79 21
-             382:     92(int) Constant 3
-             383:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 138 10 22 12
-             387:      7(int) Constant 102
-             389:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 390 28 17 387 12 79 21
-             392:             TypeMatrix 27(fvec4) 4
-             394:   134(bool) ConstantTrue
-             393:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 28 21 394
-      395(Light):             TypeStruct 27(fvec4) 27(fvec4) 27(fvec4) 392
-             398:      7(int) Constant 47
-             399:      7(int) Constant 7
-             396:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 397 28 17 398 399 12 12 13
-             400:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 397 28 17 398 399 12 12 13
-             401:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 397 28 17 398 399 12 12 13
-             404:      7(int) Constant 48
-             402:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 403 393 17 404 399 12 12 13
-             405:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 406 20 17 387 12 19 406 12 13 396 400 401 402
-             407:             TypeArray 395(Light) 13
-             408:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 405 13
-        409(UBO):             TypeStruct 27(fvec4) 407 92(int) 92(int)
-             410:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 397 28 17 398 399 12 12 13
-             413:      7(int) Constant 54
-             411:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 412 408 17 413 99 12 12 13
-             416:      7(int) Constant 56
-             414:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 415 94 17 416 11 12 12 13
-             417:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 415 94 17 416 11 12 12 13
-             418:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 419 20 17 387 12 19 419 12 13 410 411 414 417
-             420:             TypePointer Uniform 409(UBO)
-        421(ubo):    420(ptr) Variable Uniform
-             422:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 423 418 17 387 12 19 423 421(ubo) 99
-             425:             TypePointer Uniform 392
-             435:      7(int) Constant 106
-             437:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 265 26 17 435 12 79 21
-             446:      7(int) Constant 111
-             456:      7(int) Constant 113
-             463:      7(int) Constant 119
-             465:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 466 71 17 463 12 16 21
-             468:             TypeImage 24(float) 2D sampled format:Unknown
-             469:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 161 12 17 463 12 19 162 163 13
-             470:             TypeSampledImage 468
-             471:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 166 12 17 463 12 19 167 163 13
-             472:             TypePointer UniformConstant 470
-473(samplerposition):    472(ptr) Variable UniformConstant
-             474:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 475 471 17 463 12 19 475 473(samplerposition) 99
-             477:             TypePointer Input 31(fvec2)
-       478(inUV):    477(ptr) Variable Input
-             479:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 480 32 17 463 12 19 480 478(inUV) 99
-             485:      7(int) Constant 120
-             487:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 488 71 17 485 12 16 21
-490(samplerNormal):    472(ptr) Variable UniformConstant
-             491:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 492 471 17 485 12 19 492 490(samplerNormal) 99
-             498:      7(int) Constant 121
-             500:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 501 28 17 498 12 16 21
-503(samplerAlbedo):    472(ptr) Variable UniformConstant
-             504:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 505 471 17 498 12 19 505 503(samplerAlbedo) 99
-             510:      7(int) Constant 124
-             511:             TypePointer Uniform 92(int)
-             514:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 138 10 22 12
-             520:      7(int) Constant 125
-             531:      7(int) Constant 127
-             532:             TypePointer Output 27(fvec4)
-533(outFragColor):    532(ptr) Variable Output
-             534:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 535 28 17 531 12 19 535 533(outFragColor) 99
-             536:   70(fvec3) ConstantComposite 108 108 108
-             541:             TypePointer Output 24(float)
-             549:      7(int) Constant 128
-             553:      7(int) Constant 130
-             562:      7(int) Constant 131
-             566:      7(int) Constant 133
-             575:      7(int) Constant 134
-             579:      7(int) Constant 136
-             589:      7(int) Constant 137
-             593:      7(int) Constant 139
-             603:      7(int) Constant 140
-             608:      7(int) Constant 142
-             611:      7(int) Constant 143
-             615:      7(int) Constant 147
-             617:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 84 71 17 615 12 16 21
-             621:   24(float) Constant 1036831949
-             624:      7(int) Constant 149
-             626:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 627 71 17 624 12 16 21
-             632:      7(int) Constant 151
-             634:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 370 94 17 632 12 16 21
-             646:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 138 10 22 12
-             650:      7(int) Constant 154
-             652:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 653 71 17 650 12 16 21
-             656:             TypePointer Uniform 27(fvec4)
-             663:      7(int) Constant 156
-             665:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 157 26 17 663 12 16 21
-             670:      7(int) Constant 157
-             674:      7(int) Constant 160
-             676:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 677 71 17 674 12 16 21
-             685:      7(int) Constant 161
-             689:      7(int) Constant 163
-             691:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 692 26 17 689 12 16 21
-             694:   24(float) Constant 1064781546
-             696:      7(int) Constant 164
-             698:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 699 26 17 696 12 16 21
-             701:   24(float) Constant 1063781322
-             703:      7(int) Constant 165
-             705:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 706 26 17 703 12 16 21
-             708:   24(float) Constant 1120403456
-             710:      7(int) Constant 168
-             712:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 713 71 17 710 12 16 21
-             726:      7(int) Constant 171
-             728:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 729 26 17 726 12 16 21
-             735:      7(int) Constant 172
-             737:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 738 26 17 735 12 16 21
-             745:      7(int) Constant 173
-             747:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 748 26 17 745 12 16 21
-             754:      7(int) Constant 176
-             756:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 757 26 17 754 12 16 21
-             764:      7(int) Constant 177
-             766:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 767 71 17 764 12 16 21
-             772:      7(int) Constant 180
-             774:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 775 71 17 772 12 16 21
-             782:      7(int) Constant 181
-             784:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 785 26 17 782 12 16 21
-             792:      7(int) Constant 182
-             794:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 795 71 17 792 12 16 21
-             798:   24(float) Constant 1098907648
-             803:   24(float) Constant 1075838976
-             807:      7(int) Constant 184
-             820:     92(int) Constant 2
-             836:      7(int) Constant 188
-             839:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 138 10 22 12
-             845:      7(int) Constant 190
-             853:      7(int) Constant 193
+              16:             TypeFloat 32
+              18:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 17 10 13 12
+              19:             TypeVector 16(float) 4
+              20:      7(int) Constant 4
+              21:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 18 20
+              22:             TypePointer Function 19(fvec4)
+              23:      7(int) Constant 7
+              24:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 21 23 12
+              25:             TypePointer Function 16(float)
+              26:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 18 23 12
+              27:             TypeVector 16(float) 2
+              28:      7(int) Constant 2
+              29:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 18 28
+              30:             TypePointer Function 27(fvec2)
+              31:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 29 23 12
+              32:             TypeFunction 16(float) 22(ptr) 25(ptr) 30(ptr)
+              33:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 18 21 18 29
+              41:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 1 42
+              43:      7(int) Constant 59
+              45:      7(int) Constant 1
+              44:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 45 20 41 28
+              40:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 39 33 41 43 12 44 39 13 43
+              48:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 49 21 41 43 12 40 20 45
+              51:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
+              52:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 53 18 41 43 12 40 20 28
+              55:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 56 29 41 43 12 40 20 13
+              58:             TypeFunction 16(float) 22(ptr) 25(ptr)
+              59:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 18 21 18
+              66:      7(int) Constant 76
+              65:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 64 59 41 66 12 44 64 13 66
+              69:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 70 21 41 66 12 65 20 45
+              72:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 53 18 41 66 12 65 20 28
+              74:             TypeVector 16(float) 3
+              75:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 18 13
+              76:             TypePointer Function 74(fvec3)
+              77:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 75 23 12
+              78:             TypeFunction 74(fvec3) 76(ptr) 76(ptr)
+              79:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 75 75 75
+              86:      7(int) Constant 99
+              85:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 84 79 41 86 12 44 84 13 86
+              89:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 90 75 41 86 12 85 20 45
+              92:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 93 75 41 86 12 85 20 28
+              97:      7(int) Constant 116
+              96:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 95 6 41 97 12 44 95 13 97
+             100:      7(int) Constant 41
+             101:             TypeInt 32 1
+             103:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 102 10 20 12
+             104:             TypePointer Private 101(int)
+             105:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 103 11 12
+ 106(global_var):    104(ptr) Variable Private
+             109:      7(int) Constant 8
+             107:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 108 103 41 100 12 44 108 106(global_var) 109
+             110:    101(int) Constant 0
+             114:      7(int) Constant 61
+             116:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 84 18 41 114 12 40 20
+             118:   16(float) Constant 1065353216
+             120:      7(int) Constant 62
+             122:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 123 21 41 120 12 40 20
+             131:      7(int) Constant 63
+             134:   16(float) Constant 1056964608
+             143:      7(int) Constant 65
+             144:             TypeBool
+             146:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 145 10 28 12
+             149:   16(float) Constant 3212836864
+             163:      7(int) Constant 67
+             165:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 166 18 41 163 12 40 20
+             168:             TypeImage 16(float) 2D array sampled format:Unknown
+             172:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 0(DebugInfoNone)
+             169:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 170 12 41 163 12 44 171 172 13
+             173:             TypeSampledImage 168
+             174:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 175 12 41 163 12 44 176 172 13
+             177:             TypePointer UniformConstant 173
+             178:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 174 12 12
+179(samplerShadowMap):    177(ptr) Variable UniformConstant
+             180:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 181 174 41 163 12 44 181 179(samplerShadowMap) 109
+             194:      7(int) Constant 68
+             197:   16(float) Constant 0
+             212:      7(int) Constant 70
+             213:   16(float) Constant 1048576000
+             216:      7(int) Constant 73
+             223:      7(int) Constant 78
+             224:             TypeVector 101(int) 2
+             225:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 103 28
+             226:             TypePointer Function 224(ivec2)
+             227:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 225 23 12
+             229:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 230 225 41 223 12 65 20
+             234:             TypeVector 101(int) 3
+             235:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 103 13
+             239:      7(int) Constant 79
+             241:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 242 18 41 239 12 65 20
+             244:   16(float) Constant 1069547520
+             246:      7(int) Constant 80
+             248:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 249 18 41 246 12 65 20
+             253:             TypePointer Function 101(int)
+             254:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 103 23 12
+             260:      7(int) Constant 81
+             262:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 263 18 41 260 12 65 20
+             272:      7(int) Constant 83
+             274:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 275 18 41 272 12 65 20
+             278:      7(int) Constant 84
+             280:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 281 103 41 278 12 65 20
+             284:      7(int) Constant 85
+             286:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 287 103 41 284 12 65 20
+             289:    101(int) Constant 1
+             291:      7(int) Constant 87
+             293:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 294 103 41 291 12 65 20
+             312:      7(int) Constant 89
+             314:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 315 103 41 312 12 65 20
+             333:      7(int) Constant 91
+             352:      7(int) Constant 92
+             365:      7(int) Constant 96
+             375:      7(int) Constant 100
+             377:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 378 103 41 375 12 85 20
+             390:    101(int) Constant 3
+             394:      7(int) Constant 102
+             396:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 397 21 41 394 12 85 20
+             399:             TypeMatrix 19(fvec4) 4
+             401:   144(bool) ConstantTrue
+             400:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 21 20 401
+      402(Light):             TypeStruct 19(fvec4) 19(fvec4) 19(fvec4) 399
+             405:      7(int) Constant 47
+             403:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 404 21 41 405 23 12 12 13
+             406:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 404 21 41 405 23 12 12 13
+             407:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 404 21 41 405 23 12 12 13
+             410:      7(int) Constant 48
+             408:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 409 400 41 410 23 12 12 13
+             411:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 412 45 41 394 12 44 412 12 13 403 406 407 408
+             413:             TypeArray 402(Light) 13
+             414:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 411 13
+        415(UBO):             TypeStruct 19(fvec4) 413 101(int) 101(int)
+             416:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 404 21 41 405 23 12 12 13
+             419:      7(int) Constant 54
+             417:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 418 414 41 419 109 12 12 13
+             422:      7(int) Constant 56
+             420:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 421 103 41 422 11 12 12 13
+             423:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 421 103 41 422 11 12 12 13
+             424:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 425 45 41 394 12 44 425 12 13 416 417 420 423
+             426:             TypePointer Uniform 415(UBO)
+             427:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 424 28 12
+        428(ubo):    426(ptr) Variable Uniform
+             429:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 430 424 41 394 12 44 430 428(ubo) 109
+             432:             TypePointer Uniform 399
+             433:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 400 28 12
+             443:      7(int) Constant 106
+             445:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 275 18 41 443 12 85 20
+             454:      7(int) Constant 111
+             464:      7(int) Constant 113
+             471:      7(int) Constant 119
+             473:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 474 75 41 471 12 96 20
+             476:             TypeImage 16(float) 2D sampled format:Unknown
+             477:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 170 12 41 471 12 44 171 172 13
+             478:             TypeSampledImage 476
+             479:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 175 12 41 471 12 44 176 172 13
+             480:             TypePointer UniformConstant 478
+             481:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 479 12 12
+482(samplerposition):    480(ptr) Variable UniformConstant
+             483:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 484 479 41 471 12 44 484 482(samplerposition) 109
+             486:             TypePointer Input 27(fvec2)
+             487:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 29 45 12
+       488(inUV):    486(ptr) Variable Input
+             489:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 490 29 41 471 12 44 490 488(inUV) 109
+             495:      7(int) Constant 120
+             497:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 498 75 41 495 12 96 20
+500(samplerNormal):    480(ptr) Variable UniformConstant
+             501:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 502 479 41 495 12 44 502 500(samplerNormal) 109
+             508:      7(int) Constant 121
+             510:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 511 21 41 508 12 96 20
+513(samplerAlbedo):    480(ptr) Variable UniformConstant
+             514:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 515 479 41 508 12 44 515 513(samplerAlbedo) 109
+             520:      7(int) Constant 124
+             521:             TypePointer Uniform 101(int)
+             522:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 103 28 12
+             530:      7(int) Constant 125
+             541:      7(int) Constant 127
+             542:             TypePointer Output 19(fvec4)
+             543:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 21 13 12
+544(outFragColor):    542(ptr) Variable Output
+             545:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 546 21 41 541 12 44 546 544(outFragColor) 109
+             547:   74(fvec3) ConstantComposite 118 118 118
+             552:             TypePointer Output 16(float)
+             553:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 18 13 12
+             561:      7(int) Constant 128
+             565:      7(int) Constant 130
+             574:      7(int) Constant 131
+             578:      7(int) Constant 133
+             587:      7(int) Constant 134
+             591:      7(int) Constant 136
+             601:      7(int) Constant 137
+             605:      7(int) Constant 139
+             615:      7(int) Constant 140
+             620:      7(int) Constant 142
+             623:      7(int) Constant 143
+             627:      7(int) Constant 147
+             629:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 90 75 41 627 12 96 20
+             633:   16(float) Constant 1036831949
+             636:      7(int) Constant 149
+             638:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 639 75 41 636 12 96 20
+             644:      7(int) Constant 151
+             646:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 378 103 41 644 12 96 20
+             661:      7(int) Constant 154
+             663:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 664 75 41 661 12 96 20
+             667:             TypePointer Uniform 19(fvec4)
+             668:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 21 28 12
+             675:      7(int) Constant 156
+             677:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 166 18 41 675 12 96 20
+             682:      7(int) Constant 157
+             686:      7(int) Constant 160
+             688:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 689 75 41 686 12 96 20
+             697:      7(int) Constant 161
+             701:      7(int) Constant 163
+             703:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 704 18 41 701 12 96 20
+             706:   16(float) Constant 1064781546
+             708:      7(int) Constant 164
+             710:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 711 18 41 708 12 96 20
+             713:   16(float) Constant 1063781322
+             715:      7(int) Constant 165
+             717:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 718 18 41 715 12 96 20
+             720:   16(float) Constant 1120403456
+             722:      7(int) Constant 168
+             724:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 725 75 41 722 12 96 20
+             738:      7(int) Constant 171
+             740:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 741 18 41 738 12 96 20
+             747:      7(int) Constant 172
+             749:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 750 18 41 747 12 96 20
+             757:      7(int) Constant 173
+             759:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 760 18 41 757 12 96 20
+             766:      7(int) Constant 176
+             768:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 769 18 41 766 12 96 20
+             776:      7(int) Constant 177
+             778:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 779 75 41 776 12 96 20
+             784:      7(int) Constant 180
+             786:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 787 75 41 784 12 96 20
+             794:      7(int) Constant 181
+             796:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 797 18 41 794 12 96 20
+             804:      7(int) Constant 182
+             806:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 807 75 41 804 12 96 20
+             810:   16(float) Constant 1098907648
+             815:   16(float) Constant 1075838976
+             819:      7(int) Constant 184
+             832:    101(int) Constant 2
+             848:      7(int) Constant 188
+             856:      7(int) Constant 190
+             864:      7(int) Constant 193
                               Line 1 116 11
         14(main):           4 Function None 5
-              23:             Label
-    464(fragPos):     72(ptr) Variable Function
-     486(normal):     72(ptr) Variable Function
-     499(albedo):     29(ptr) Variable Function
-      537(param):     72(ptr) Variable Function
-      538(param):     72(ptr) Variable Function
-  616(fragcolor):     72(ptr) Variable Function
-          625(N):     72(ptr) Variable Function
-          633(i):    244(ptr) Variable Function
-          651(L):     72(ptr) Variable Function
-       664(dist):     30(ptr) Variable Function
-          675(V):     72(ptr) Variable Function
-690(lightCosInnerAngle):     30(ptr) Variable Function
-697(lightCosOuterAngle):     30(ptr) Variable Function
- 704(lightRange):     30(ptr) Variable Function
-        711(dir):     72(ptr) Variable Function
-     727(cosDir):     30(ptr) Variable Function
- 736(spotEffect):     30(ptr) Variable Function
-746(heightAttenuation):     30(ptr) Variable Function
-      755(NdotL):     30(ptr) Variable Function
-       765(diff):     72(ptr) Variable Function
-          773(R):     72(ptr) Variable Function
-      783(NdotR):     30(ptr) Variable Function
-       793(spec):     72(ptr) Variable Function
-      846(param):     72(ptr) Variable Function
-      848(param):     72(ptr) Variable Function
-              89:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 19
-              90:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 91 91 12 12
-                              Store 96(global_var) 100
-             460:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 16 14(main)
-             461:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             462:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 463 463 12 12
-             467:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 465 464(fragPos) 48
-             476:         470 Load 473(samplerposition)
-             481:   31(fvec2) Load 478(inUV)
-             482:   27(fvec4) ImageSampleImplicitLod 476 481
-             483:   70(fvec3) VectorShuffle 482 482 0 1 2
-                              Store 464(fragPos) 483
-             484:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 485 485 12 12
-             489:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 487 486(normal) 48
-             493:         470 Load 490(samplerNormal)
-             494:   31(fvec2) Load 478(inUV)
-             495:   27(fvec4) ImageSampleImplicitLod 493 494
-             496:   70(fvec3) VectorShuffle 495 495 0 1 2
-                              Store 486(normal) 496
-             497:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 498 498 12 12
-             502:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 500 499(albedo) 48
-             506:         470 Load 503(samplerAlbedo)
-             507:   31(fvec2) Load 478(inUV)
-             508:   27(fvec4) ImageSampleImplicitLod 506 507
-                              Store 499(albedo) 508
-             509:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 510 510 12 12
-             512:    511(ptr) AccessChain 421(ubo) 382
-             513:     92(int) Load 512
-             515:   134(bool) SGreaterThan 513 100
-                              SelectionMerge 517 None
-                              BranchConditional 515 516 517
-             516:               Label
-             518:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             519:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 520 520 12 12
-             521:    511(ptr)   AccessChain 421(ubo) 382
-             522:     92(int)   Load 521
-                                SelectionMerge 528 None
-                                Switch 522 528 
-                                       case 1: 523
-                                       case 2: 524
-                                       case 3: 525
-                                       case 4: 526
-                                       case 5: 527
-             523:                 Label
-             529:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             530:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 531 531 12 12
-                                  Store 537(param) 536
-             539:   70(fvec3)     Load 464(fragPos)
-                                  Store 538(param) 539
-             540:   70(fvec3)     FunctionCall 77(shadow(vf3;vf3;) 537(param) 538(param)
-             542:    541(ptr)     AccessChain 533(outFragColor) 12
-             543:   24(float)     CompositeExtract 540 0
-                                  Store 542 543
-             544:    541(ptr)     AccessChain 533(outFragColor) 20
-             545:   24(float)     CompositeExtract 540 1
-                                  Store 544 545
-             546:    541(ptr)     AccessChain 533(outFragColor) 22
-             547:   24(float)     CompositeExtract 540 2
-                                  Store 546 547
-             548:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 549 549 12 12
-                                  Branch 528
-             524:                 Label
-             551:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             552:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 553 553 12 12
-             554:   70(fvec3)     Load 464(fragPos)
-             555:    541(ptr)     AccessChain 533(outFragColor) 12
-             556:   24(float)     CompositeExtract 554 0
-                                  Store 555 556
-             557:    541(ptr)     AccessChain 533(outFragColor) 20
-             558:   24(float)     CompositeExtract 554 1
-                                  Store 557 558
-             559:    541(ptr)     AccessChain 533(outFragColor) 22
-             560:   24(float)     CompositeExtract 554 2
-                                  Store 559 560
-             561:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 562 562 12 12
-                                  Branch 528
-             525:                 Label
-             564:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             565:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 566 566 12 12
-             567:   70(fvec3)     Load 486(normal)
-             568:    541(ptr)     AccessChain 533(outFragColor) 12
-             569:   24(float)     CompositeExtract 567 0
-                                  Store 568 569
-             570:    541(ptr)     AccessChain 533(outFragColor) 20
-             571:   24(float)     CompositeExtract 567 1
-                                  Store 570 571
-             572:    541(ptr)     AccessChain 533(outFragColor) 22
-             573:   24(float)     CompositeExtract 567 2
-                                  Store 572 573
-             574:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 575 575 12 12
-                                  Branch 528
-             526:                 Label
-             577:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             578:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 579 579 12 12
-             580:   27(fvec4)     Load 499(albedo)
-             581:   70(fvec3)     VectorShuffle 580 580 0 1 2
-             582:    541(ptr)     AccessChain 533(outFragColor) 12
-             583:   24(float)     CompositeExtract 581 0
+              15:             Label
+    472(fragPos):     76(ptr) Variable Function
+     496(normal):     76(ptr) Variable Function
+     509(albedo):     22(ptr) Variable Function
+      548(param):     76(ptr) Variable Function
+      549(param):     76(ptr) Variable Function
+  628(fragcolor):     76(ptr) Variable Function
+          637(N):     76(ptr) Variable Function
+          645(i):    253(ptr) Variable Function
+          662(L):     76(ptr) Variable Function
+       676(dist):     25(ptr) Variable Function
+          687(V):     76(ptr) Variable Function
+702(lightCosInnerAngle):     25(ptr) Variable Function
+709(lightCosOuterAngle):     25(ptr) Variable Function
+ 716(lightRange):     25(ptr) Variable Function
+        723(dir):     76(ptr) Variable Function
+     739(cosDir):     25(ptr) Variable Function
+ 748(spotEffect):     25(ptr) Variable Function
+758(heightAttenuation):     25(ptr) Variable Function
+      767(NdotL):     25(ptr) Variable Function
+       777(diff):     76(ptr) Variable Function
+          785(R):     76(ptr) Variable Function
+      795(NdotR):     25(ptr) Variable Function
+       805(spec):     76(ptr) Variable Function
+      857(param):     76(ptr) Variable Function
+      859(param):     76(ptr) Variable Function
+              98:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 44
+              99:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 100 100 12 12
+                              Store 106(global_var) 110
+             468:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 96 14(main)
+             469:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 96
+             470:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 471 471 12 12
+             475:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 473 472(fragPos) 51
+             485:         478 Load 482(samplerposition)
+             491:   27(fvec2) Load 488(inUV)
+             492:   19(fvec4) ImageSampleImplicitLod 485 491
+             493:   74(fvec3) VectorShuffle 492 492 0 1 2
+                              Store 472(fragPos) 493
+             494:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 495 495 12 12
+             499:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 497 496(normal) 51
+             503:         478 Load 500(samplerNormal)
+             504:   27(fvec2) Load 488(inUV)
+             505:   19(fvec4) ImageSampleImplicitLod 503 504
+             506:   74(fvec3) VectorShuffle 505 505 0 1 2
+                              Store 496(normal) 506
+             507:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 508 508 12 12
+             512:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 510 509(albedo) 51
+             516:         478 Load 513(samplerAlbedo)
+             517:   27(fvec2) Load 488(inUV)
+             518:   19(fvec4) ImageSampleImplicitLod 516 517
+                              Store 509(albedo) 518
+             519:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 520 520 12 12
+             523:    521(ptr) AccessChain 428(ubo) 390
+             524:    101(int) Load 523
+             525:   144(bool) SGreaterThan 524 110
+                              SelectionMerge 527 None
+                              BranchConditional 525 526 527
+             526:               Label
+             528:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 96
+             529:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 530 530 12 12
+             531:    521(ptr)   AccessChain 428(ubo) 390
+             532:    101(int)   Load 531
+                                SelectionMerge 538 None
+                                Switch 532 538 
+                                       case 1: 533
+                                       case 2: 534
+                                       case 3: 535
+                                       case 4: 536
+                                       case 5: 537
+             533:                 Label
+             539:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 96
+             540:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 541 541 12 12
+                                  Store 548(param) 547
+             550:   74(fvec3)     Load 472(fragPos)
+                                  Store 549(param) 550
+             551:   74(fvec3)     FunctionCall 82(shadow(vf3;vf3;) 548(param) 549(param)
+             554:    552(ptr)     AccessChain 544(outFragColor) 12
+             555:   16(float)     CompositeExtract 551 0
+                                  Store 554 555
+             556:    552(ptr)     AccessChain 544(outFragColor) 45
+             557:   16(float)     CompositeExtract 551 1
+                                  Store 556 557
+             558:    552(ptr)     AccessChain 544(outFragColor) 28
+             559:   16(float)     CompositeExtract 551 2
+                                  Store 558 559
+             560:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 561 561 12 12
+                                  Branch 538
+             534:                 Label
+             563:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 96
+             564:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 565 565 12 12
+             566:   74(fvec3)     Load 472(fragPos)
+             567:    552(ptr)     AccessChain 544(outFragColor) 12
+             568:   16(float)     CompositeExtract 566 0
+                                  Store 567 568
+             569:    552(ptr)     AccessChain 544(outFragColor) 45
+             570:   16(float)     CompositeExtract 566 1
+                                  Store 569 570
+             571:    552(ptr)     AccessChain 544(outFragColor) 28
+             572:   16(float)     CompositeExtract 566 2
+                                  Store 571 572
+             573:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 574 574 12 12
+                                  Branch 538
+             535:                 Label
+             576:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 96
+             577:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 578 578 12 12
+             579:   74(fvec3)     Load 496(normal)
+             580:    552(ptr)     AccessChain 544(outFragColor) 12
+             581:   16(float)     CompositeExtract 579 0
+                                  Store 580 581
+             582:    552(ptr)     AccessChain 544(outFragColor) 45
+             583:   16(float)     CompositeExtract 579 1
                                   Store 582 583
-             584:    541(ptr)     AccessChain 533(outFragColor) 20
-             585:   24(float)     CompositeExtract 581 1
+             584:    552(ptr)     AccessChain 544(outFragColor) 28
+             585:   16(float)     CompositeExtract 579 2
                                   Store 584 585
-             586:    541(ptr)     AccessChain 533(outFragColor) 22
-             587:   24(float)     CompositeExtract 581 2
-                                  Store 586 587
-             588:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 589 589 12 12
-                                  Branch 528
-             527:                 Label
-             591:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             592:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 593 593 12 12
-             594:   27(fvec4)     Load 499(albedo)
-             595:   70(fvec3)     VectorShuffle 594 594 3 3 3
-             596:    541(ptr)     AccessChain 533(outFragColor) 12
-             597:   24(float)     CompositeExtract 595 0
+             586:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 587 587 12 12
+                                  Branch 538
+             536:                 Label
+             589:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 96
+             590:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 591 591 12 12
+             592:   19(fvec4)     Load 509(albedo)
+             593:   74(fvec3)     VectorShuffle 592 592 0 1 2
+             594:    552(ptr)     AccessChain 544(outFragColor) 12
+             595:   16(float)     CompositeExtract 593 0
+                                  Store 594 595
+             596:    552(ptr)     AccessChain 544(outFragColor) 45
+             597:   16(float)     CompositeExtract 593 1
                                   Store 596 597
-             598:    541(ptr)     AccessChain 533(outFragColor) 20
-             599:   24(float)     CompositeExtract 595 1
+             598:    552(ptr)     AccessChain 544(outFragColor) 28
+             599:   16(float)     CompositeExtract 593 2
                                   Store 598 599
-             600:    541(ptr)     AccessChain 533(outFragColor) 22
-             601:   24(float)     CompositeExtract 595 2
-                                  Store 600 601
-             602:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 603 603 12 12
-                                  Branch 528
-             528:               Label
-             606:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             607:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 608 608 12 12
-             609:    541(ptr)   AccessChain 533(outFragColor) 13
-                                Store 609 108
-             610:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 611 611 12 12
+             600:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 601 601 12 12
+                                  Branch 538
+             537:                 Label
+             603:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 96
+             604:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 605 605 12 12
+             606:   19(fvec4)     Load 509(albedo)
+             607:   74(fvec3)     VectorShuffle 606 606 3 3 3
+             608:    552(ptr)     AccessChain 544(outFragColor) 12
+             609:   16(float)     CompositeExtract 607 0
+                                  Store 608 609
+             610:    552(ptr)     AccessChain 544(outFragColor) 45
+             611:   16(float)     CompositeExtract 607 1
+                                  Store 610 611
+             612:    552(ptr)     AccessChain 544(outFragColor) 28
+             613:   16(float)     CompositeExtract 607 2
+                                  Store 612 613
+             614:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 615 615 12 12
+                                  Branch 538
+             538:               Label
+             618:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 96
+             619:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 620 620 12 12
+             621:    552(ptr)   AccessChain 544(outFragColor) 13
+                                Store 621 118
+             622:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 623 623 12 12
                                 Return
-             517:             Label
-             613:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             614:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 615 615 12 12
-             618:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 617 616(fragcolor) 48
-             619:   27(fvec4) Load 499(albedo)
-             620:   70(fvec3) VectorShuffle 619 619 0 1 2
-             622:   70(fvec3) VectorTimesScalar 620 621
-                              Store 616(fragcolor) 622
-             623:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 624 624 12 12
-             628:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 626 625(N) 48
-             629:   70(fvec3) Load 486(normal)
-             630:   70(fvec3) ExtInst 3(GLSL.std.450) 69(Normalize) 629
-                              Store 625(N) 630
-             631:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 632 632 12 12
-             635:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 634 633(i) 48
-                              Store 633(i) 100
-                              Branch 636
-             636:             Label
-             640:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             641:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 632 632 12 12
-                              LoopMerge 638 639 None
-                              Branch 642
-             642:             Label
-             643:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             644:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 632 632 12 12
-             645:     92(int) Load 633(i)
-             647:   134(bool) SLessThan 645 382
-                              BranchConditional 647 637 638
-             637:               Label
-             648:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             649:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 650 650 12 12
-             654:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 652 651(L) 48
-             655:     92(int)   Load 633(i)
-             657:    656(ptr)   AccessChain 421(ubo) 279 655 100
-             658:   27(fvec4)   Load 657
-             659:   70(fvec3)   VectorShuffle 658 658 0 1 2
-             660:   70(fvec3)   Load 464(fragPos)
-             661:   70(fvec3)   FSub 659 660
-                                Store 651(L) 661
-             662:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 663 663 12 12
-             666:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 665 664(dist) 48
-             667:   70(fvec3)   Load 651(L)
-             668:   24(float)   ExtInst 3(GLSL.std.450) 66(Length) 667
-                                Store 664(dist) 668
-             669:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 670 670 12 12
-             671:   70(fvec3)   Load 651(L)
-             672:   70(fvec3)   ExtInst 3(GLSL.std.450) 69(Normalize) 671
-                                Store 651(L) 672
-             673:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 674 674 12 12
-             678:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 676 675(V) 48
-             679:    656(ptr)   AccessChain 421(ubo) 100
-             680:   27(fvec4)   Load 679
-             681:   70(fvec3)   VectorShuffle 680 680 0 1 2
-             682:   70(fvec3)   Load 464(fragPos)
-             683:   70(fvec3)   FSub 681 682
-                                Store 675(V) 683
-             684:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 685 685 12 12
-             686:   70(fvec3)   Load 675(V)
-             687:   70(fvec3)   ExtInst 3(GLSL.std.450) 69(Normalize) 686
-                                Store 675(V) 687
-             688:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 689 689 12 12
-             693:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 691 690(lightCosInnerAngle) 48
-                                Store 690(lightCosInnerAngle) 694
-             695:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 696 696 12 12
-             700:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 698 697(lightCosOuterAngle) 48
-                                Store 697(lightCosOuterAngle) 701
-             702:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 703 703 12 12
-             707:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 705 704(lightRange) 48
-                                Store 704(lightRange) 708
-             709:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 710 710 12 12
-             714:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 712 711(dir) 48
-             715:     92(int)   Load 633(i)
-             716:    656(ptr)   AccessChain 421(ubo) 279 715 100
-             717:   27(fvec4)   Load 716
-             718:   70(fvec3)   VectorShuffle 717 717 0 1 2
-             719:     92(int)   Load 633(i)
-             720:    656(ptr)   AccessChain 421(ubo) 279 719 279
-             721:   27(fvec4)   Load 720
-             722:   70(fvec3)   VectorShuffle 721 721 0 1 2
-             723:   70(fvec3)   FSub 718 722
-             724:   70(fvec3)   ExtInst 3(GLSL.std.450) 69(Normalize) 723
-                                Store 711(dir) 724
-             725:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 726 726 12 12
-             730:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 728 727(cosDir) 48
-             731:   70(fvec3)   Load 651(L)
-             732:   70(fvec3)   Load 711(dir)
-             733:   24(float)   Dot 731 732
-                                Store 727(cosDir) 733
-             734:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 735 735 12 12
-             739:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 737 736(spotEffect) 48
-             740:   24(float)   Load 697(lightCosOuterAngle)
-             741:   24(float)   Load 690(lightCosInnerAngle)
-             742:   24(float)   Load 727(cosDir)
-             743:   24(float)   ExtInst 3(GLSL.std.450) 49(SmoothStep) 740 741 742
-                                Store 736(spotEffect) 743
-             744:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 745 745 12 12
-             749:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 747 746(heightAttenuation) 48
-             750:   24(float)   Load 704(lightRange)
-             751:   24(float)   Load 664(dist)
-             752:   24(float)   ExtInst 3(GLSL.std.450) 49(SmoothStep) 750 187 751
-                                Store 746(heightAttenuation) 752
-             753:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 754 754 12 12
-             758:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 756 755(NdotL) 48
-             759:   70(fvec3)   Load 625(N)
-             760:   70(fvec3)   Load 651(L)
-             761:   24(float)   Dot 759 760
-             762:   24(float)   ExtInst 3(GLSL.std.450) 40(FMax) 187 761
-                                Store 755(NdotL) 762
-             763:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 764 764 12 12
-             768:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 766 765(diff) 48
-             769:   24(float)   Load 755(NdotL)
-             770:   70(fvec3)   CompositeConstruct 769 769 769
-                                Store 765(diff) 770
-             771:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 772 772 12 12
-             776:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 774 773(R) 48
-             777:   70(fvec3)   Load 651(L)
-             778:   70(fvec3)   FNegate 777
-             779:   70(fvec3)   Load 625(N)
-             780:   70(fvec3)   ExtInst 3(GLSL.std.450) 71(Reflect) 778 779
-                                Store 773(R) 780
-             781:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 782 782 12 12
-             786:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 784 783(NdotR) 48
-             787:   70(fvec3)   Load 773(R)
-             788:   70(fvec3)   Load 675(V)
-             789:   24(float)   Dot 787 788
-             790:   24(float)   ExtInst 3(GLSL.std.450) 40(FMax) 187 789
-                                Store 783(NdotR) 790
-             791:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 792 792 12 12
-             796:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 794 793(spec) 48
-             797:   24(float)   Load 783(NdotR)
-             799:   24(float)   ExtInst 3(GLSL.std.450) 26(Pow) 797 798
-             800:     30(ptr)   AccessChain 499(albedo) 13
-             801:   24(float)   Load 800
-             802:   24(float)   FMul 799 801
-             804:   24(float)   FMul 802 803
-             805:   70(fvec3)   CompositeConstruct 804 804 804
-                                Store 793(spec) 805
-             806:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 807 807 12 12
-             808:   70(fvec3)   Load 765(diff)
-             809:   70(fvec3)   Load 793(spec)
-             810:   70(fvec3)   FAdd 808 809
-             811:   24(float)   Load 736(spotEffect)
-             812:   70(fvec3)   VectorTimesScalar 810 811
-             813:   24(float)   Load 746(heightAttenuation)
-             814:   70(fvec3)   VectorTimesScalar 812 813
-             815:   24(float)   CompositeExtract 814 0
-             816:   24(float)   CompositeExtract 814 1
-             817:   24(float)   CompositeExtract 814 2
-             818:   70(fvec3)   CompositeConstruct 815 816 817
-             819:     92(int)   Load 633(i)
-             821:    656(ptr)   AccessChain 421(ubo) 279 819 820
-             822:   27(fvec4)   Load 821
-             823:   70(fvec3)   VectorShuffle 822 822 0 1 2
-             824:   70(fvec3)   FMul 818 823
-             825:   27(fvec4)   Load 499(albedo)
-             826:   70(fvec3)   VectorShuffle 825 825 0 1 2
-             827:   70(fvec3)   FMul 824 826
-             828:   70(fvec3)   Load 616(fragcolor)
-             829:   70(fvec3)   FAdd 828 827
-                                Store 616(fragcolor) 829
-                                Branch 639
-             639:               Label
-             830:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             831:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 632 632 12 12
-             832:     92(int)   Load 633(i)
-             833:     92(int)   IAdd 832 279
-                                Store 633(i) 833
-                                Branch 636
-             638:             Label
-             834:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             835:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 836 836 12 12
-             837:    511(ptr) AccessChain 421(ubo) 820
-             838:     92(int) Load 837
-             840:   134(bool) SGreaterThan 838 100
-                              SelectionMerge 842 None
-                              BranchConditional 840 841 842
-             841:               Label
-             843:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             844:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 845 845 12 12
-             847:   70(fvec3)   Load 616(fragcolor)
-                                Store 846(param) 847
-             849:   70(fvec3)   Load 464(fragPos)
-                                Store 848(param) 849
-             850:   70(fvec3)   FunctionCall 77(shadow(vf3;vf3;) 846(param) 848(param)
-                                Store 616(fragcolor) 850
-                                Branch 842
-             842:             Label
-             851:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             852:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 853 853 12 12
-             854:   70(fvec3) Load 616(fragcolor)
-             855:   24(float) CompositeExtract 854 0
-             856:   24(float) CompositeExtract 854 1
-             857:   24(float) CompositeExtract 854 2
-             858:   27(fvec4) CompositeConstruct 855 856 857 108
-                              Store 533(outFragColor) 858
+             527:             Label
+             625:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 96
+             626:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 627 627 12 12
+             630:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 629 628(fragcolor) 51
+             631:   19(fvec4) Load 509(albedo)
+             632:   74(fvec3) VectorShuffle 631 631 0 1 2
+             634:   74(fvec3) VectorTimesScalar 632 633
+                              Store 628(fragcolor) 634
+             635:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 636 636 12 12
+             640:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 638 637(N) 51
+             641:   74(fvec3) Load 496(normal)
+             642:   74(fvec3) ExtInst 3(GLSL.std.450) 69(Normalize) 641
+                              Store 637(N) 642
+             643:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 644 644 12 12
+             647:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 646 645(i) 51
+                              Store 645(i) 110
+                              Branch 648
+             648:             Label
+             652:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 96
+             653:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 644 644 12 12
+                              LoopMerge 650 651 None
+                              Branch 654
+             654:             Label
+             655:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 96
+             656:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 644 644 12 12
+             657:    101(int) Load 645(i)
+             658:   144(bool) SLessThan 657 390
+                              BranchConditional 658 649 650
+             649:               Label
+             659:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 96
+             660:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 661 661 12 12
+             665:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 663 662(L) 51
+             666:    101(int)   Load 645(i)
+             669:    667(ptr)   AccessChain 428(ubo) 289 666 110
+             670:   19(fvec4)   Load 669
+             671:   74(fvec3)   VectorShuffle 670 670 0 1 2
+             672:   74(fvec3)   Load 472(fragPos)
+             673:   74(fvec3)   FSub 671 672
+                                Store 662(L) 673
+             674:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 675 675 12 12
+             678:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 677 676(dist) 51
+             679:   74(fvec3)   Load 662(L)
+             680:   16(float)   ExtInst 3(GLSL.std.450) 66(Length) 679
+                                Store 676(dist) 680
+             681:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 682 682 12 12
+             683:   74(fvec3)   Load 662(L)
+             684:   74(fvec3)   ExtInst 3(GLSL.std.450) 69(Normalize) 683
+                                Store 662(L) 684
+             685:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 686 686 12 12
+             690:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 688 687(V) 51
+             691:    667(ptr)   AccessChain 428(ubo) 110
+             692:   19(fvec4)   Load 691
+             693:   74(fvec3)   VectorShuffle 692 692 0 1 2
+             694:   74(fvec3)   Load 472(fragPos)
+             695:   74(fvec3)   FSub 693 694
+                                Store 687(V) 695
+             696:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 697 697 12 12
+             698:   74(fvec3)   Load 687(V)
+             699:   74(fvec3)   ExtInst 3(GLSL.std.450) 69(Normalize) 698
+                                Store 687(V) 699
+             700:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 701 701 12 12
+             705:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 703 702(lightCosInnerAngle) 51
+                                Store 702(lightCosInnerAngle) 706
+             707:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 708 708 12 12
+             712:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 710 709(lightCosOuterAngle) 51
+                                Store 709(lightCosOuterAngle) 713
+             714:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 715 715 12 12
+             719:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 717 716(lightRange) 51
+                                Store 716(lightRange) 720
+             721:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 722 722 12 12
+             726:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 724 723(dir) 51
+             727:    101(int)   Load 645(i)
+             728:    667(ptr)   AccessChain 428(ubo) 289 727 110
+             729:   19(fvec4)   Load 728
+             730:   74(fvec3)   VectorShuffle 729 729 0 1 2
+             731:    101(int)   Load 645(i)
+             732:    667(ptr)   AccessChain 428(ubo) 289 731 289
+             733:   19(fvec4)   Load 732
+             734:   74(fvec3)   VectorShuffle 733 733 0 1 2
+             735:   74(fvec3)   FSub 730 734
+             736:   74(fvec3)   ExtInst 3(GLSL.std.450) 69(Normalize) 735
+                                Store 723(dir) 736
+             737:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 738 738 12 12
+             742:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 740 739(cosDir) 51
+             743:   74(fvec3)   Load 662(L)
+             744:   74(fvec3)   Load 723(dir)
+             745:   16(float)   Dot 743 744
+                                Store 739(cosDir) 745
+             746:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 747 747 12 12
+             751:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 749 748(spotEffect) 51
+             752:   16(float)   Load 709(lightCosOuterAngle)
+             753:   16(float)   Load 702(lightCosInnerAngle)
+             754:   16(float)   Load 739(cosDir)
+             755:   16(float)   ExtInst 3(GLSL.std.450) 49(SmoothStep) 752 753 754
+                                Store 748(spotEffect) 755
+             756:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 757 757 12 12
+             761:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 759 758(heightAttenuation) 51
+             762:   16(float)   Load 716(lightRange)
+             763:   16(float)   Load 676(dist)
+             764:   16(float)   ExtInst 3(GLSL.std.450) 49(SmoothStep) 762 197 763
+                                Store 758(heightAttenuation) 764
+             765:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 766 766 12 12
+             770:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 768 767(NdotL) 51
+             771:   74(fvec3)   Load 637(N)
+             772:   74(fvec3)   Load 662(L)
+             773:   16(float)   Dot 771 772
+             774:   16(float)   ExtInst 3(GLSL.std.450) 40(FMax) 197 773
+                                Store 767(NdotL) 774
+             775:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 776 776 12 12
+             780:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 778 777(diff) 51
+             781:   16(float)   Load 767(NdotL)
+             782:   74(fvec3)   CompositeConstruct 781 781 781
+                                Store 777(diff) 782
+             783:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 784 784 12 12
+             788:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 786 785(R) 51
+             789:   74(fvec3)   Load 662(L)
+             790:   74(fvec3)   FNegate 789
+             791:   74(fvec3)   Load 637(N)
+             792:   74(fvec3)   ExtInst 3(GLSL.std.450) 71(Reflect) 790 791
+                                Store 785(R) 792
+             793:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 794 794 12 12
+             798:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 796 795(NdotR) 51
+             799:   74(fvec3)   Load 785(R)
+             800:   74(fvec3)   Load 687(V)
+             801:   16(float)   Dot 799 800
+             802:   16(float)   ExtInst 3(GLSL.std.450) 40(FMax) 197 801
+                                Store 795(NdotR) 802
+             803:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 804 804 12 12
+             808:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 806 805(spec) 51
+             809:   16(float)   Load 795(NdotR)
+             811:   16(float)   ExtInst 3(GLSL.std.450) 26(Pow) 809 810
+             812:     25(ptr)   AccessChain 509(albedo) 13
+             813:   16(float)   Load 812
+             814:   16(float)   FMul 811 813
+             816:   16(float)   FMul 814 815
+             817:   74(fvec3)   CompositeConstruct 816 816 816
+                                Store 805(spec) 817
+             818:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 819 819 12 12
+             820:   74(fvec3)   Load 777(diff)
+             821:   74(fvec3)   Load 805(spec)
+             822:   74(fvec3)   FAdd 820 821
+             823:   16(float)   Load 748(spotEffect)
+             824:   74(fvec3)   VectorTimesScalar 822 823
+             825:   16(float)   Load 758(heightAttenuation)
+             826:   74(fvec3)   VectorTimesScalar 824 825
+             827:   16(float)   CompositeExtract 826 0
+             828:   16(float)   CompositeExtract 826 1
+             829:   16(float)   CompositeExtract 826 2
+             830:   74(fvec3)   CompositeConstruct 827 828 829
+             831:    101(int)   Load 645(i)
+             833:    667(ptr)   AccessChain 428(ubo) 289 831 832
+             834:   19(fvec4)   Load 833
+             835:   74(fvec3)   VectorShuffle 834 834 0 1 2
+             836:   74(fvec3)   FMul 830 835
+             837:   19(fvec4)   Load 509(albedo)
+             838:   74(fvec3)   VectorShuffle 837 837 0 1 2
+             839:   74(fvec3)   FMul 836 838
+             840:   74(fvec3)   Load 628(fragcolor)
+             841:   74(fvec3)   FAdd 840 839
+                                Store 628(fragcolor) 841
+                                Branch 651
+             651:               Label
+             842:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 96
+             843:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 644 644 12 12
+             844:    101(int)   Load 645(i)
+             845:    101(int)   IAdd 844 289
+                                Store 645(i) 845
+                                Branch 648
+             650:             Label
+             846:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 96
+             847:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 848 848 12 12
+             849:    521(ptr) AccessChain 428(ubo) 832
+             850:    101(int) Load 849
+             851:   144(bool) SGreaterThan 850 110
+                              SelectionMerge 853 None
+                              BranchConditional 851 852 853
+             852:               Label
+             854:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 96
+             855:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 856 856 12 12
+             858:   74(fvec3)   Load 628(fragcolor)
+                                Store 857(param) 858
+             860:   74(fvec3)   Load 472(fragPos)
+                                Store 859(param) 860
+             861:   74(fvec3)   FunctionCall 82(shadow(vf3;vf3;) 857(param) 859(param)
+                                Store 628(fragcolor) 861
+                                Branch 853
+             853:             Label
+             862:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 96
+             863:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 864 864 12 12
+             865:   74(fvec3) Load 628(fragcolor)
+             866:   16(float) CompositeExtract 865 0
+             867:   16(float) CompositeExtract 865 1
+             868:   16(float) CompositeExtract 865 2
+             869:   19(fvec4) CompositeConstruct 866 867 868 118
+                              Store 544(outFragColor) 869
                               Return
                               FunctionEnd
                               Line 1 59 51
-39(textureProj(vf4;f1;vf2;):   24(float) Function None 34
-           36(P):     29(ptr) FunctionParameter
-       37(layer):     30(ptr) FunctionParameter
-      38(offset):     33(ptr) FunctionParameter
-              42:             Label
-     105(shadow):     30(ptr) Variable Function
-111(shadowCoord):     29(ptr) Variable Function
-       155(dist):     30(ptr) Variable Function
-              43:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 41
-              44:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 12 12 12 12
-              47:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 45 36(P) 48
-              51:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 49 37(layer) 48
-              54:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 52 38(offset) 48
-             101:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 41 39(textureProj(vf4;f1;vf2;)
-             102:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 41
-             103:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 104 104 12 12
-             107:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 106 105(shadow) 48
-                              Store 105(shadow) 108
-             109:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 110 110 12 12
-             114:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 112 111(shadowCoord) 48
-             115:   27(fvec4) Load 36(P)
-             116:     30(ptr) AccessChain 36(P) 13
-             117:   24(float) Load 116
-             118:   27(fvec4) CompositeConstruct 117 117 117 117
-             119:   27(fvec4) FDiv 115 118
-                              Store 111(shadowCoord) 119
-             120:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 121 121 12 12
-             122:   27(fvec4) Load 111(shadowCoord)
-             123:   31(fvec2) VectorShuffle 122 122 0 1
-             125:   31(fvec2) VectorTimesScalar 123 124
-             126:   31(fvec2) CompositeConstruct 124 124
-             127:   31(fvec2) FAdd 125 126
-             128:     30(ptr) AccessChain 111(shadowCoord) 12
-             129:   24(float) CompositeExtract 127 0
-                              Store 128 129
-             130:     30(ptr) AccessChain 111(shadowCoord) 20
-             131:   24(float) CompositeExtract 127 1
-                              Store 130 131
-             132:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 133 133 12 12
-             135:     30(ptr) AccessChain 111(shadowCoord) 22
-             136:   24(float) Load 135
-             140:   134(bool) FOrdGreaterThan 136 137
-                              SelectionMerge 142 None
-                              BranchConditional 140 141 142
-             141:               Label
-             143:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 41
-             144:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 133 133 12 12
-             145:     30(ptr)   AccessChain 111(shadowCoord) 22
-             146:   24(float)   Load 145
-             148:   134(bool)   FOrdLessThan 146 108
-                                Branch 142
-             142:             Label
-             149:   134(bool) Phi 140 42 148 141
-                              SelectionMerge 151 None
-                              BranchConditional 149 150 151
-             150:               Label
-             152:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 41
-             153:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 154 154 12 12
-             158:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 156 155(dist) 48
-             172:         164   Load 169(samplerShadowMap)
-             173:   27(fvec4)   Load 111(shadowCoord)
-             174:   31(fvec2)   VectorShuffle 173 173 0 1
-             175:   31(fvec2)   Load 38(offset)
-             176:   31(fvec2)   FAdd 174 175
-             177:   24(float)   Load 37(layer)
-             178:   24(float)   CompositeExtract 176 0
-             179:   24(float)   CompositeExtract 176 1
-             180:   70(fvec3)   CompositeConstruct 178 179 177
-             181:   27(fvec4)   ImageSampleImplicitLod 172 180
-             182:   24(float)   CompositeExtract 181 0
-                                Store 155(dist) 182
-             183:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 184 184 12 12
-             185:     30(ptr)   AccessChain 111(shadowCoord) 13
-             186:   24(float)   Load 185
-             189:   134(bool)   FOrdGreaterThan 186 187
-                                SelectionMerge 191 None
-                                BranchConditional 189 190 191
-             190:                 Label
-             192:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 41
-             193:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 184 184 12 12
-             194:   24(float)     Load 155(dist)
-             195:     30(ptr)     AccessChain 111(shadowCoord) 22
-             196:   24(float)     Load 195
-             198:   134(bool)     FOrdLessThan 194 196
-                                  Branch 191
-             191:               Label
-             199:   134(bool)   Phi 189 150 198 190
-                                SelectionMerge 201 None
-                                BranchConditional 199 200 201
-             200:                 Label
-             202:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 41
-             203:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 204 204 12 12
-                                  Store 105(shadow) 205
-                                  Branch 201
-             201:               Label
-                                Branch 151
-             151:             Label
-             206:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 41
-             207:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 208 208 12 12
-             209:   24(float) Load 105(shadow)
-                              ReturnValue 209
+37(textureProj(vf4;f1;vf2;):   16(float) Function None 32
+           34(P):     22(ptr) FunctionParameter
+       35(layer):     25(ptr) FunctionParameter
+      36(offset):     30(ptr) FunctionParameter
+              38:             Label
+     115(shadow):     25(ptr) Variable Function
+121(shadowCoord):     22(ptr) Variable Function
+       164(dist):     25(ptr) Variable Function
+              46:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 40
+              47:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 43 43 12 12
+              50:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 48 34(P) 51
+              54:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 52 35(layer) 51
+              57:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 55 36(offset) 51
+             111:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 40 37(textureProj(vf4;f1;vf2;)
+             112:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 40
+             113:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 114 114 12 12
+             117:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 116 115(shadow) 51
+                              Store 115(shadow) 118
+             119:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 120 120 12 12
+             124:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 122 121(shadowCoord) 51
+             125:   19(fvec4) Load 34(P)
+             126:     25(ptr) AccessChain 34(P) 13
+             127:   16(float) Load 126
+             128:   19(fvec4) CompositeConstruct 127 127 127 127
+             129:   19(fvec4) FDiv 125 128
+                              Store 121(shadowCoord) 129
+             130:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 131 131 12 12
+             132:   19(fvec4) Load 121(shadowCoord)
+             133:   27(fvec2) VectorShuffle 132 132 0 1
+             135:   27(fvec2) VectorTimesScalar 133 134
+             136:   27(fvec2) CompositeConstruct 134 134
+             137:   27(fvec2) FAdd 135 136
+             138:     25(ptr) AccessChain 121(shadowCoord) 12
+             139:   16(float) CompositeExtract 137 0
+                              Store 138 139
+             140:     25(ptr) AccessChain 121(shadowCoord) 45
+             141:   16(float) CompositeExtract 137 1
+                              Store 140 141
+             142:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 143 143 12 12
+             147:     25(ptr) AccessChain 121(shadowCoord) 28
+             148:   16(float) Load 147
+             150:   144(bool) FOrdGreaterThan 148 149
+                              SelectionMerge 152 None
+                              BranchConditional 150 151 152
+             151:               Label
+             153:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 40
+             154:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 143 143 12 12
+             155:     25(ptr)   AccessChain 121(shadowCoord) 28
+             156:   16(float)   Load 155
+             157:   144(bool)   FOrdLessThan 156 118
+                                Branch 152
+             152:             Label
+             158:   144(bool) Phi 150 38 157 151
+                              SelectionMerge 160 None
+                              BranchConditional 158 159 160
+             159:               Label
+             161:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 40
+             162:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 163 163 12 12
+             167:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 165 164(dist) 51
+             182:         173   Load 179(samplerShadowMap)
+             183:   19(fvec4)   Load 121(shadowCoord)
+             184:   27(fvec2)   VectorShuffle 183 183 0 1
+             185:   27(fvec2)   Load 36(offset)
+             186:   27(fvec2)   FAdd 184 185
+             187:   16(float)   Load 35(layer)
+             188:   16(float)   CompositeExtract 186 0
+             189:   16(float)   CompositeExtract 186 1
+             190:   74(fvec3)   CompositeConstruct 188 189 187
+             191:   19(fvec4)   ImageSampleImplicitLod 182 190
+             192:   16(float)   CompositeExtract 191 0
+                                Store 164(dist) 192
+             193:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 194 194 12 12
+             195:     25(ptr)   AccessChain 121(shadowCoord) 13
+             196:   16(float)   Load 195
+             198:   144(bool)   FOrdGreaterThan 196 197
+                                SelectionMerge 200 None
+                                BranchConditional 198 199 200
+             199:                 Label
+             201:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 40
+             202:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 194 194 12 12
+             203:   16(float)     Load 164(dist)
+             204:     25(ptr)     AccessChain 121(shadowCoord) 28
+             205:   16(float)     Load 204
+             206:   144(bool)     FOrdLessThan 203 205
+                                  Branch 200
+             200:               Label
+             207:   144(bool)   Phi 198 159 206 199
+                                SelectionMerge 209 None
+                                BranchConditional 207 208 209
+             208:                 Label
+             210:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 40
+             211:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 212 212 12 12
+                                  Store 115(shadow) 213
+                                  Branch 209
+             209:               Label
+                                Branch 160
+             160:             Label
+             214:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 40
+             215:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 216 216 12 12
+             217:   16(float) Load 115(shadow)
+                              ReturnValue 217
                               FunctionEnd
                               Line 1 76 37
-59(filterPCF(vf4;f1;):   24(float) Function None 55
-          57(sc):     29(ptr) FunctionParameter
-       58(layer):     30(ptr) FunctionParameter
-              62:             Label
-     219(texDim):    218(ptr) Variable Function
-      231(scale):     30(ptr) Variable Function
-         238(dx):     30(ptr) Variable Function
-         251(dy):     30(ptr) Variable Function
-263(shadowFactor):     30(ptr) Variable Function
-      269(count):    244(ptr) Variable Function
-      275(range):    244(ptr) Variable Function
-          282(x):    244(ptr) Variable Function
-          304(y):    244(ptr) Variable Function
-      335(param):     29(ptr) Variable Function
-      337(param):     30(ptr) Variable Function
-      339(param):     33(ptr) Variable Function
-              63:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 61
-              64:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 12 12 12 12
-              67:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 65 57(sc) 48
-              69:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 68 58(layer) 48
-             212:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 61 59(filterPCF(vf4;f1;)
-             213:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 61
-             214:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 215 215 12 12
-             222:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 220 219(texDim) 48
-             223:         164 Load 169(samplerShadowMap)
-             224:         159 Image 223
-             227:  225(ivec3) ImageQuerySizeLod 224 100
-             228:  216(ivec2) VectorShuffle 227 227 0 1
-                              Store 219(texDim) 228
-             229:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 230 230 12 12
-             234:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 232 231(scale) 48
-                              Store 231(scale) 235
-             236:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 237 237 12 12
-             241:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 239 238(dx) 48
-             242:   24(float) Load 231(scale)
-             243:   24(float) FMul 242 108
-             245:    244(ptr) AccessChain 219(texDim) 12
-             246:     92(int) Load 245
-             247:   24(float) ConvertSToF 246
-             248:   24(float) FDiv 243 247
-                              Store 238(dx) 248
-             249:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 250 250 12 12
-             254:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 252 251(dy) 48
-             255:   24(float) Load 231(scale)
-             256:   24(float) FMul 255 108
-             257:    244(ptr) AccessChain 219(texDim) 20
-             258:     92(int) Load 257
-             259:   24(float) ConvertSToF 258
-             260:   24(float) FDiv 256 259
-                              Store 251(dy) 260
-             261:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 262 262 12 12
-             266:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 264 263(shadowFactor) 48
-                              Store 263(shadowFactor) 187
-             267:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 268 268 12 12
-             272:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 270 269(count) 48
-                              Store 269(count) 100
-             273:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 274 274 12 12
-             278:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 276 275(range) 48
-                              Store 275(range) 279
-             280:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 281 281 12 12
-             285:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 283 282(x) 48
-             286:     92(int) Load 275(range)
-             287:     92(int) SNegate 286
-                              Store 282(x) 287
-                              Branch 288
-             288:             Label
-             292:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 61
-             293:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 281 281 12 12
-                              LoopMerge 290 291 None
-                              Branch 294
-             294:             Label
-             295:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 61
-             296:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 281 281 12 12
-             297:     92(int) Load 282(x)
-             298:     92(int) Load 275(range)
-             300:   134(bool) SLessThanEqual 297 298
-                              BranchConditional 300 289 290
-             289:               Label
-             301:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 61
-             302:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 303 303 12 12
-             307:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 305 304(y) 48
-             308:     92(int)   Load 275(range)
-             309:     92(int)   SNegate 308
-                                Store 304(y) 309
-                                Branch 310
-             310:               Label
-             314:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 61
-             315:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 303 303 12 12
-                                LoopMerge 312 313 None
-                                Branch 316
-             316:               Label
-             317:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 61
-             318:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 303 303 12 12
-             319:     92(int)   Load 304(y)
-             320:     92(int)   Load 275(range)
-             322:   134(bool)   SLessThanEqual 319 320
-                                BranchConditional 322 311 312
-             311:                 Label
-             323:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 61
-             324:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 325 325 12 12
-             326:   24(float)     Load 238(dx)
-             327:     92(int)     Load 282(x)
-             328:   24(float)     ConvertSToF 327
-             329:   24(float)     FMul 326 328
-             330:   24(float)     Load 251(dy)
-             331:     92(int)     Load 304(y)
-             332:   24(float)     ConvertSToF 331
-             333:   24(float)     FMul 330 332
-             334:   31(fvec2)     CompositeConstruct 329 333
-             336:   27(fvec4)     Load 57(sc)
-                                  Store 335(param) 336
-             338:   24(float)     Load 58(layer)
-                                  Store 337(param) 338
-                                  Store 339(param) 334
-             340:   24(float)     FunctionCall 39(textureProj(vf4;f1;vf2;) 335(param) 337(param) 339(param)
-             341:   24(float)     Load 263(shadowFactor)
-             342:   24(float)     FAdd 341 340
-                                  Store 263(shadowFactor) 342
-             343:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 344 344 12 12
-             345:     92(int)     Load 269(count)
-             346:     92(int)     IAdd 345 279
-                                  Store 269(count) 346
-                                  Branch 313
-             313:                 Label
-             347:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 61
-             348:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 303 303 12 12
-             349:     92(int)     Load 304(y)
-             350:     92(int)     IAdd 349 279
-                                  Store 304(y) 350
-                                  Branch 310
-             312:               Label
-                                Branch 291
-             291:               Label
-             351:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 61
-             352:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 281 281 12 12
-             353:     92(int)   Load 282(x)
-             354:     92(int)   IAdd 353 279
-                                Store 282(x) 354
-                                Branch 288
-             290:             Label
-             355:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 61
-             356:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 357 357 12 12
-             358:   24(float) Load 263(shadowFactor)
-             359:     92(int) Load 269(count)
-             360:   24(float) ConvertSToF 359
-             361:   24(float) FDiv 358 360
-                              ReturnValue 361
+62(filterPCF(vf4;f1;):   16(float) Function None 58
+          60(sc):     22(ptr) FunctionParameter
+       61(layer):     25(ptr) FunctionParameter
+              63:             Label
+     228(texDim):    226(ptr) Variable Function
+      240(scale):     25(ptr) Variable Function
+         247(dx):     25(ptr) Variable Function
+         261(dy):     25(ptr) Variable Function
+273(shadowFactor):     25(ptr) Variable Function
+      279(count):    253(ptr) Variable Function
+      285(range):    253(ptr) Variable Function
+          292(x):    253(ptr) Variable Function
+          313(y):    253(ptr) Variable Function
+      343(param):     22(ptr) Variable Function
+      345(param):     25(ptr) Variable Function
+      347(param):     30(ptr) Variable Function
+              67:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65
+              68:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 66 66 12 12
+              71:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 69 60(sc) 51
+              73:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 72 61(layer) 51
+             220:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 65 62(filterPCF(vf4;f1;)
+             221:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65
+             222:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 223 223 12 12
+             231:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 229 228(texDim) 51
+             232:         173 Load 179(samplerShadowMap)
+             233:         168 Image 232
+             236:  234(ivec3) ImageQuerySizeLod 233 110
+             237:  224(ivec2) VectorShuffle 236 236 0 1
+                              Store 228(texDim) 237
+             238:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 239 239 12 12
+             243:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 241 240(scale) 51
+                              Store 240(scale) 244
+             245:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 246 246 12 12
+             250:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 248 247(dx) 51
+             251:   16(float) Load 240(scale)
+             252:   16(float) FMul 251 118
+             255:    253(ptr) AccessChain 228(texDim) 12
+             256:    101(int) Load 255
+             257:   16(float) ConvertSToF 256
+             258:   16(float) FDiv 252 257
+                              Store 247(dx) 258
+             259:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 260 260 12 12
+             264:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 262 261(dy) 51
+             265:   16(float) Load 240(scale)
+             266:   16(float) FMul 265 118
+             267:    253(ptr) AccessChain 228(texDim) 45
+             268:    101(int) Load 267
+             269:   16(float) ConvertSToF 268
+             270:   16(float) FDiv 266 269
+                              Store 261(dy) 270
+             271:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 272 272 12 12
+             276:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 274 273(shadowFactor) 51
+                              Store 273(shadowFactor) 197
+             277:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 278 278 12 12
+             282:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 280 279(count) 51
+                              Store 279(count) 110
+             283:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 284 284 12 12
+             288:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 286 285(range) 51
+                              Store 285(range) 289
+             290:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 291 291 12 12
+             295:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 293 292(x) 51
+             296:    101(int) Load 285(range)
+             297:    101(int) SNegate 296
+                              Store 292(x) 297
+                              Branch 298
+             298:             Label
+             302:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65
+             303:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 291 291 12 12
+                              LoopMerge 300 301 None
+                              Branch 304
+             304:             Label
+             305:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65
+             306:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 291 291 12 12
+             307:    101(int) Load 292(x)
+             308:    101(int) Load 285(range)
+             309:   144(bool) SLessThanEqual 307 308
+                              BranchConditional 309 299 300
+             299:               Label
+             310:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65
+             311:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 312 312 12 12
+             316:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 314 313(y) 51
+             317:    101(int)   Load 285(range)
+             318:    101(int)   SNegate 317
+                                Store 313(y) 318
+                                Branch 319
+             319:               Label
+             323:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65
+             324:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 312 312 12 12
+                                LoopMerge 321 322 None
+                                Branch 325
+             325:               Label
+             326:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65
+             327:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 312 312 12 12
+             328:    101(int)   Load 313(y)
+             329:    101(int)   Load 285(range)
+             330:   144(bool)   SLessThanEqual 328 329
+                                BranchConditional 330 320 321
+             320:                 Label
+             331:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65
+             332:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 333 333 12 12
+             334:   16(float)     Load 247(dx)
+             335:    101(int)     Load 292(x)
+             336:   16(float)     ConvertSToF 335
+             337:   16(float)     FMul 334 336
+             338:   16(float)     Load 261(dy)
+             339:    101(int)     Load 313(y)
+             340:   16(float)     ConvertSToF 339
+             341:   16(float)     FMul 338 340
+             342:   27(fvec2)     CompositeConstruct 337 341
+             344:   19(fvec4)     Load 60(sc)
+                                  Store 343(param) 344
+             346:   16(float)     Load 61(layer)
+                                  Store 345(param) 346
+                                  Store 347(param) 342
+             348:   16(float)     FunctionCall 37(textureProj(vf4;f1;vf2;) 343(param) 345(param) 347(param)
+             349:   16(float)     Load 273(shadowFactor)
+             350:   16(float)     FAdd 349 348
+                                  Store 273(shadowFactor) 350
+             351:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 352 352 12 12
+             353:    101(int)     Load 279(count)
+             354:    101(int)     IAdd 353 289
+                                  Store 279(count) 354
+                                  Branch 322
+             322:                 Label
+             355:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65
+             356:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 312 312 12 12
+             357:    101(int)     Load 313(y)
+             358:    101(int)     IAdd 357 289
+                                  Store 313(y) 358
+                                  Branch 319
+             321:               Label
+                                Branch 301
+             301:               Label
+             359:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65
+             360:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 291 291 12 12
+             361:    101(int)   Load 292(x)
+             362:    101(int)   IAdd 361 289
+                                Store 292(x) 362
+                                Branch 298
+             300:             Label
+             363:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65
+             364:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 365 365 12 12
+             366:   16(float) Load 273(shadowFactor)
+             367:    101(int) Load 279(count)
+             368:   16(float) ConvertSToF 367
+             369:   16(float) FDiv 366 368
+                              ReturnValue 369
                               FunctionEnd
                               Line 1 99 41
-77(shadow(vf3;vf3;):   70(fvec3) Function None 73
-   75(fragcolor):     72(ptr) FunctionParameter
-     76(fragpos):     72(ptr) FunctionParameter
-              80:             Label
-          368(i):    244(ptr) Variable Function
- 388(shadowClip):     29(ptr) Variable Function
-436(shadowFactor):     30(ptr) Variable Function
-      441(param):     29(ptr) Variable Function
-      443(param):     30(ptr) Variable Function
-              81:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 79
-              82:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 12 12 12 12
-              85:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 83 75(fragcolor) 48
-              88:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 86 76(fragpos) 48
-             364:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 79 77(shadow(vf3;vf3;)
-             365:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 79
-             366:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 367 367 12 12
-             371:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 369 368(i) 48
-                              Store 368(i) 100
-                              Branch 372
-             372:             Label
-             376:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 79
-             377:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 367 367 12 12
-                              LoopMerge 374 375 None
-                              Branch 378
-             378:             Label
-             379:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 79
-             380:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 367 367 12 12
-             381:     92(int) Load 368(i)
-             384:   134(bool) SLessThan 381 382
-                              BranchConditional 384 373 374
-             373:               Label
-             385:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 79
-             386:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 387 387 12 12
-             391:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 389 388(shadowClip) 48
-             424:     92(int)   Load 368(i)
-             426:    425(ptr)   AccessChain 421(ubo) 279 424 382
-             427:         392   Load 426
-             428:   70(fvec3)   Load 76(fragpos)
-             429:   24(float)   CompositeExtract 428 0
-             430:   24(float)   CompositeExtract 428 1
-             431:   24(float)   CompositeExtract 428 2
-             432:   27(fvec4)   CompositeConstruct 429 430 431 108
-             433:   27(fvec4)   MatrixTimesVector 427 432
-                                Store 388(shadowClip) 433
-             434:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 435 435 12 12
-             438:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 437 436(shadowFactor) 48
-             439:     92(int)   Load 368(i)
-             440:   24(float)   ConvertSToF 439
-             442:   27(fvec4)   Load 388(shadowClip)
-                                Store 441(param) 442
-                                Store 443(param) 440
-             444:   24(float)   FunctionCall 59(filterPCF(vf4;f1;) 441(param) 443(param)
-                                Store 436(shadowFactor) 444
-             445:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 446 446 12 12
-             447:   24(float)   Load 436(shadowFactor)
-             448:   70(fvec3)   Load 75(fragcolor)
-             449:   70(fvec3)   VectorTimesScalar 448 447
-                                Store 75(fragcolor) 449
-                                Branch 375
-             375:               Label
-             450:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 79
-             451:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 367 367 12 12
-             452:     92(int)   Load 368(i)
-             453:     92(int)   IAdd 452 279
-                                Store 368(i) 453
-                                Branch 372
-             374:             Label
-             454:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 79
-             455:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 456 456 12 12
-             457:   70(fvec3) Load 75(fragcolor)
-                              ReturnValue 457
+82(shadow(vf3;vf3;):   74(fvec3) Function None 78
+   80(fragcolor):     76(ptr) FunctionParameter
+     81(fragpos):     76(ptr) FunctionParameter
+              83:             Label
+          376(i):    253(ptr) Variable Function
+ 395(shadowClip):     22(ptr) Variable Function
+444(shadowFactor):     25(ptr) Variable Function
+      449(param):     22(ptr) Variable Function
+      451(param):     25(ptr) Variable Function
+              87:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 85
+              88:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 86 86 12 12
+              91:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 89 80(fragcolor) 51
+              94:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 92 81(fragpos) 51
+             372:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 85 82(shadow(vf3;vf3;)
+             373:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 85
+             374:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 375 375 12 12
+             379:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 377 376(i) 51
+                              Store 376(i) 110
+                              Branch 380
+             380:             Label
+             384:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 85
+             385:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 375 375 12 12
+                              LoopMerge 382 383 None
+                              Branch 386
+             386:             Label
+             387:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 85
+             388:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 375 375 12 12
+             389:    101(int) Load 376(i)
+             391:   144(bool) SLessThan 389 390
+                              BranchConditional 391 381 382
+             381:               Label
+             392:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 85
+             393:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 394 394 12 12
+             398:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 396 395(shadowClip) 51
+             431:    101(int)   Load 376(i)
+             434:    432(ptr)   AccessChain 428(ubo) 289 431 390
+             435:         399   Load 434
+             436:   74(fvec3)   Load 81(fragpos)
+             437:   16(float)   CompositeExtract 436 0
+             438:   16(float)   CompositeExtract 436 1
+             439:   16(float)   CompositeExtract 436 2
+             440:   19(fvec4)   CompositeConstruct 437 438 439 118
+             441:   19(fvec4)   MatrixTimesVector 435 440
+                                Store 395(shadowClip) 441
+             442:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 443 443 12 12
+             446:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 445 444(shadowFactor) 51
+             447:    101(int)   Load 376(i)
+             448:   16(float)   ConvertSToF 447
+             450:   19(fvec4)   Load 395(shadowClip)
+                                Store 449(param) 450
+                                Store 451(param) 448
+             452:   16(float)   FunctionCall 62(filterPCF(vf4;f1;) 449(param) 451(param)
+                                Store 444(shadowFactor) 452
+             453:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 454 454 12 12
+             455:   16(float)   Load 444(shadowFactor)
+             456:   74(fvec3)   Load 80(fragcolor)
+             457:   74(fvec3)   VectorTimesScalar 456 455
+                                Store 80(fragcolor) 457
+                                Branch 383
+             383:               Label
+             458:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 85
+             459:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 375 375 12 12
+             460:    101(int)   Load 376(i)
+             461:    101(int)   IAdd 460 289
+                                Store 376(i) 461
+                                Branch 380
+             382:             Label
+             462:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 85
+             463:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 464 464 12 12
+             465:   74(fvec3) Load 80(fragcolor)
+                              ReturnValue 465
                               FunctionEnd
diff --git a/Test/baseResults/spv.debuginfo.glsl.geom.out b/Test/baseResults/spv.debuginfo.glsl.geom.out
index 58edd36..eff5627 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
 // Module Version 10000
 // Generated by (magic number): 8000b
-// Id's are bound by 256
+// Id's are bound by 272
 
                               Capability Geometry
                               Capability MultiViewport
@@ -9,15 +9,15 @@
                2:             ExtInstImport  "NonSemantic.Shader.DebugInfo.100"
                3:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Geometry 14  "main" 62 94 113 123 126 157 196 205 222 234 240 243
+                              EntryPoint Geometry 14  "main" 66 99 120 131 134 167 209 218 236 250 256 259
                               ExecutionMode 14 Triangles
                               ExecutionMode 14 Invocations 2
                               ExecutionMode 14 OutputTriangleStrip
                               ExecutionMode 14 OutputVertices 3
                1:             String  ""
-               9:             String  "uint"
-              15:             String  "main"
-              18:             String  "// OpModuleProcessed auto-map-locations
+               8:             String  "uint"
+              16:             String  "main"
+              19:             String  "// OpModuleProcessed auto-map-locations
 // OpModuleProcessed auto-map-bindings
 // OpModuleProcessed client vulkan100
 // OpModuleProcessed target-env vulkan1.0
@@ -25,340 +25,356 @@
 // OpModuleProcessed entry-point main
 #line 1
 "
-              29:             String  "int"
-              34:             String  "i"
-              50:             String  "bool"
-              57:             String  "float"
-              64:             String  "outNormal"
-              77:             String  "projection"
-              81:             String  "modelview"
-              84:             String  "lightPos"
-              87:             String  "UBO"
-              91:             String  "ubo"
-              96:             String  "gl_InvocationID"
-             115:             String  "inNormal"
-             125:             String  "outColor"
-             128:             String  "inColor"
-             137:             String  "pos"
-             143:             String  "gl_Position"
-             146:             String  "gl_PointSize"
-             149:             String  "gl_CullDistance"
-             153:             String  "gl_PerVertex"
-             159:             String  "gl_in"
-             168:             String  "worldPos"
-             180:             String  "lPos"
-             198:             String  "outLightVec"
-             207:             String  "outViewVec"
-             236:             String  "gl_ViewportIndex"
-             242:             String  "gl_PrimitiveID"
-             245:             String  "gl_PrimitiveIDIn"
+              30:             String  "int"
+              37:             String  "i"
+              53:             String  "bool"
+              60:             String  "float"
+              68:             String  "outNormal"
+              81:             String  "projection"
+              84:             String  "modelview"
+              87:             String  "lightPos"
+              90:             String  "UBO"
+              95:             String  "ubo"
+             101:             String  "gl_InvocationID"
+             122:             String  "inNormal"
+             133:             String  "outColor"
+             136:             String  "inColor"
+             146:             String  "pos"
+             152:             String  "gl_Position"
+             155:             String  "gl_PointSize"
+             158:             String  "gl_CullDistance"
+             162:             String  "gl_PerVertex"
+             169:             String  "gl_in"
+             179:             String  "worldPos"
+             192:             String  "lPos"
+             211:             String  "outLightVec"
+             220:             String  "outViewVec"
+             252:             String  "gl_ViewportIndex"
+             258:             String  "gl_PrimitiveID"
+             261:             String  "gl_PrimitiveIDIn"
                               SourceExtension  "GL_ARB_viewport_array"
                               Name 14  "main"
-                              Name 32  "i"
-                              Name 62  "outNormal"
-                              Name 75  "UBO"
-                              MemberName 75(UBO) 0  "projection"
-                              MemberName 75(UBO) 1  "modelview"
-                              MemberName 75(UBO) 2  "lightPos"
-                              Name 89  "ubo"
-                              Name 94  "gl_InvocationID"
-                              Name 113  "inNormal"
-                              Name 123  "outColor"
-                              Name 126  "inColor"
-                              Name 135  "pos"
-                              Name 141  "gl_PerVertex"
-                              MemberName 141(gl_PerVertex) 0  "gl_Position"
-                              MemberName 141(gl_PerVertex) 1  "gl_PointSize"
-                              MemberName 141(gl_PerVertex) 2  "gl_ClipDistance"
-                              MemberName 141(gl_PerVertex) 3  "gl_CullDistance"
-                              Name 157  "gl_in"
-                              Name 166  "worldPos"
-                              Name 178  "lPos"
-                              Name 196  "outLightVec"
-                              Name 205  "outViewVec"
-                              Name 213  "gl_PerVertex"
-                              MemberName 213(gl_PerVertex) 0  "gl_Position"
-                              MemberName 213(gl_PerVertex) 1  "gl_PointSize"
-                              MemberName 213(gl_PerVertex) 2  "gl_ClipDistance"
-                              MemberName 213(gl_PerVertex) 3  "gl_CullDistance"
-                              Name 222  ""
-                              Name 234  "gl_ViewportIndex"
-                              Name 240  "gl_PrimitiveID"
-                              Name 243  "gl_PrimitiveIDIn"
-                              Decorate 62(outNormal) Location 0
-                              Decorate 71 ArrayStride 64
-                              Decorate 73 ArrayStride 64
-                              MemberDecorate 75(UBO) 0 ColMajor
-                              MemberDecorate 75(UBO) 0 Offset 0
-                              MemberDecorate 75(UBO) 0 MatrixStride 16
-                              MemberDecorate 75(UBO) 1 ColMajor
-                              MemberDecorate 75(UBO) 1 Offset 128
-                              MemberDecorate 75(UBO) 1 MatrixStride 16
-                              MemberDecorate 75(UBO) 2 Offset 256
-                              Decorate 75(UBO) Block
-                              Decorate 89(ubo) DescriptorSet 0
-                              Decorate 89(ubo) Binding 0
-                              Decorate 94(gl_InvocationID) BuiltIn InvocationId
-                              Decorate 113(inNormal) Location 0
-                              Decorate 123(outColor) Location 1
-                              Decorate 126(inColor) Location 1
-                              MemberDecorate 141(gl_PerVertex) 0 BuiltIn Position
-                              MemberDecorate 141(gl_PerVertex) 1 BuiltIn PointSize
-                              MemberDecorate 141(gl_PerVertex) 2 BuiltIn ClipDistance
-                              MemberDecorate 141(gl_PerVertex) 3 BuiltIn CullDistance
-                              Decorate 141(gl_PerVertex) Block
-                              Decorate 196(outLightVec) Location 3
-                              Decorate 205(outViewVec) Location 2
-                              MemberDecorate 213(gl_PerVertex) 0 BuiltIn Position
-                              MemberDecorate 213(gl_PerVertex) 1 BuiltIn PointSize
-                              MemberDecorate 213(gl_PerVertex) 2 BuiltIn ClipDistance
-                              MemberDecorate 213(gl_PerVertex) 3 BuiltIn CullDistance
-                              Decorate 213(gl_PerVertex) Block
-                              Decorate 234(gl_ViewportIndex) BuiltIn ViewportIndex
-                              Decorate 240(gl_PrimitiveID) BuiltIn PrimitiveId
-                              Decorate 243(gl_PrimitiveIDIn) BuiltIn PrimitiveId
+                              Name 35  "i"
+                              Name 66  "outNormal"
+                              Name 79  "UBO"
+                              MemberName 79(UBO) 0  "projection"
+                              MemberName 79(UBO) 1  "modelview"
+                              MemberName 79(UBO) 2  "lightPos"
+                              Name 93  "ubo"
+                              Name 99  "gl_InvocationID"
+                              Name 120  "inNormal"
+                              Name 131  "outColor"
+                              Name 134  "inColor"
+                              Name 144  "pos"
+                              Name 150  "gl_PerVertex"
+                              MemberName 150(gl_PerVertex) 0  "gl_Position"
+                              MemberName 150(gl_PerVertex) 1  "gl_PointSize"
+                              MemberName 150(gl_PerVertex) 2  "gl_ClipDistance"
+                              MemberName 150(gl_PerVertex) 3  "gl_CullDistance"
+                              Name 167  "gl_in"
+                              Name 177  "worldPos"
+                              Name 190  "lPos"
+                              Name 209  "outLightVec"
+                              Name 218  "outViewVec"
+                              Name 226  "gl_PerVertex"
+                              MemberName 226(gl_PerVertex) 0  "gl_Position"
+                              MemberName 226(gl_PerVertex) 1  "gl_PointSize"
+                              MemberName 226(gl_PerVertex) 2  "gl_ClipDistance"
+                              MemberName 226(gl_PerVertex) 3  "gl_CullDistance"
+                              Name 236  ""
+                              Name 250  "gl_ViewportIndex"
+                              Name 256  "gl_PrimitiveID"
+                              Name 259  "gl_PrimitiveIDIn"
+                              Decorate 66(outNormal) Location 0
+                              Decorate 75 ArrayStride 64
+                              Decorate 77 ArrayStride 64
+                              MemberDecorate 79(UBO) 0 ColMajor
+                              MemberDecorate 79(UBO) 0 Offset 0
+                              MemberDecorate 79(UBO) 0 MatrixStride 16
+                              MemberDecorate 79(UBO) 1 ColMajor
+                              MemberDecorate 79(UBO) 1 Offset 128
+                              MemberDecorate 79(UBO) 1 MatrixStride 16
+                              MemberDecorate 79(UBO) 2 Offset 256
+                              Decorate 79(UBO) Block
+                              Decorate 93(ubo) DescriptorSet 0
+                              Decorate 93(ubo) Binding 0
+                              Decorate 99(gl_InvocationID) BuiltIn InvocationId
+                              Decorate 120(inNormal) Location 0
+                              Decorate 131(outColor) Location 1
+                              Decorate 134(inColor) Location 1
+                              MemberDecorate 150(gl_PerVertex) 0 BuiltIn Position
+                              MemberDecorate 150(gl_PerVertex) 1 BuiltIn PointSize
+                              MemberDecorate 150(gl_PerVertex) 2 BuiltIn ClipDistance
+                              MemberDecorate 150(gl_PerVertex) 3 BuiltIn CullDistance
+                              Decorate 150(gl_PerVertex) Block
+                              Decorate 209(outLightVec) Location 3
+                              Decorate 218(outViewVec) Location 2
+                              MemberDecorate 226(gl_PerVertex) 0 BuiltIn Position
+                              MemberDecorate 226(gl_PerVertex) 1 BuiltIn PointSize
+                              MemberDecorate 226(gl_PerVertex) 2 BuiltIn ClipDistance
+                              MemberDecorate 226(gl_PerVertex) 3 BuiltIn CullDistance
+                              Decorate 226(gl_PerVertex) Block
+                              Decorate 250(gl_ViewportIndex) BuiltIn ViewportIndex
+                              Decorate 256(gl_PrimitiveID) BuiltIn PrimitiveId
+                              Decorate 259(gl_PrimitiveIDIn) BuiltIn PrimitiveId
                4:             TypeVoid
                5:             TypeFunction 4
                7:             TypeInt 32 0
               10:      7(int) Constant 32
               11:      7(int) Constant 6
               12:      7(int) Constant 0
-               8:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 9 10 11 12
+               9:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 8 10 11 12
               13:      7(int) Constant 3
                6:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 4
-              17:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 1 18
-              20:      7(int) Constant 1
-              21:      7(int) Constant 4
-              22:      7(int) Constant 2
-              19:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 20 21 17 22
-              16:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 15 6 17 12 12 19 15 13 12
-              27:      7(int) Constant 49
-              28:             TypeInt 32 1
-              30:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 29 10 21 12
-              31:             TypePointer Function 28(int)
-              33:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 34 30 17 27 12 16 21
-              36:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
-              37:     28(int) Constant 0
-              48:     28(int) Constant 3
-              49:             TypeBool
-              51:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 50 10 22 12
-              55:      7(int) Constant 51
-              56:             TypeFloat 32
-              58:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 57 10 13 12
-              59:             TypeVector 56(float) 3
-              60:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 58 13
-              61:             TypePointer Output 59(fvec3)
-   62(outNormal):     61(ptr) Variable Output
-              65:      7(int) Constant 8
-              63:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 64 60 17 55 12 19 64 62(outNormal) 65
-              66:             TypeVector 56(float) 4
-              67:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 58 21
-              68:             TypeMatrix 66(fvec4) 4
-              70:    49(bool) ConstantTrue
-              69:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 67 21 70
-              71:             TypeArray 68 22
-              72:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 69 22
-              73:             TypeArray 68 22
-              74:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 69 22
-         75(UBO):             TypeStruct 71 73 66(fvec4)
-              78:      7(int) Constant 34
-              79:      7(int) Constant 7
-              76:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 77 72 17 78 79 12 12 13
-              82:      7(int) Constant 35
-              80:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 81 74 17 82 79 12 12 13
-              85:      7(int) Constant 36
-              83:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 84 67 17 85 79 12 12 13
-              86:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 87 20 17 55 12 19 87 12 13 76 80 83
-              88:             TypePointer Uniform 75(UBO)
-         89(ubo):     88(ptr) Variable Uniform
-              90:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 91 86 17 55 12 19 91 89(ubo) 65
-              92:     28(int) Constant 1
-              93:             TypePointer Input 28(int)
-94(gl_InvocationID):     93(ptr) Variable Input
-              95:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 96 30 17 55 12 19 96 94(gl_InvocationID) 65
-              98:             TypePointer Uniform 68
-             101:             TypeMatrix 59(fvec3) 3
-             102:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 60 13 70
-             110:             TypeArray 59(fvec3) 13
-             111:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 60 13
-             112:             TypePointer Input 110
-   113(inNormal):    112(ptr) Variable Input
-             114:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 115 111 17 55 12 19 115 113(inNormal) 65
-             117:             TypePointer Input 59(fvec3)
-             122:      7(int) Constant 52
-   123(outColor):     61(ptr) Variable Output
-             124:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 125 60 17 122 12 19 125 123(outColor) 65
-    126(inColor):    112(ptr) Variable Input
-             127:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 128 111 17 122 12 19 128 126(inColor) 65
-             133:      7(int) Constant 54
-             134:             TypePointer Function 66(fvec4)
-             136:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 137 67 17 133 12 16 21
-             139:             TypeArray 56(float) 20
-             140:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 58 20
-141(gl_PerVertex):             TypeStruct 66(fvec4) 56(float) 139 139
-             144:      7(int) Constant 23
-             142:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 143 67 17 22 144 12 12 13
-             147:      7(int) Constant 41
-             145:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 146 58 17 22 147 12 12 13
-             150:      7(int) Constant 84
-             148:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 149 140 17 22 150 12 12 13
-             151:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 149 140 17 22 150 12 12 13
-             152:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 153 20 17 133 12 19 153 12 13 142 145 148 151
-             154:             TypeArray 141(gl_PerVertex) 13
-             155:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 152 13
-             156:             TypePointer Input 154
-      157(gl_in):    156(ptr) Variable Input
-             158:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 159 155 17 133 12 19 159 157(gl_in) 65
-             161:             TypePointer Input 66(fvec4)
-             165:      7(int) Constant 55
-             167:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 168 67 17 165 12 16 21
-             176:      7(int) Constant 57
-             177:             TypePointer Function 59(fvec3)
-             179:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 180 60 17 176 12 16 21
-             185:     28(int) Constant 2
-             186:             TypePointer Uniform 66(fvec4)
-             195:      7(int) Constant 58
-196(outLightVec):     61(ptr) Variable Output
-             197:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 198 60 17 195 12 19 198 196(outLightVec) 65
-             204:      7(int) Constant 59
- 205(outViewVec):     61(ptr) Variable Output
-             206:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 207 60 17 204 12 19 207 205(outViewVec) 65
-             212:      7(int) Constant 61
-213(gl_PerVertex):             TypeStruct 66(fvec4) 56(float) 139 139
-             215:      7(int) Constant 215
-             214:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 143 67 17 22 215 12 12 13
-             217:      7(int) Constant 233
-             216:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 146 58 17 22 217 12 12 13
-             218:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 149 140 17 13 79 12 12 13
-             219:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 149 140 17 13 79 12 12 13
-             220:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 153 20 17 212 12 19 153 12 13 214 216 218 219
-             221:             TypePointer Output 213(gl_PerVertex)
-             222:    221(ptr) Variable Output
-             223:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 1 220 17 212 12 19 1 222 65
-             229:             TypePointer Output 66(fvec4)
-             232:      7(int) Constant 64
-             233:             TypePointer Output 28(int)
-234(gl_ViewportIndex):    233(ptr) Variable Output
-             235:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 236 30 17 232 12 19 236 234(gl_ViewportIndex) 65
-             239:      7(int) Constant 65
-240(gl_PrimitiveID):    233(ptr) Variable Output
-             241:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 242 30 17 239 12 19 242 240(gl_PrimitiveID) 65
-243(gl_PrimitiveIDIn):     93(ptr) Variable Input
-             244:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 245 30 17 239 12 19 245 243(gl_PrimitiveIDIn) 65
-             248:      7(int) Constant 66
-             255:      7(int) Constant 68
+              18:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 1 19
+              20:      7(int) Constant 47
+              22:      7(int) Constant 1
+              23:      7(int) Constant 4
+              24:      7(int) Constant 2
+              21:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 22 23 18 24
+              17:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 16 6 18 20 12 21 16 13 20
+              28:      7(int) Constant 49
+              29:             TypeInt 32 1
+              31:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 30 10 23 12
+              32:             TypePointer Function 29(int)
+              33:      7(int) Constant 7
+              34:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 31 33 12
+              36:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 37 31 18 28 12 17 23
+              39:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
+              40:     29(int) Constant 0
+              51:     29(int) Constant 3
+              52:             TypeBool
+              54:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 53 10 24 12
+              58:      7(int) Constant 51
+              59:             TypeFloat 32
+              61:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 60 10 13 12
+              62:             TypeVector 59(float) 3
+              63:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 61 13
+              64:             TypePointer Output 62(fvec3)
+              65:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 63 13 12
+   66(outNormal):     64(ptr) Variable Output
+              69:      7(int) Constant 8
+              67:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 68 63 18 58 12 21 68 66(outNormal) 69
+              70:             TypeVector 59(float) 4
+              71:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 61 23
+              72:             TypeMatrix 70(fvec4) 4
+              74:    52(bool) ConstantTrue
+              73:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 71 23 74
+              75:             TypeArray 72 24
+              76:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 73 24
+              77:             TypeArray 72 24
+              78:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 73 24
+         79(UBO):             TypeStruct 75 77 70(fvec4)
+              82:      7(int) Constant 34
+              80:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 81 76 18 82 33 12 12 13
+              85:      7(int) Constant 35
+              83:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 84 78 18 85 33 12 12 13
+              88:      7(int) Constant 36
+              86:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 87 71 18 88 33 12 12 13
+              89:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 90 22 18 58 12 21 90 12 13 80 83 86
+              91:             TypePointer Uniform 79(UBO)
+              92:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 89 24 12
+         93(ubo):     91(ptr) Variable Uniform
+              94:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 95 89 18 58 12 21 95 93(ubo) 69
+              96:     29(int) Constant 1
+              97:             TypePointer Input 29(int)
+              98:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 31 22 12
+99(gl_InvocationID):     97(ptr) Variable Input
+             100:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 101 31 18 58 12 21 101 99(gl_InvocationID) 69
+             103:             TypePointer Uniform 72
+             104:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 73 24 12
+             107:             TypeMatrix 62(fvec3) 3
+             108:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 63 13 74
+             116:             TypeArray 62(fvec3) 13
+             117:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 63 13
+             118:             TypePointer Input 116
+             119:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 117 22 12
+   120(inNormal):    118(ptr) Variable Input
+             121:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 122 117 18 58 12 21 122 120(inNormal) 69
+             124:             TypePointer Input 62(fvec3)
+             125:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 63 22 12
+             130:      7(int) Constant 52
+   131(outColor):     64(ptr) Variable Output
+             132:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 133 63 18 130 12 21 133 131(outColor) 69
+    134(inColor):    118(ptr) Variable Input
+             135:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 136 117 18 130 12 21 136 134(inColor) 69
+             141:      7(int) Constant 54
+             142:             TypePointer Function 70(fvec4)
+             143:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 71 33 12
+             145:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 146 71 18 141 12 17 23
+             148:             TypeArray 59(float) 22
+             149:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 61 22
+150(gl_PerVertex):             TypeStruct 70(fvec4) 59(float) 148 148
+             153:      7(int) Constant 23
+             151:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 152 71 18 24 153 12 12 13
+             156:      7(int) Constant 41
+             154:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 155 61 18 24 156 12 12 13
+             159:      7(int) Constant 84
+             157:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 158 149 18 24 159 12 12 13
+             160:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 158 149 18 24 159 12 12 13
+             161:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 162 22 18 141 12 21 162 12 13 151 154 157 160
+             163:             TypeArray 150(gl_PerVertex) 13
+             164:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 161 13
+             165:             TypePointer Input 163
+             166:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 164 22 12
+      167(gl_in):    165(ptr) Variable Input
+             168:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 169 164 18 141 12 21 169 167(gl_in) 69
+             171:             TypePointer Input 70(fvec4)
+             172:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 71 22 12
+             176:      7(int) Constant 55
+             178:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 179 71 18 176 12 17 23
+             187:      7(int) Constant 57
+             188:             TypePointer Function 62(fvec3)
+             189:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 63 33 12
+             191:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 192 63 18 187 12 17 23
+             197:     29(int) Constant 2
+             198:             TypePointer Uniform 70(fvec4)
+             199:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 71 24 12
+             208:      7(int) Constant 58
+209(outLightVec):     64(ptr) Variable Output
+             210:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 211 63 18 208 12 21 211 209(outLightVec) 69
+             217:      7(int) Constant 59
+ 218(outViewVec):     64(ptr) Variable Output
+             219:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 220 63 18 217 12 21 220 218(outViewVec) 69
+             225:      7(int) Constant 61
+226(gl_PerVertex):             TypeStruct 70(fvec4) 59(float) 148 148
+             228:      7(int) Constant 215
+             227:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 152 71 18 24 228 12 12 13
+             230:      7(int) Constant 233
+             229:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 155 61 18 24 230 12 12 13
+             231:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 158 149 18 13 33 12 12 13
+             232:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 158 149 18 13 33 12 12 13
+             233:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 162 22 18 225 12 21 162 12 13 227 229 231 232
+             234:             TypePointer Output 226(gl_PerVertex)
+             235:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 233 13 12
+             236:    234(ptr) Variable Output
+             237:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 1 233 18 225 12 21 1 236 69
+             243:             TypePointer Output 70(fvec4)
+             244:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 71 13 12
+             247:      7(int) Constant 64
+             248:             TypePointer Output 29(int)
+             249:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 31 13 12
+250(gl_ViewportIndex):    248(ptr) Variable Output
+             251:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 252 31 18 247 12 21 252 250(gl_ViewportIndex) 69
+             255:      7(int) Constant 65
+256(gl_PrimitiveID):    248(ptr) Variable Output
+             257:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 258 31 18 255 12 21 258 256(gl_PrimitiveID) 69
+259(gl_PrimitiveIDIn):     97(ptr) Variable Input
+             260:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 261 31 18 255 12 21 261 259(gl_PrimitiveIDIn) 69
+             264:      7(int) Constant 66
+             271:      7(int) Constant 68
                               Line 1 47 15
         14(main):           4 Function None 5
-              23:             Label
-           32(i):     31(ptr) Variable Function
-        135(pos):    134(ptr) Variable Function
-   166(worldPos):    134(ptr) Variable Function
-       178(lPos):    177(ptr) Variable Function
-              24:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 16 14(main)
-              25:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-              26:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 27 27 12 12
-              35:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 33 32(i) 36
-                              Store 32(i) 37
-                              Branch 38
-              38:             Label
-              42:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-              43:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 27 27 12 12
-                              LoopMerge 40 41 None
-                              Branch 44
-              44:             Label
-              45:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-              46:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 27 27 12 12
-              47:     28(int) Load 32(i)
-              52:    49(bool) SLessThan 47 48
-                              BranchConditional 52 39 40
-              39:               Label
-              53:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-              54:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 55 55 12 12
-              97:     28(int)   Load 94(gl_InvocationID)
-              99:     98(ptr)   AccessChain 89(ubo) 92 97
-             100:          68   Load 99
-             103:   66(fvec4)   CompositeExtract 100 0
-             104:   59(fvec3)   VectorShuffle 103 103 0 1 2
-             105:   66(fvec4)   CompositeExtract 100 1
-             106:   59(fvec3)   VectorShuffle 105 105 0 1 2
-             107:   66(fvec4)   CompositeExtract 100 2
-             108:   59(fvec3)   VectorShuffle 107 107 0 1 2
-             109:         101   CompositeConstruct 104 106 108
-             116:     28(int)   Load 32(i)
-             118:    117(ptr)   AccessChain 113(inNormal) 116
-             119:   59(fvec3)   Load 118
-             120:   59(fvec3)   MatrixTimesVector 109 119
-                                Store 62(outNormal) 120
-             121:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 122 122 12 12
-             129:     28(int)   Load 32(i)
-             130:    117(ptr)   AccessChain 126(inColor) 129
-             131:   59(fvec3)   Load 130
-                                Store 123(outColor) 131
-             132:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 133 133 12 12
-             138:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 136 135(pos) 36
-             160:     28(int)   Load 32(i)
-             162:    161(ptr)   AccessChain 157(gl_in) 160 37
-             163:   66(fvec4)   Load 162
-                                Store 135(pos) 163
-             164:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 165 165 12 12
-             169:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 167 166(worldPos) 36
-             170:     28(int)   Load 94(gl_InvocationID)
-             171:     98(ptr)   AccessChain 89(ubo) 92 170
-             172:          68   Load 171
-             173:   66(fvec4)   Load 135(pos)
-             174:   66(fvec4)   MatrixTimesVector 172 173
-                                Store 166(worldPos) 174
-             175:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 176 176 12 12
-             181:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 179 178(lPos) 36
-             182:     28(int)   Load 94(gl_InvocationID)
-             183:     98(ptr)   AccessChain 89(ubo) 92 182
-             184:          68   Load 183
-             187:    186(ptr)   AccessChain 89(ubo) 185
-             188:   66(fvec4)   Load 187
-             189:   66(fvec4)   MatrixTimesVector 184 188
-             190:   56(float)   CompositeExtract 189 0
-             191:   56(float)   CompositeExtract 189 1
-             192:   56(float)   CompositeExtract 189 2
-             193:   59(fvec3)   CompositeConstruct 190 191 192
-                                Store 178(lPos) 193
-             194:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 195 195 12 12
-             199:   59(fvec3)   Load 178(lPos)
-             200:   66(fvec4)   Load 166(worldPos)
-             201:   59(fvec3)   VectorShuffle 200 200 0 1 2
-             202:   59(fvec3)   FSub 199 201
-                                Store 196(outLightVec) 202
-             203:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 204 204 12 12
-             208:   66(fvec4)   Load 166(worldPos)
-             209:   59(fvec3)   VectorShuffle 208 208 0 1 2
-             210:   59(fvec3)   FNegate 209
-                                Store 205(outViewVec) 210
-             211:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 212 212 12 12
-             224:     28(int)   Load 94(gl_InvocationID)
-             225:     98(ptr)   AccessChain 89(ubo) 37 224
-             226:          68   Load 225
-             227:   66(fvec4)   Load 166(worldPos)
-             228:   66(fvec4)   MatrixTimesVector 226 227
-             230:    229(ptr)   AccessChain 222 37
-                                Store 230 228
-             231:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 232 232 12 12
-             237:     28(int)   Load 94(gl_InvocationID)
-                                Store 234(gl_ViewportIndex) 237
-             238:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 239 239 12 12
-             246:     28(int)   Load 243(gl_PrimitiveIDIn)
-                                Store 240(gl_PrimitiveID) 246
-             247:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 248 248 12 12
+              15:             Label
+           35(i):     32(ptr) Variable Function
+        144(pos):    142(ptr) Variable Function
+   177(worldPos):    142(ptr) Variable Function
+       190(lPos):    188(ptr) Variable Function
+              25:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 17 14(main)
+              26:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17
+              27:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 28 28 12 12
+              38:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 36 35(i) 39
+                              Store 35(i) 40
+                              Branch 41
+              41:             Label
+              45:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17
+              46:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 28 28 12 12
+                              LoopMerge 43 44 None
+                              Branch 47
+              47:             Label
+              48:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17
+              49:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 28 28 12 12
+              50:     29(int) Load 35(i)
+              55:    52(bool) SLessThan 50 51
+                              BranchConditional 55 42 43
+              42:               Label
+              56:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17
+              57:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 58 58 12 12
+             102:     29(int)   Load 99(gl_InvocationID)
+             105:    103(ptr)   AccessChain 93(ubo) 96 102
+             106:          72   Load 105
+             109:   70(fvec4)   CompositeExtract 106 0
+             110:   62(fvec3)   VectorShuffle 109 109 0 1 2
+             111:   70(fvec4)   CompositeExtract 106 1
+             112:   62(fvec3)   VectorShuffle 111 111 0 1 2
+             113:   70(fvec4)   CompositeExtract 106 2
+             114:   62(fvec3)   VectorShuffle 113 113 0 1 2
+             115:         107   CompositeConstruct 110 112 114
+             123:     29(int)   Load 35(i)
+             126:    124(ptr)   AccessChain 120(inNormal) 123
+             127:   62(fvec3)   Load 126
+             128:   62(fvec3)   MatrixTimesVector 115 127
+                                Store 66(outNormal) 128
+             129:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 130 130 12 12
+             137:     29(int)   Load 35(i)
+             138:    124(ptr)   AccessChain 134(inColor) 137
+             139:   62(fvec3)   Load 138
+                                Store 131(outColor) 139
+             140:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 141 141 12 12
+             147:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 145 144(pos) 39
+             170:     29(int)   Load 35(i)
+             173:    171(ptr)   AccessChain 167(gl_in) 170 40
+             174:   70(fvec4)   Load 173
+                                Store 144(pos) 174
+             175:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 176 176 12 12
+             180:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 178 177(worldPos) 39
+             181:     29(int)   Load 99(gl_InvocationID)
+             182:    103(ptr)   AccessChain 93(ubo) 96 181
+             183:          72   Load 182
+             184:   70(fvec4)   Load 144(pos)
+             185:   70(fvec4)   MatrixTimesVector 183 184
+                                Store 177(worldPos) 185
+             186:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 187 187 12 12
+             193:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 191 190(lPos) 39
+             194:     29(int)   Load 99(gl_InvocationID)
+             195:    103(ptr)   AccessChain 93(ubo) 96 194
+             196:          72   Load 195
+             200:    198(ptr)   AccessChain 93(ubo) 197
+             201:   70(fvec4)   Load 200
+             202:   70(fvec4)   MatrixTimesVector 196 201
+             203:   59(float)   CompositeExtract 202 0
+             204:   59(float)   CompositeExtract 202 1
+             205:   59(float)   CompositeExtract 202 2
+             206:   62(fvec3)   CompositeConstruct 203 204 205
+                                Store 190(lPos) 206
+             207:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 208 208 12 12
+             212:   62(fvec3)   Load 190(lPos)
+             213:   70(fvec4)   Load 177(worldPos)
+             214:   62(fvec3)   VectorShuffle 213 213 0 1 2
+             215:   62(fvec3)   FSub 212 214
+                                Store 209(outLightVec) 215
+             216:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 217 217 12 12
+             221:   70(fvec4)   Load 177(worldPos)
+             222:   62(fvec3)   VectorShuffle 221 221 0 1 2
+             223:   62(fvec3)   FNegate 222
+                                Store 218(outViewVec) 223
+             224:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 225 225 12 12
+             238:     29(int)   Load 99(gl_InvocationID)
+             239:    103(ptr)   AccessChain 93(ubo) 40 238
+             240:          72   Load 239
+             241:   70(fvec4)   Load 177(worldPos)
+             242:   70(fvec4)   MatrixTimesVector 240 241
+             245:    243(ptr)   AccessChain 236 40
+                                Store 245 242
+             246:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 247 247 12 12
+             253:     29(int)   Load 99(gl_InvocationID)
+                                Store 250(gl_ViewportIndex) 253
+             254:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 255 255 12 12
+             262:     29(int)   Load 259(gl_PrimitiveIDIn)
+                                Store 256(gl_PrimitiveID) 262
+             263:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 264 264 12 12
                                 EmitVertex
+                                Branch 44
+              44:               Label
+             265:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17
+             266:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 28 28 12 12
+             267:     29(int)   Load 35(i)
+             268:     29(int)   IAdd 267 96
+                                Store 35(i) 268
                                 Branch 41
-              41:               Label
-             249:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             250:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 27 27 12 12
-             251:     28(int)   Load 32(i)
-             252:     28(int)   IAdd 251 92
-                                Store 32(i) 252
-                                Branch 38
-              40:             Label
-             253:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             254:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 255 255 12 12
+              43:             Label
+             269:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17
+             270:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 271 271 12 12
                               EndPrimitive
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.debuginfo.glsl.tesc.out b/Test/baseResults/spv.debuginfo.glsl.tesc.out
index f3e7d20..b5a7d03 100644
--- a/Test/baseResults/spv.debuginfo.glsl.tesc.out
+++ b/Test/baseResults/spv.debuginfo.glsl.tesc.out
@@ -1,19 +1,20 @@
 spv.debuginfo.glsl.tesc
 // Module Version 10000
 // Generated by (magic number): 8000b
-// Id's are bound by 542
+// Id's are bound by 562
 
                               Capability Tessellation
                               Extension  "SPV_KHR_non_semantic_info"
                2:             ExtInstImport  "NonSemantic.Shader.DebugInfo.100"
                3:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint TessellationControl 14  "main" 249 253 279 370 383 498 512 519 533
+                              EntryPoint TessellationControl 14  "main" 259 264 293 381 396 511 527 535 552
                               ExecutionMode 14 OutputVertices 4
                1:             String  ""
-               9:             String  "uint"
-              15:             String  "main"
-              18:             String  "// OpModuleProcessed auto-map-locations
+               8:             String  "uint"
+              17:             String  "float"
+              31:             String  "screenSpaceTessFactor"
+              34:             String  "// OpModuleProcessed auto-map-locations
 // OpModuleProcessed auto-map-bindings
 // OpModuleProcessed client vulkan100
 // OpModuleProcessed target-env vulkan1.0
@@ -21,693 +22,712 @@
 // OpModuleProcessed entry-point main
 #line 1
 "
-              25:             String  "float"
-              35:             String  "screenSpaceTessFactor"
-              41:             String  "p0"
-              45:             String  "p1"
-              48:             String  "bool"
-              53:             String  "frustumCheck"
-              62:             String  "midPoint"
-              74:             String  "radius"
-              85:             String  "v0"
-              96:             String  "modelview"
-             101:             String  "lightPos"
-             104:             String  "frustumPlanes"
-             106:             String  "tessellatedEdgeSize"
-             111:             String  "viewportDim"
-             115:             String  "UBO"
-             119:             String  "ubo"
-             121:             String  "int"
-             133:             String  "clip0"
-             154:             String  "clip1"
-             229:             String  "pos"
-             235:             String  "gl_Position"
-             238:             String  "gl_PointSize"
-             241:             String  "gl_CullDistance"
-             245:             String  "gl_PerVertex"
-             251:             String  "gl_in"
-             255:             String  "gl_InvocationID"
-             264:             String  "type.2d.image"
-             265:             String  "@type.2d.image"
-             269:             String  "type.sampled.image"
-             270:             String  "@type.sampled.image"
-             274:             String  "samplerHeight"
-             281:             String  "inUV"
-             300:             String  "i"
-             372:             String  "gl_TessLevelInner"
-             385:             String  "gl_TessLevelOuter"
-             500:             String  "gl_out"
-             514:             String  "outNormal"
-             521:             String  "inNormal"
-             535:             String  "outUV"
+              42:             String  "p0"
+              46:             String  "p1"
+              49:             String  "bool"
+              55:             String  "frustumCheck"
+              58:             String  "main"
+              67:             String  "midPoint"
+              80:             String  "radius"
+              91:             String  "v0"
+             102:             String  "modelview"
+             106:             String  "lightPos"
+             109:             String  "frustumPlanes"
+             111:             String  "tessellatedEdgeSize"
+             116:             String  "viewportDim"
+             120:             String  "UBO"
+             125:             String  "ubo"
+             127:             String  "int"
+             140:             String  "clip0"
+             161:             String  "clip1"
+             238:             String  "pos"
+             244:             String  "gl_Position"
+             247:             String  "gl_PointSize"
+             250:             String  "gl_CullDistance"
+             254:             String  "gl_PerVertex"
+             261:             String  "gl_in"
+             266:             String  "gl_InvocationID"
+             276:             String  "type.2d.image"
+             277:             String  "@type.2d.image"
+             281:             String  "type.sampled.image"
+             282:             String  "@type.sampled.image"
+             287:             String  "samplerHeight"
+             295:             String  "inUV"
+             316:             String  "i"
+             383:             String  "gl_TessLevelInner"
+             398:             String  "gl_TessLevelOuter"
+             513:             String  "gl_out"
+             529:             String  "outNormal"
+             537:             String  "inNormal"
+             554:             String  "outUV"
                               Name 14  "main"
-                              Name 34  "screenSpaceTessFactor(vf4;vf4;"
-                              Name 32  "p0"
-                              Name 33  "p1"
-                              Name 52  "frustumCheck("
-                              Name 60  "midPoint"
-                              Name 72  "radius"
-                              Name 83  "v0"
-                              Name 94  "UBO"
-                              MemberName 94(UBO) 0  "projection"
-                              MemberName 94(UBO) 1  "modelview"
-                              MemberName 94(UBO) 2  "lightPos"
-                              MemberName 94(UBO) 3  "frustumPlanes"
-                              MemberName 94(UBO) 4  "displacementFactor"
-                              MemberName 94(UBO) 5  "tessellationFactor"
-                              MemberName 94(UBO) 6  "viewportDim"
-                              MemberName 94(UBO) 7  "tessellatedEdgeSize"
-                              Name 117  "ubo"
-                              Name 131  "clip0"
-                              Name 152  "clip1"
-                              Name 227  "pos"
-                              Name 233  "gl_PerVertex"
-                              MemberName 233(gl_PerVertex) 0  "gl_Position"
-                              MemberName 233(gl_PerVertex) 1  "gl_PointSize"
-                              MemberName 233(gl_PerVertex) 2  "gl_ClipDistance"
-                              MemberName 233(gl_PerVertex) 3  "gl_CullDistance"
-                              Name 249  "gl_in"
-                              Name 253  "gl_InvocationID"
-                              Name 272  "samplerHeight"
-                              Name 279  "inUV"
-                              Name 298  "i"
-                              Name 370  "gl_TessLevelInner"
-                              Name 383  "gl_TessLevelOuter"
-                              Name 410  "param"
-                              Name 413  "param"
-                              Name 420  "param"
-                              Name 423  "param"
-                              Name 430  "param"
-                              Name 433  "param"
-                              Name 440  "param"
-                              Name 443  "param"
-                              Name 487  "gl_PerVertex"
-                              MemberName 487(gl_PerVertex) 0  "gl_Position"
-                              MemberName 487(gl_PerVertex) 1  "gl_PointSize"
-                              MemberName 487(gl_PerVertex) 2  "gl_ClipDistance"
-                              MemberName 487(gl_PerVertex) 3  "gl_CullDistance"
-                              Name 498  "gl_out"
-                              Name 512  "outNormal"
-                              Name 519  "inNormal"
-                              Name 533  "outUV"
-                              Decorate 90 ArrayStride 16
-                              MemberDecorate 94(UBO) 0 ColMajor
-                              MemberDecorate 94(UBO) 0 Offset 0
-                              MemberDecorate 94(UBO) 0 MatrixStride 16
-                              MemberDecorate 94(UBO) 1 ColMajor
-                              MemberDecorate 94(UBO) 1 Offset 64
-                              MemberDecorate 94(UBO) 1 MatrixStride 16
-                              MemberDecorate 94(UBO) 2 Offset 128
-                              MemberDecorate 94(UBO) 3 Offset 144
-                              MemberDecorate 94(UBO) 4 Offset 240
-                              MemberDecorate 94(UBO) 5 Offset 244
-                              MemberDecorate 94(UBO) 6 Offset 248
-                              MemberDecorate 94(UBO) 7 Offset 256
-                              Decorate 94(UBO) Block
-                              Decorate 117(ubo) DescriptorSet 0
-                              Decorate 117(ubo) Binding 0
-                              MemberDecorate 233(gl_PerVertex) 0 BuiltIn Position
-                              MemberDecorate 233(gl_PerVertex) 1 BuiltIn PointSize
-                              MemberDecorate 233(gl_PerVertex) 2 BuiltIn ClipDistance
-                              MemberDecorate 233(gl_PerVertex) 3 BuiltIn CullDistance
-                              Decorate 233(gl_PerVertex) Block
-                              Decorate 253(gl_InvocationID) BuiltIn InvocationId
-                              Decorate 272(samplerHeight) DescriptorSet 0
-                              Decorate 272(samplerHeight) Binding 1
-                              Decorate 279(inUV) Location 1
-                              Decorate 370(gl_TessLevelInner) Patch
-                              Decorate 370(gl_TessLevelInner) BuiltIn TessLevelInner
-                              Decorate 383(gl_TessLevelOuter) Patch
-                              Decorate 383(gl_TessLevelOuter) BuiltIn TessLevelOuter
-                              MemberDecorate 487(gl_PerVertex) 0 BuiltIn Position
-                              MemberDecorate 487(gl_PerVertex) 1 BuiltIn PointSize
-                              MemberDecorate 487(gl_PerVertex) 2 BuiltIn ClipDistance
-                              MemberDecorate 487(gl_PerVertex) 3 BuiltIn CullDistance
-                              Decorate 487(gl_PerVertex) Block
-                              Decorate 512(outNormal) Location 0
-                              Decorate 519(inNormal) Location 0
-                              Decorate 533(outUV) Location 1
+                              Name 29  "screenSpaceTessFactor(vf4;vf4;"
+                              Name 27  "p0"
+                              Name 28  "p1"
+                              Name 53  "frustumCheck("
+                              Name 65  "midPoint"
+                              Name 78  "radius"
+                              Name 89  "v0"
+                              Name 100  "UBO"
+                              MemberName 100(UBO) 0  "projection"
+                              MemberName 100(UBO) 1  "modelview"
+                              MemberName 100(UBO) 2  "lightPos"
+                              MemberName 100(UBO) 3  "frustumPlanes"
+                              MemberName 100(UBO) 4  "displacementFactor"
+                              MemberName 100(UBO) 5  "tessellationFactor"
+                              MemberName 100(UBO) 6  "viewportDim"
+                              MemberName 100(UBO) 7  "tessellatedEdgeSize"
+                              Name 123  "ubo"
+                              Name 138  "clip0"
+                              Name 159  "clip1"
+                              Name 236  "pos"
+                              Name 242  "gl_PerVertex"
+                              MemberName 242(gl_PerVertex) 0  "gl_Position"
+                              MemberName 242(gl_PerVertex) 1  "gl_PointSize"
+                              MemberName 242(gl_PerVertex) 2  "gl_ClipDistance"
+                              MemberName 242(gl_PerVertex) 3  "gl_CullDistance"
+                              Name 259  "gl_in"
+                              Name 264  "gl_InvocationID"
+                              Name 285  "samplerHeight"
+                              Name 293  "inUV"
+                              Name 314  "i"
+                              Name 381  "gl_TessLevelInner"
+                              Name 396  "gl_TessLevelOuter"
+                              Name 422  "param"
+                              Name 425  "param"
+                              Name 432  "param"
+                              Name 435  "param"
+                              Name 442  "param"
+                              Name 445  "param"
+                              Name 452  "param"
+                              Name 455  "param"
+                              Name 499  "gl_PerVertex"
+                              MemberName 499(gl_PerVertex) 0  "gl_Position"
+                              MemberName 499(gl_PerVertex) 1  "gl_PointSize"
+                              MemberName 499(gl_PerVertex) 2  "gl_ClipDistance"
+                              MemberName 499(gl_PerVertex) 3  "gl_CullDistance"
+                              Name 511  "gl_out"
+                              Name 527  "outNormal"
+                              Name 535  "inNormal"
+                              Name 552  "outUV"
+                              Decorate 96 ArrayStride 16
+                              MemberDecorate 100(UBO) 0 ColMajor
+                              MemberDecorate 100(UBO) 0 Offset 0
+                              MemberDecorate 100(UBO) 0 MatrixStride 16
+                              MemberDecorate 100(UBO) 1 ColMajor
+                              MemberDecorate 100(UBO) 1 Offset 64
+                              MemberDecorate 100(UBO) 1 MatrixStride 16
+                              MemberDecorate 100(UBO) 2 Offset 128
+                              MemberDecorate 100(UBO) 3 Offset 144
+                              MemberDecorate 100(UBO) 4 Offset 240
+                              MemberDecorate 100(UBO) 5 Offset 244
+                              MemberDecorate 100(UBO) 6 Offset 248
+                              MemberDecorate 100(UBO) 7 Offset 256
+                              Decorate 100(UBO) Block
+                              Decorate 123(ubo) DescriptorSet 0
+                              Decorate 123(ubo) Binding 0
+                              MemberDecorate 242(gl_PerVertex) 0 BuiltIn Position
+                              MemberDecorate 242(gl_PerVertex) 1 BuiltIn PointSize
+                              MemberDecorate 242(gl_PerVertex) 2 BuiltIn ClipDistance
+                              MemberDecorate 242(gl_PerVertex) 3 BuiltIn CullDistance
+                              Decorate 242(gl_PerVertex) Block
+                              Decorate 264(gl_InvocationID) BuiltIn InvocationId
+                              Decorate 285(samplerHeight) DescriptorSet 0
+                              Decorate 285(samplerHeight) Binding 1
+                              Decorate 293(inUV) Location 1
+                              Decorate 381(gl_TessLevelInner) Patch
+                              Decorate 381(gl_TessLevelInner) BuiltIn TessLevelInner
+                              Decorate 396(gl_TessLevelOuter) Patch
+                              Decorate 396(gl_TessLevelOuter) BuiltIn TessLevelOuter
+                              MemberDecorate 499(gl_PerVertex) 0 BuiltIn Position
+                              MemberDecorate 499(gl_PerVertex) 1 BuiltIn PointSize
+                              MemberDecorate 499(gl_PerVertex) 2 BuiltIn ClipDistance
+                              MemberDecorate 499(gl_PerVertex) 3 BuiltIn CullDistance
+                              Decorate 499(gl_PerVertex) Block
+                              Decorate 527(outNormal) Location 0
+                              Decorate 535(inNormal) Location 0
+                              Decorate 552(outUV) Location 1
                4:             TypeVoid
                5:             TypeFunction 4
                7:             TypeInt 32 0
               10:      7(int) Constant 32
               11:      7(int) Constant 6
               12:      7(int) Constant 0
-               8:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 9 10 11 12
+               9:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 8 10 11 12
               13:      7(int) Constant 3
                6:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 4
-              17:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 1 18
-              20:      7(int) Constant 1
-              21:      7(int) Constant 4
-              22:      7(int) Constant 2
-              19:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 20 21 17 22
-              16:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 15 6 17 12 12 19 15 13 12
-              24:             TypeFloat 32
-              26:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 25 10 13 12
-              27:             TypeVector 24(float) 4
-              28:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 26 21
-              29:             TypePointer Function 27(fvec4)
-              30:             TypeFunction 24(float) 29(ptr) 29(ptr)
-              31:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 26 28 28
-              36:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 35 31 17 12 12 19 35 13 12
-              40:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 41 28 17 12 12 36 21 20
-              43:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
-              44:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 45 28 17 12 12 36 21 22
-              47:             TypeBool
-              49:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 48 10 22 12
-              50:             TypeFunction 47(bool)
-              51:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 49
-              54:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 53 51 17 12 12 19 53 13 12
-              59:      7(int) Constant 54
-              61:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 62 28 17 59 12 36 21
-              64:   24(float) Constant 1056964608
-              70:      7(int) Constant 56
-              71:             TypePointer Function 24(float)
-              73:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 74 26 17 70 12 36 21
-              79:   24(float) Constant 1073741824
-              82:      7(int) Constant 59
-              84:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 85 28 17 82 12 36 21
-              87:             TypeMatrix 27(fvec4) 4
-              89:    47(bool) ConstantTrue
-              88:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 28 21 89
-              90:             TypeArray 27(fvec4) 11
-              91:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 28 11
-              92:             TypeVector 24(float) 2
-              93:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 26 22
-         94(UBO):             TypeStruct 87 87 27(fvec4) 90 24(float) 24(float) 92(fvec2) 24(float)
-              97:      7(int) Constant 30
-              98:      7(int) Constant 7
-              95:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 96 88 17 97 98 12 12 13
-              99:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 96 88 17 97 98 12 12 13
-             102:      7(int) Constant 31
-             100:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 101 28 17 102 98 12 12 13
-             103:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 104 91 17 10 98 12 12 13
-             107:      7(int) Constant 36
-             108:      7(int) Constant 8
-             105:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 106 26 17 107 108 12 12 13
-             109:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 106 26 17 107 108 12 12 13
-             112:      7(int) Constant 35
-             110:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 111 93 17 112 98 12 12 13
-             113:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 106 26 17 107 108 12 12 13
-             114:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 115 20 17 82 12 19 115 12 13 95 99 100 103 105 109 110 113
-             116:             TypePointer Uniform 94(UBO)
-        117(ubo):    116(ptr) Variable Uniform
-             118:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 119 114 17 82 12 19 119 117(ubo) 108
-             120:             TypeInt 32 1
-             122:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 121 10 21 12
-             123:    120(int) Constant 1
-             124:             TypePointer Uniform 87
-             130:      7(int) Constant 62
-             132:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 133 28 17 130 12 36 21
-             135:    120(int) Constant 0
-             140:             TypeVector 24(float) 3
-             141:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 26 13
-             142:   24(float) Constant 0
-             143:  140(fvec3) ConstantComposite 142 142 142
-             151:      7(int) Constant 63
-             153:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 154 28 17 151 12 36 21
-             167:      7(int) Constant 66
-             174:      7(int) Constant 67
-             181:      7(int) Constant 70
-             182:    120(int) Constant 6
-             183:             TypePointer Uniform 92(fvec2)
-             194:      7(int) Constant 71
-             205:      7(int) Constant 76
-             209:    120(int) Constant 7
-             210:             TypePointer Uniform 24(float)
-             214:    120(int) Constant 5
-             218:   24(float) Constant 1065353216
-             219:   24(float) Constant 1115684864
-             226:      7(int) Constant 85
-             228:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 229 28 17 226 12 54 21
-             231:             TypeArray 24(float) 20
-             232:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 26 20
-233(gl_PerVertex):             TypeStruct 27(fvec4) 24(float) 231 231
-             236:      7(int) Constant 1756
-             234:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 235 28 17 20 236 12 12 13
-             239:      7(int) Constant 1774
-             237:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 238 26 17 20 239 12 12 13
-             242:      7(int) Constant 1817
-             240:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 241 232 17 20 242 12 12 13
-             243:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 241 232 17 20 242 12 12 13
-             244:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 245 20 17 226 12 19 245 12 13 234 237 240 243
-             246:             TypeArray 233(gl_PerVertex) 10
-             247:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 244 10
-             248:             TypePointer Input 246
-      249(gl_in):    248(ptr) Variable Input
-             250:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 251 247 17 226 12 19 251 249(gl_in) 108
-             252:             TypePointer Input 120(int)
-253(gl_InvocationID):    252(ptr) Variable Input
-             254:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 255 122 17 226 12 19 255 253(gl_InvocationID) 108
-             257:             TypePointer Input 27(fvec4)
-             261:      7(int) Constant 86
-             262:             TypeImage 24(float) 2D sampled format:Unknown
-             266:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 0(DebugInfoNone)
-             263:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 264 12 17 261 12 19 265 266 13
-             267:             TypeSampledImage 262
-             268:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 269 12 17 261 12 19 270 266 13
-             271:             TypePointer UniformConstant 267
-272(samplerHeight):    271(ptr) Variable UniformConstant
-             273:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 274 268 17 261 12 19 274 272(samplerHeight) 108
-             276:             TypeArray 92(fvec2) 10
-             277:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 93 10
-             278:             TypePointer Input 276
-       279(inUV):    278(ptr) Variable Input
-             280:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 281 277 17 261 12 19 281 279(inUV) 108
-             282:             TypePointer Input 92(fvec2)
-             287:    120(int) Constant 4
-             296:      7(int) Constant 89
-             297:             TypePointer Function 120(int)
-             299:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 300 122 17 296 12 54 21
-             312:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 48 10 22 12
-             316:      7(int) Constant 90
-             318:    120(int) Constant 3
-             320:             TypePointer Uniform 27(fvec4)
-             324:   24(float) Constant 1090519040
-             326:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 48 10 22 12
-             330:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 48 10 22 12
-             331:    47(bool) ConstantFalse
-             334:      7(int) Constant 92
-             340:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 48 10 22 12
-             343:      7(int) Constant 95
-             349:      7(int) Constant 100
-             351:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 48 10 22 12
-             357:      7(int) Constant 102
-             359:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 48 10 22 12
-             360:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 48 10 22 12
-             366:      7(int) Constant 104
-             367:             TypeArray 24(float) 22
-             368:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 26 22
-             369:             TypePointer Output 367
-370(gl_TessLevelInner):    369(ptr) Variable Output
-             371:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 372 368 17 366 12 19 372 370(gl_TessLevelInner) 108
-             373:             TypePointer Output 24(float)
-             376:      7(int) Constant 105
-             379:      7(int) Constant 106
-             380:             TypeArray 24(float) 21
-             381:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 26 21
-             382:             TypePointer Output 380
-383(gl_TessLevelOuter):    382(ptr) Variable Output
-             384:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 385 381 17 379 12 19 385 383(gl_TessLevelOuter) 108
-             388:      7(int) Constant 107
-             391:      7(int) Constant 108
-             392:    120(int) Constant 2
-             395:      7(int) Constant 109
-             400:      7(int) Constant 113
-             403:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 48 10 22 12
-             409:      7(int) Constant 115
-             419:      7(int) Constant 116
-             429:      7(int) Constant 117
-             439:      7(int) Constant 118
-             449:      7(int) Constant 119
-             457:      7(int) Constant 120
-             467:      7(int) Constant 126
-             470:      7(int) Constant 127
-             473:      7(int) Constant 128
-             476:      7(int) Constant 129
-             479:      7(int) Constant 130
-             482:      7(int) Constant 131
-             486:      7(int) Constant 137
-487(gl_PerVertex):             TypeStruct 27(fvec4) 24(float) 231 231
-             489:      7(int) Constant 110
-             488:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 235 28 17 20 489 12 12 13
-             490:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 238 26 17 20 473 12 12 13
-             492:      7(int) Constant 171
-             491:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 241 232 17 20 492 12 12 13
-             493:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 241 232 17 20 492 12 12 13
-             494:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 245 20 17 486 12 19 245 12 13 488 490 491 493
-             495:             TypeArray 487(gl_PerVertex) 21
-             496:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 494 21
-             497:             TypePointer Output 495
-     498(gl_out):    497(ptr) Variable Output
-             499:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 500 496 17 486 12 19 500 498(gl_out) 108
-             505:             TypePointer Output 27(fvec4)
-             508:      7(int) Constant 138
-             509:             TypeArray 140(fvec3) 21
-             510:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 141 21
-             511:             TypePointer Output 509
-  512(outNormal):    511(ptr) Variable Output
-             513:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 514 510 17 508 12 19 514 512(outNormal) 108
-             516:             TypeArray 140(fvec3) 10
-             517:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 141 10
-             518:             TypePointer Input 516
-   519(inNormal):    518(ptr) Variable Input
-             520:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 521 517 17 508 12 19 521 519(inNormal) 108
-             523:             TypePointer Input 140(fvec3)
-             526:             TypePointer Output 140(fvec3)
-             529:      7(int) Constant 139
-             530:             TypeArray 92(fvec2) 21
-             531:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 93 21
-             532:             TypePointer Output 530
-      533(outUV):    532(ptr) Variable Output
-             534:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 535 531 17 529 12 19 535 533(outUV) 108
-             540:             TypePointer Output 92(fvec2)
+              16:             TypeFloat 32
+              18:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 17 10 13 12
+              19:             TypeVector 16(float) 4
+              20:      7(int) Constant 4
+              21:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 18 20
+              22:             TypePointer Function 19(fvec4)
+              23:      7(int) Constant 7
+              24:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 21 23 12
+              25:             TypeFunction 16(float) 22(ptr) 22(ptr)
+              26:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 18 21 21
+              33:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 1 34
+              35:      7(int) Constant 51
+              37:      7(int) Constant 1
+              38:      7(int) Constant 2
+              36:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 37 20 33 38
+              32:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 31 26 33 35 12 36 31 13 35
+              41:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 42 21 33 35 12 32 20 37
+              44:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
+              45:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 46 21 33 35 12 32 20 38
+              48:             TypeBool
+              50:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 49 10 38 12
+              51:             TypeFunction 48(bool)
+              52:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 50
+              57:      7(int) Constant 81
+              56:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 55 52 33 57 12 36 55 13 57
+              60:      7(int) Constant 98
+              59:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 58 6 33 60 12 36 58 13 60
+              64:      7(int) Constant 54
+              66:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 67 21 33 64 12 32 20
+              69:   16(float) Constant 1056964608
+              75:      7(int) Constant 56
+              76:             TypePointer Function 16(float)
+              77:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 18 23 12
+              79:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 80 18 33 75 12 32 20
+              85:   16(float) Constant 1073741824
+              88:      7(int) Constant 59
+              90:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 91 21 33 88 12 32 20
+              93:             TypeMatrix 19(fvec4) 4
+              95:    48(bool) ConstantTrue
+              94:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 21 20 95
+              96:             TypeArray 19(fvec4) 11
+              97:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 21 11
+              98:             TypeVector 16(float) 2
+              99:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 18 38
+        100(UBO):             TypeStruct 93 93 19(fvec4) 96 16(float) 16(float) 98(fvec2) 16(float)
+             103:      7(int) Constant 30
+             101:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 102 94 33 103 23 12 12 13
+             104:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 102 94 33 103 23 12 12 13
+             107:      7(int) Constant 31
+             105:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 106 21 33 107 23 12 12 13
+             108:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 109 97 33 10 23 12 12 13
+             112:      7(int) Constant 36
+             113:      7(int) Constant 8
+             110:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 111 18 33 112 113 12 12 13
+             114:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 111 18 33 112 113 12 12 13
+             117:      7(int) Constant 35
+             115:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 116 99 33 117 23 12 12 13
+             118:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 111 18 33 112 113 12 12 13
+             119:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 120 37 33 88 12 36 120 12 13 101 104 105 108 110 114 115 118
+             121:             TypePointer Uniform 100(UBO)
+             122:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 119 38 12
+        123(ubo):    121(ptr) Variable Uniform
+             124:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 125 119 33 88 12 36 125 123(ubo) 113
+             126:             TypeInt 32 1
+             128:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 127 10 20 12
+             129:    126(int) Constant 1
+             130:             TypePointer Uniform 93
+             131:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 94 38 12
+             137:      7(int) Constant 62
+             139:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 140 21 33 137 12 32 20
+             142:    126(int) Constant 0
+             147:             TypeVector 16(float) 3
+             148:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 18 13
+             149:   16(float) Constant 0
+             150:  147(fvec3) ConstantComposite 149 149 149
+             158:      7(int) Constant 63
+             160:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 161 21 33 158 12 32 20
+             174:      7(int) Constant 66
+             181:      7(int) Constant 67
+             188:      7(int) Constant 70
+             189:    126(int) Constant 6
+             190:             TypePointer Uniform 98(fvec2)
+             191:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 99 38 12
+             202:      7(int) Constant 71
+             213:      7(int) Constant 76
+             217:    126(int) Constant 7
+             218:             TypePointer Uniform 16(float)
+             219:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 18 38 12
+             223:    126(int) Constant 5
+             227:   16(float) Constant 1065353216
+             228:   16(float) Constant 1115684864
+             235:      7(int) Constant 85
+             237:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 238 21 33 235 12 56 20
+             240:             TypeArray 16(float) 37
+             241:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 18 37
+242(gl_PerVertex):             TypeStruct 19(fvec4) 16(float) 240 240
+             245:      7(int) Constant 1756
+             243:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 244 21 33 37 245 12 12 13
+             248:      7(int) Constant 1774
+             246:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 247 18 33 37 248 12 12 13
+             251:      7(int) Constant 1817
+             249:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 250 241 33 37 251 12 12 13
+             252:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 250 241 33 37 251 12 12 13
+             253:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 254 37 33 235 12 36 254 12 13 243 246 249 252
+             255:             TypeArray 242(gl_PerVertex) 10
+             256:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 253 10
+             257:             TypePointer Input 255
+             258:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 256 37 12
+      259(gl_in):    257(ptr) Variable Input
+             260:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 261 256 33 235 12 36 261 259(gl_in) 113
+             262:             TypePointer Input 126(int)
+             263:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 128 37 12
+264(gl_InvocationID):    262(ptr) Variable Input
+             265:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 266 128 33 235 12 36 266 264(gl_InvocationID) 113
+             268:             TypePointer Input 19(fvec4)
+             269:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 21 37 12
+             273:      7(int) Constant 86
+             274:             TypeImage 16(float) 2D sampled format:Unknown
+             278:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 0(DebugInfoNone)
+             275:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 276 12 33 273 12 36 277 278 13
+             279:             TypeSampledImage 274
+             280:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 281 12 33 273 12 36 282 278 13
+             283:             TypePointer UniformConstant 279
+             284:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 280 12 12
+285(samplerHeight):    283(ptr) Variable UniformConstant
+             286:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 287 280 33 273 12 36 287 285(samplerHeight) 113
+             289:             TypeArray 98(fvec2) 10
+             290:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 99 10
+             291:             TypePointer Input 289
+             292:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 290 37 12
+       293(inUV):    291(ptr) Variable Input
+             294:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 295 290 33 273 12 36 295 293(inUV) 113
+             296:             TypePointer Input 98(fvec2)
+             297:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 99 37 12
+             302:    126(int) Constant 4
+             311:      7(int) Constant 89
+             312:             TypePointer Function 126(int)
+             313:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 128 23 12
+             315:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 316 128 33 311 12 56 20
+             331:      7(int) Constant 90
+             333:    126(int) Constant 3
+             335:             TypePointer Uniform 19(fvec4)
+             336:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 21 38 12
+             340:   16(float) Constant 1090519040
+             345:    48(bool) ConstantFalse
+             348:      7(int) Constant 92
+             356:      7(int) Constant 95
+             362:      7(int) Constant 100
+             369:      7(int) Constant 102
+             376:      7(int) Constant 104
+             377:             TypeArray 16(float) 38
+             378:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 18 38
+             379:             TypePointer Output 377
+             380:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 378 13 12
+381(gl_TessLevelInner):    379(ptr) Variable Output
+             382:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 383 378 33 376 12 36 383 381(gl_TessLevelInner) 113
+             384:             TypePointer Output 16(float)
+             385:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 18 13 12
+             388:      7(int) Constant 105
+             391:      7(int) Constant 106
+             392:             TypeArray 16(float) 20
+             393:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 18 20
+             394:             TypePointer Output 392
+             395:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 393 13 12
+396(gl_TessLevelOuter):    394(ptr) Variable Output
+             397:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 398 393 33 391 12 36 398 396(gl_TessLevelOuter) 113
+             401:      7(int) Constant 107
+             404:      7(int) Constant 108
+             405:    126(int) Constant 2
+             408:      7(int) Constant 109
+             413:      7(int) Constant 113
+             421:      7(int) Constant 115
+             431:      7(int) Constant 116
+             441:      7(int) Constant 117
+             451:      7(int) Constant 118
+             461:      7(int) Constant 119
+             469:      7(int) Constant 120
+             479:      7(int) Constant 126
+             482:      7(int) Constant 127
+             485:      7(int) Constant 128
+             488:      7(int) Constant 129
+             491:      7(int) Constant 130
+             494:      7(int) Constant 131
+             498:      7(int) Constant 137
+499(gl_PerVertex):             TypeStruct 19(fvec4) 16(float) 240 240
+             501:      7(int) Constant 110
+             500:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 244 21 33 37 501 12 12 13
+             502:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 247 18 33 37 485 12 12 13
+             504:      7(int) Constant 171
+             503:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 250 241 33 37 504 12 12 13
+             505:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 250 241 33 37 504 12 12 13
+             506:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 254 37 33 498 12 36 254 12 13 500 502 503 505
+             507:             TypeArray 499(gl_PerVertex) 20
+             508:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 506 20
+             509:             TypePointer Output 507
+             510:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 508 13 12
+     511(gl_out):    509(ptr) Variable Output
+             512:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 513 508 33 498 12 36 513 511(gl_out) 113
+             518:             TypePointer Output 19(fvec4)
+             519:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 21 13 12
+             522:      7(int) Constant 138
+             523:             TypeArray 147(fvec3) 20
+             524:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 148 20
+             525:             TypePointer Output 523
+             526:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 524 13 12
+  527(outNormal):    525(ptr) Variable Output
+             528:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 529 524 33 522 12 36 529 527(outNormal) 113
+             531:             TypeArray 147(fvec3) 10
+             532:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 148 10
+             533:             TypePointer Input 531
+             534:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 532 37 12
+   535(inNormal):    533(ptr) Variable Input
+             536:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 537 532 33 522 12 36 537 535(inNormal) 113
+             539:             TypePointer Input 147(fvec3)
+             540:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 148 37 12
+             543:             TypePointer Output 147(fvec3)
+             544:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 148 13 12
+             547:      7(int) Constant 139
+             548:             TypeArray 98(fvec2) 20
+             549:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 99 20
+             550:             TypePointer Output 548
+             551:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 549 13 12
+      552(outUV):    550(ptr) Variable Output
+             553:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 554 549 33 547 12 36 554 552(outUV) 113
+             559:             TypePointer Output 98(fvec2)
+             560:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 99 13 12
                               Line 1 98 11
         14(main):           4 Function None 5
-              23:             Label
-      410(param):     29(ptr) Variable Function
-      413(param):     29(ptr) Variable Function
-      420(param):     29(ptr) Variable Function
-      423(param):     29(ptr) Variable Function
-      430(param):     29(ptr) Variable Function
-      433(param):     29(ptr) Variable Function
-      440(param):     29(ptr) Variable Function
-      443(param):     29(ptr) Variable Function
-             346:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 16 14(main)
-             347:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             348:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 349 349 12 12
-             350:    120(int) Load 253(gl_InvocationID)
-             352:    47(bool) IEqual 350 135
-                              SelectionMerge 354 None
-                              BranchConditional 352 353 354
-             353:               Label
-             355:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             356:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 357 357 12 12
-             358:    47(bool)   FunctionCall 52(frustumCheck()
-             361:    47(bool)   LogicalNot 358
-                                SelectionMerge 363 None
-                                BranchConditional 361 362 397
-             362:                 Label
-             364:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             365:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 366 366 12 12
-             374:    373(ptr)     AccessChain 370(gl_TessLevelInner) 135
-                                  Store 374 142
-             375:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 376 376 12 12
-             377:    373(ptr)     AccessChain 370(gl_TessLevelInner) 123
-                                  Store 377 142
-             378:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 379 379 12 12
-             386:    373(ptr)     AccessChain 383(gl_TessLevelOuter) 135
-                                  Store 386 142
-             387:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 388 388 12 12
-             389:    373(ptr)     AccessChain 383(gl_TessLevelOuter) 123
-                                  Store 389 142
-             390:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 391 391 12 12
-             393:    373(ptr)     AccessChain 383(gl_TessLevelOuter) 392
-                                  Store 393 142
-             394:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 395 395 12 12
-             396:    373(ptr)     AccessChain 383(gl_TessLevelOuter) 318
-                                  Store 396 142
-                                  Branch 363
-             397:                 Label
-             398:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             399:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 400 400 12 12
-             401:    210(ptr)     AccessChain 117(ubo) 214
-             402:   24(float)     Load 401
-             404:    47(bool)     FOrdGreaterThan 402 142
-                                  SelectionMerge 406 None
-                                  BranchConditional 404 405 464
-             405:                   Label
-             407:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             408:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 409 409 12 12
-             411:    257(ptr)       AccessChain 249(gl_in) 318 135
-             412:   27(fvec4)       Load 411
-                                    Store 410(param) 412
-             414:    257(ptr)       AccessChain 249(gl_in) 135 135
-             415:   27(fvec4)       Load 414
-                                    Store 413(param) 415
-             416:   24(float)       FunctionCall 34(screenSpaceTessFactor(vf4;vf4;) 410(param) 413(param)
-             417:    373(ptr)       AccessChain 383(gl_TessLevelOuter) 135
-                                    Store 417 416
-             418:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 419 419 12 12
-             421:    257(ptr)       AccessChain 249(gl_in) 135 135
-             422:   27(fvec4)       Load 421
-                                    Store 420(param) 422
-             424:    257(ptr)       AccessChain 249(gl_in) 123 135
-             425:   27(fvec4)       Load 424
-                                    Store 423(param) 425
-             426:   24(float)       FunctionCall 34(screenSpaceTessFactor(vf4;vf4;) 420(param) 423(param)
-             427:    373(ptr)       AccessChain 383(gl_TessLevelOuter) 123
-                                    Store 427 426
-             428:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 429 429 12 12
-             431:    257(ptr)       AccessChain 249(gl_in) 123 135
-             432:   27(fvec4)       Load 431
-                                    Store 430(param) 432
-             434:    257(ptr)       AccessChain 249(gl_in) 392 135
-             435:   27(fvec4)       Load 434
-                                    Store 433(param) 435
-             436:   24(float)       FunctionCall 34(screenSpaceTessFactor(vf4;vf4;) 430(param) 433(param)
-             437:    373(ptr)       AccessChain 383(gl_TessLevelOuter) 392
-                                    Store 437 436
-             438:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 439 439 12 12
-             441:    257(ptr)       AccessChain 249(gl_in) 392 135
-             442:   27(fvec4)       Load 441
-                                    Store 440(param) 442
-             444:    257(ptr)       AccessChain 249(gl_in) 318 135
-             445:   27(fvec4)       Load 444
-                                    Store 443(param) 445
-             446:   24(float)       FunctionCall 34(screenSpaceTessFactor(vf4;vf4;) 440(param) 443(param)
-             447:    373(ptr)       AccessChain 383(gl_TessLevelOuter) 318
-                                    Store 447 446
-             448:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 449 449 12 12
-             450:    373(ptr)       AccessChain 383(gl_TessLevelOuter) 135
-             451:   24(float)       Load 450
-             452:    373(ptr)       AccessChain 383(gl_TessLevelOuter) 318
-             453:   24(float)       Load 452
-             454:   24(float)       ExtInst 3(GLSL.std.450) 46(FMix) 451 453 64
-             455:    373(ptr)       AccessChain 370(gl_TessLevelInner) 135
-                                    Store 455 454
-             456:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 457 457 12 12
-             458:    373(ptr)       AccessChain 383(gl_TessLevelOuter) 392
-             459:   24(float)       Load 458
-             460:    373(ptr)       AccessChain 383(gl_TessLevelOuter) 123
-             461:   24(float)       Load 460
-             462:   24(float)       ExtInst 3(GLSL.std.450) 46(FMix) 459 461 64
-             463:    373(ptr)       AccessChain 370(gl_TessLevelInner) 123
-                                    Store 463 462
-                                    Branch 406
-             464:                   Label
-             465:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             466:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 467 467 12 12
-             468:    373(ptr)       AccessChain 370(gl_TessLevelInner) 135
-                                    Store 468 218
-             469:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 470 470 12 12
-             471:    373(ptr)       AccessChain 370(gl_TessLevelInner) 123
-                                    Store 471 218
-             472:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 473 473 12 12
-             474:    373(ptr)       AccessChain 383(gl_TessLevelOuter) 135
-                                    Store 474 218
-             475:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 476 476 12 12
-             477:    373(ptr)       AccessChain 383(gl_TessLevelOuter) 123
-                                    Store 477 218
-             478:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 479 479 12 12
-             480:    373(ptr)       AccessChain 383(gl_TessLevelOuter) 392
-                                    Store 480 218
-             481:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 482 482 12 12
-             483:    373(ptr)       AccessChain 383(gl_TessLevelOuter) 318
-                                    Store 483 218
-                                    Branch 406
-             406:                 Label
-                                  Branch 363
-             363:               Label
-                                Branch 354
-             354:             Label
-             484:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-             485:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 486 486 12 12
-             501:    120(int) Load 253(gl_InvocationID)
-             502:    120(int) Load 253(gl_InvocationID)
-             503:    257(ptr) AccessChain 249(gl_in) 502 135
-             504:   27(fvec4) Load 503
-             506:    505(ptr) AccessChain 498(gl_out) 501 135
-                              Store 506 504
-             507:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 508 508 12 12
-             515:    120(int) Load 253(gl_InvocationID)
-             522:    120(int) Load 253(gl_InvocationID)
-             524:    523(ptr) AccessChain 519(inNormal) 522
-             525:  140(fvec3) Load 524
-             527:    526(ptr) AccessChain 512(outNormal) 515
-                              Store 527 525
-             528:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 529 529 12 12
-             536:    120(int) Load 253(gl_InvocationID)
-             537:    120(int) Load 253(gl_InvocationID)
-             538:    282(ptr) AccessChain 279(inUV) 537
-             539:   92(fvec2) Load 538
-             541:    540(ptr) AccessChain 533(outUV) 536
-                              Store 541 539
+              15:             Label
+      422(param):     22(ptr) Variable Function
+      425(param):     22(ptr) Variable Function
+      432(param):     22(ptr) Variable Function
+      435(param):     22(ptr) Variable Function
+      442(param):     22(ptr) Variable Function
+      445(param):     22(ptr) Variable Function
+      452(param):     22(ptr) Variable Function
+      455(param):     22(ptr) Variable Function
+             359:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 59 14(main)
+             360:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59
+             361:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 362 362 12 12
+             363:    126(int) Load 264(gl_InvocationID)
+             364:    48(bool) IEqual 363 142
+                              SelectionMerge 366 None
+                              BranchConditional 364 365 366
+             365:               Label
+             367:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59
+             368:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 369 369 12 12
+             370:    48(bool)   FunctionCall 53(frustumCheck()
+             371:    48(bool)   LogicalNot 370
+                                SelectionMerge 373 None
+                                BranchConditional 371 372 410
+             372:                 Label
+             374:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59
+             375:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 376 376 12 12
+             386:    384(ptr)     AccessChain 381(gl_TessLevelInner) 142
+                                  Store 386 149
+             387:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 388 388 12 12
+             389:    384(ptr)     AccessChain 381(gl_TessLevelInner) 129
+                                  Store 389 149
+             390:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 391 391 12 12
+             399:    384(ptr)     AccessChain 396(gl_TessLevelOuter) 142
+                                  Store 399 149
+             400:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 401 401 12 12
+             402:    384(ptr)     AccessChain 396(gl_TessLevelOuter) 129
+                                  Store 402 149
+             403:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 404 404 12 12
+             406:    384(ptr)     AccessChain 396(gl_TessLevelOuter) 405
+                                  Store 406 149
+             407:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 408 408 12 12
+             409:    384(ptr)     AccessChain 396(gl_TessLevelOuter) 333
+                                  Store 409 149
+                                  Branch 373
+             410:                 Label
+             411:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59
+             412:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 413 413 12 12
+             414:    218(ptr)     AccessChain 123(ubo) 223
+             415:   16(float)     Load 414
+             416:    48(bool)     FOrdGreaterThan 415 149
+                                  SelectionMerge 418 None
+                                  BranchConditional 416 417 476
+             417:                   Label
+             419:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59
+             420:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 421 421 12 12
+             423:    268(ptr)       AccessChain 259(gl_in) 333 142
+             424:   19(fvec4)       Load 423
+                                    Store 422(param) 424
+             426:    268(ptr)       AccessChain 259(gl_in) 142 142
+             427:   19(fvec4)       Load 426
+                                    Store 425(param) 427
+             428:   16(float)       FunctionCall 29(screenSpaceTessFactor(vf4;vf4;) 422(param) 425(param)
+             429:    384(ptr)       AccessChain 396(gl_TessLevelOuter) 142
+                                    Store 429 428
+             430:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 431 431 12 12
+             433:    268(ptr)       AccessChain 259(gl_in) 142 142
+             434:   19(fvec4)       Load 433
+                                    Store 432(param) 434
+             436:    268(ptr)       AccessChain 259(gl_in) 129 142
+             437:   19(fvec4)       Load 436
+                                    Store 435(param) 437
+             438:   16(float)       FunctionCall 29(screenSpaceTessFactor(vf4;vf4;) 432(param) 435(param)
+             439:    384(ptr)       AccessChain 396(gl_TessLevelOuter) 129
+                                    Store 439 438
+             440:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 441 441 12 12
+             443:    268(ptr)       AccessChain 259(gl_in) 129 142
+             444:   19(fvec4)       Load 443
+                                    Store 442(param) 444
+             446:    268(ptr)       AccessChain 259(gl_in) 405 142
+             447:   19(fvec4)       Load 446
+                                    Store 445(param) 447
+             448:   16(float)       FunctionCall 29(screenSpaceTessFactor(vf4;vf4;) 442(param) 445(param)
+             449:    384(ptr)       AccessChain 396(gl_TessLevelOuter) 405
+                                    Store 449 448
+             450:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 451 451 12 12
+             453:    268(ptr)       AccessChain 259(gl_in) 405 142
+             454:   19(fvec4)       Load 453
+                                    Store 452(param) 454
+             456:    268(ptr)       AccessChain 259(gl_in) 333 142
+             457:   19(fvec4)       Load 456
+                                    Store 455(param) 457
+             458:   16(float)       FunctionCall 29(screenSpaceTessFactor(vf4;vf4;) 452(param) 455(param)
+             459:    384(ptr)       AccessChain 396(gl_TessLevelOuter) 333
+                                    Store 459 458
+             460:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 461 461 12 12
+             462:    384(ptr)       AccessChain 396(gl_TessLevelOuter) 142
+             463:   16(float)       Load 462
+             464:    384(ptr)       AccessChain 396(gl_TessLevelOuter) 333
+             465:   16(float)       Load 464
+             466:   16(float)       ExtInst 3(GLSL.std.450) 46(FMix) 463 465 69
+             467:    384(ptr)       AccessChain 381(gl_TessLevelInner) 142
+                                    Store 467 466
+             468:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 469 469 12 12
+             470:    384(ptr)       AccessChain 396(gl_TessLevelOuter) 405
+             471:   16(float)       Load 470
+             472:    384(ptr)       AccessChain 396(gl_TessLevelOuter) 129
+             473:   16(float)       Load 472
+             474:   16(float)       ExtInst 3(GLSL.std.450) 46(FMix) 471 473 69
+             475:    384(ptr)       AccessChain 381(gl_TessLevelInner) 129
+                                    Store 475 474
+                                    Branch 418
+             476:                   Label
+             477:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59
+             478:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 479 479 12 12
+             480:    384(ptr)       AccessChain 381(gl_TessLevelInner) 142
+                                    Store 480 227
+             481:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 482 482 12 12
+             483:    384(ptr)       AccessChain 381(gl_TessLevelInner) 129
+                                    Store 483 227
+             484:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 485 485 12 12
+             486:    384(ptr)       AccessChain 396(gl_TessLevelOuter) 142
+                                    Store 486 227
+             487:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 488 488 12 12
+             489:    384(ptr)       AccessChain 396(gl_TessLevelOuter) 129
+                                    Store 489 227
+             490:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 491 491 12 12
+             492:    384(ptr)       AccessChain 396(gl_TessLevelOuter) 405
+                                    Store 492 227
+             493:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 494 494 12 12
+             495:    384(ptr)       AccessChain 396(gl_TessLevelOuter) 333
+                                    Store 495 227
+                                    Branch 418
+             418:                 Label
+                                  Branch 373
+             373:               Label
+                                Branch 366
+             366:             Label
+             496:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59
+             497:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 498 498 12 12
+             514:    126(int) Load 264(gl_InvocationID)
+             515:    126(int) Load 264(gl_InvocationID)
+             516:    268(ptr) AccessChain 259(gl_in) 515 142
+             517:   19(fvec4) Load 516
+             520:    518(ptr) AccessChain 511(gl_out) 514 142
+                              Store 520 517
+             521:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 522 522 12 12
+             530:    126(int) Load 264(gl_InvocationID)
+             538:    126(int) Load 264(gl_InvocationID)
+             541:    539(ptr) AccessChain 535(inNormal) 538
+             542:  147(fvec3) Load 541
+             545:    543(ptr) AccessChain 527(outNormal) 530
+                              Store 545 542
+             546:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 547 547 12 12
+             555:    126(int) Load 264(gl_InvocationID)
+             556:    126(int) Load 264(gl_InvocationID)
+             557:    296(ptr) AccessChain 293(inUV) 556
+             558:   98(fvec2) Load 557
+             561:    559(ptr) AccessChain 552(outUV) 555
+                              Store 561 558
                               Return
                               FunctionEnd
                               Line 1 51 45
-34(screenSpaceTessFactor(vf4;vf4;):   24(float) Function None 30
-          32(p0):     29(ptr) FunctionParameter
-          33(p1):     29(ptr) FunctionParameter
-              37:             Label
-    60(midPoint):     29(ptr) Variable Function
-      72(radius):     71(ptr) Variable Function
-          83(v0):     29(ptr) Variable Function
-      131(clip0):     29(ptr) Variable Function
-      152(clip1):     29(ptr) Variable Function
-              38:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 36
-              39:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 12 12 12 12
-              42:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 40 32(p0) 43
-              46:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 44 33(p1) 43
-              56:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 36 34(screenSpaceTessFactor(vf4;vf4;)
-              57:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 36
-              58:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 59 59 12 12
-              63:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 61 60(midPoint) 43
-              65:   27(fvec4) Load 32(p0)
-              66:   27(fvec4) Load 33(p1)
-              67:   27(fvec4) FAdd 65 66
-              68:   27(fvec4) VectorTimesScalar 67 64
-                              Store 60(midPoint) 68
-              69:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 70 70 12 12
-              75:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 73 72(radius) 43
-              76:   27(fvec4) Load 32(p0)
-              77:   27(fvec4) Load 33(p1)
-              78:   24(float) ExtInst 3(GLSL.std.450) 67(Distance) 76 77
-              80:   24(float) FDiv 78 79
-                              Store 72(radius) 80
-              81:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 82 82 12 12
-              86:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 84 83(v0) 43
-             125:    124(ptr) AccessChain 117(ubo) 123
-             126:          87 Load 125
-             127:   27(fvec4) Load 60(midPoint)
-             128:   27(fvec4) MatrixTimesVector 126 127
-                              Store 83(v0) 128
-             129:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 130 130 12 12
-             134:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 132 131(clip0) 43
-             136:    124(ptr) AccessChain 117(ubo) 135
-             137:          87 Load 136
-             138:   27(fvec4) Load 83(v0)
-             139:   24(float) Load 72(radius)
-             144:   24(float) CompositeExtract 143 0
-             145:   24(float) CompositeExtract 143 1
-             146:   24(float) CompositeExtract 143 2
-             147:   27(fvec4) CompositeConstruct 139 144 145 146
-             148:   27(fvec4) FSub 138 147
-             149:   27(fvec4) MatrixTimesVector 137 148
-                              Store 131(clip0) 149
-             150:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 151 151 12 12
-             155:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 153 152(clip1) 43
-             156:    124(ptr) AccessChain 117(ubo) 135
-             157:          87 Load 156
-             158:   27(fvec4) Load 83(v0)
-             159:   24(float) Load 72(radius)
-             160:   24(float) CompositeExtract 143 0
-             161:   24(float) CompositeExtract 143 1
-             162:   24(float) CompositeExtract 143 2
-             163:   27(fvec4) CompositeConstruct 159 160 161 162
-             164:   27(fvec4) FAdd 158 163
-             165:   27(fvec4) MatrixTimesVector 157 164
-                              Store 152(clip1) 165
-             166:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 167 167 12 12
-             168:     71(ptr) AccessChain 131(clip0) 13
-             169:   24(float) Load 168
-             170:   27(fvec4) Load 131(clip0)
-             171:   27(fvec4) CompositeConstruct 169 169 169 169
-             172:   27(fvec4) FDiv 170 171
-                              Store 131(clip0) 172
-             173:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 174 174 12 12
-             175:     71(ptr) AccessChain 152(clip1) 13
-             176:   24(float) Load 175
-             177:   27(fvec4) Load 152(clip1)
-             178:   27(fvec4) CompositeConstruct 176 176 176 176
-             179:   27(fvec4) FDiv 177 178
-                              Store 152(clip1) 179
-             180:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 181 181 12 12
-             184:    183(ptr) AccessChain 117(ubo) 182
-             185:   92(fvec2) Load 184
-             186:   27(fvec4) Load 131(clip0)
-             187:   92(fvec2) VectorShuffle 186 186 0 1
-             188:   92(fvec2) FMul 187 185
-             189:     71(ptr) AccessChain 131(clip0) 12
-             190:   24(float) CompositeExtract 188 0
-                              Store 189 190
-             191:     71(ptr) AccessChain 131(clip0) 20
-             192:   24(float) CompositeExtract 188 1
-                              Store 191 192
-             193:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 194 194 12 12
-             195:    183(ptr) AccessChain 117(ubo) 182
-             196:   92(fvec2) Load 195
-             197:   27(fvec4) Load 152(clip1)
-             198:   92(fvec2) VectorShuffle 197 197 0 1
-             199:   92(fvec2) FMul 198 196
-             200:     71(ptr) AccessChain 152(clip1) 12
-             201:   24(float) CompositeExtract 199 0
-                              Store 200 201
-             202:     71(ptr) AccessChain 152(clip1) 20
-             203:   24(float) CompositeExtract 199 1
-                              Store 202 203
-             204:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 205 205 12 12
-             206:   27(fvec4) Load 131(clip0)
-             207:   27(fvec4) Load 152(clip1)
-             208:   24(float) ExtInst 3(GLSL.std.450) 67(Distance) 206 207
-             211:    210(ptr) AccessChain 117(ubo) 209
-             212:   24(float) Load 211
-             213:   24(float) FDiv 208 212
-             215:    210(ptr) AccessChain 117(ubo) 214
-             216:   24(float) Load 215
-             217:   24(float) FMul 213 216
-             220:   24(float) ExtInst 3(GLSL.std.450) 43(FClamp) 217 218 219
-                              ReturnValue 220
+29(screenSpaceTessFactor(vf4;vf4;):   16(float) Function None 25
+          27(p0):     22(ptr) FunctionParameter
+          28(p1):     22(ptr) FunctionParameter
+              30:             Label
+    65(midPoint):     22(ptr) Variable Function
+      78(radius):     76(ptr) Variable Function
+          89(v0):     22(ptr) Variable Function
+      138(clip0):     22(ptr) Variable Function
+      159(clip1):     22(ptr) Variable Function
+              39:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 32
+              40:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 35 35 12 12
+              43:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 41 27(p0) 44
+              47:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 45 28(p1) 44
+              61:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 32 29(screenSpaceTessFactor(vf4;vf4;)
+              62:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 32
+              63:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 64 64 12 12
+              68:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 66 65(midPoint) 44
+              70:   19(fvec4) Load 27(p0)
+              71:   19(fvec4) Load 28(p1)
+              72:   19(fvec4) FAdd 70 71
+              73:   19(fvec4) VectorTimesScalar 72 69
+                              Store 65(midPoint) 73
+              74:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 75 75 12 12
+              81:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 79 78(radius) 44
+              82:   19(fvec4) Load 27(p0)
+              83:   19(fvec4) Load 28(p1)
+              84:   16(float) ExtInst 3(GLSL.std.450) 67(Distance) 82 83
+              86:   16(float) FDiv 84 85
+                              Store 78(radius) 86
+              87:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 88 88 12 12
+              92:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 90 89(v0) 44
+             132:    130(ptr) AccessChain 123(ubo) 129
+             133:          93 Load 132
+             134:   19(fvec4) Load 65(midPoint)
+             135:   19(fvec4) MatrixTimesVector 133 134
+                              Store 89(v0) 135
+             136:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 137 137 12 12
+             141:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 139 138(clip0) 44
+             143:    130(ptr) AccessChain 123(ubo) 142
+             144:          93 Load 143
+             145:   19(fvec4) Load 89(v0)
+             146:   16(float) Load 78(radius)
+             151:   16(float) CompositeExtract 150 0
+             152:   16(float) CompositeExtract 150 1
+             153:   16(float) CompositeExtract 150 2
+             154:   19(fvec4) CompositeConstruct 146 151 152 153
+             155:   19(fvec4) FSub 145 154
+             156:   19(fvec4) MatrixTimesVector 144 155
+                              Store 138(clip0) 156
+             157:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 158 158 12 12
+             162:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 160 159(clip1) 44
+             163:    130(ptr) AccessChain 123(ubo) 142
+             164:          93 Load 163
+             165:   19(fvec4) Load 89(v0)
+             166:   16(float) Load 78(radius)
+             167:   16(float) CompositeExtract 150 0
+             168:   16(float) CompositeExtract 150 1
+             169:   16(float) CompositeExtract 150 2
+             170:   19(fvec4) CompositeConstruct 166 167 168 169
+             171:   19(fvec4) FAdd 165 170
+             172:   19(fvec4) MatrixTimesVector 164 171
+                              Store 159(clip1) 172
+             173:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 174 174 12 12
+             175:     76(ptr) AccessChain 138(clip0) 13
+             176:   16(float) Load 175
+             177:   19(fvec4) Load 138(clip0)
+             178:   19(fvec4) CompositeConstruct 176 176 176 176
+             179:   19(fvec4) FDiv 177 178
+                              Store 138(clip0) 179
+             180:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 181 181 12 12
+             182:     76(ptr) AccessChain 159(clip1) 13
+             183:   16(float) Load 182
+             184:   19(fvec4) Load 159(clip1)
+             185:   19(fvec4) CompositeConstruct 183 183 183 183
+             186:   19(fvec4) FDiv 184 185
+                              Store 159(clip1) 186
+             187:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 188 188 12 12
+             192:    190(ptr) AccessChain 123(ubo) 189
+             193:   98(fvec2) Load 192
+             194:   19(fvec4) Load 138(clip0)
+             195:   98(fvec2) VectorShuffle 194 194 0 1
+             196:   98(fvec2) FMul 195 193
+             197:     76(ptr) AccessChain 138(clip0) 12
+             198:   16(float) CompositeExtract 196 0
+                              Store 197 198
+             199:     76(ptr) AccessChain 138(clip0) 37
+             200:   16(float) CompositeExtract 196 1
+                              Store 199 200
+             201:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 202 202 12 12
+             203:    190(ptr) AccessChain 123(ubo) 189
+             204:   98(fvec2) Load 203
+             205:   19(fvec4) Load 159(clip1)
+             206:   98(fvec2) VectorShuffle 205 205 0 1
+             207:   98(fvec2) FMul 206 204
+             208:     76(ptr) AccessChain 159(clip1) 12
+             209:   16(float) CompositeExtract 207 0
+                              Store 208 209
+             210:     76(ptr) AccessChain 159(clip1) 37
+             211:   16(float) CompositeExtract 207 1
+                              Store 210 211
+             212:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 213 213 12 12
+             214:   19(fvec4) Load 138(clip0)
+             215:   19(fvec4) Load 159(clip1)
+             216:   16(float) ExtInst 3(GLSL.std.450) 67(Distance) 214 215
+             220:    218(ptr) AccessChain 123(ubo) 217
+             221:   16(float) Load 220
+             222:   16(float) FDiv 216 221
+             224:    218(ptr) AccessChain 123(ubo) 223
+             225:   16(float) Load 224
+             226:   16(float) FMul 222 225
+             229:   16(float) ExtInst 3(GLSL.std.450) 43(FClamp) 226 227 228
+                              ReturnValue 229
                               FunctionEnd
                               Line 1 81 19
-52(frustumCheck():    47(bool) Function None 50
-              55:             Label
-        227(pos):     29(ptr) Variable Function
-          298(i):    297(ptr) Variable Function
-             223:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 54 52(frustumCheck()
-             224:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 54
-             225:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 226 226 12 12
-             230:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 228 227(pos) 43
-             256:    120(int) Load 253(gl_InvocationID)
-             258:    257(ptr) AccessChain 249(gl_in) 256 135
-             259:   27(fvec4) Load 258
-                              Store 227(pos) 259
-             260:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 261 261 12 12
-             275:         267 Load 272(samplerHeight)
-             283:    282(ptr) AccessChain 279(inUV) 135
-             284:   92(fvec2) Load 283
-             285:   27(fvec4) ImageSampleExplicitLod 275 284 Lod 142
-             286:   24(float) CompositeExtract 285 0
-             288:    210(ptr) AccessChain 117(ubo) 287
-             289:   24(float) Load 288
-             290:   24(float) FMul 286 289
-             291:     71(ptr) AccessChain 227(pos) 20
-             292:   24(float) Load 291
-             293:   24(float) FSub 292 290
-             294:     71(ptr) AccessChain 227(pos) 20
-                              Store 294 293
-             295:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 296 296 12 12
-             301:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 299 298(i) 43
-                              Store 298(i) 135
-                              Branch 302
-             302:             Label
-             306:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 54
-             307:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 296 296 12 12
-                              LoopMerge 304 305 None
-                              Branch 308
-             308:             Label
-             309:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 54
-             310:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 296 296 12 12
-             311:    120(int) Load 298(i)
-             313:    47(bool) SLessThan 311 182
-                              BranchConditional 313 303 304
-             303:               Label
-             314:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 54
-             315:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 316 316 12 12
-             317:   27(fvec4)   Load 227(pos)
-             319:    120(int)   Load 298(i)
-             321:    320(ptr)   AccessChain 117(ubo) 318 319
-             322:   27(fvec4)   Load 321
-             323:   24(float)   Dot 317 322
-             325:   24(float)   FAdd 323 324
-             327:    47(bool)   FOrdLessThan 325 142
-                                SelectionMerge 329 None
-                                BranchConditional 327 328 329
-             328:                 Label
-             332:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 54
-             333:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 334 334 12 12
-                                  ReturnValue 331
-             329:               Label
-                                Branch 305
-             305:               Label
-             336:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 54
-             337:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 296 296 12 12
-             338:    120(int)   Load 298(i)
-             339:    120(int)   IAdd 338 123
-                                Store 298(i) 339
-                                Branch 302
-             304:             Label
-             341:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 54
-             342:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 343 343 12 12
-                              ReturnValue 89
+53(frustumCheck():    48(bool) Function None 51
+              54:             Label
+        236(pos):     22(ptr) Variable Function
+          314(i):    312(ptr) Variable Function
+             232:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 56 53(frustumCheck()
+             233:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 56
+             234:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 235 235 12 12
+             239:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 237 236(pos) 44
+             267:    126(int) Load 264(gl_InvocationID)
+             270:    268(ptr) AccessChain 259(gl_in) 267 142
+             271:   19(fvec4) Load 270
+                              Store 236(pos) 271
+             272:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 273 273 12 12
+             288:         279 Load 285(samplerHeight)
+             298:    296(ptr) AccessChain 293(inUV) 142
+             299:   98(fvec2) Load 298
+             300:   19(fvec4) ImageSampleExplicitLod 288 299 Lod 149
+             301:   16(float) CompositeExtract 300 0
+             303:    218(ptr) AccessChain 123(ubo) 302
+             304:   16(float) Load 303
+             305:   16(float) FMul 301 304
+             306:     76(ptr) AccessChain 236(pos) 37
+             307:   16(float) Load 306
+             308:   16(float) FSub 307 305
+             309:     76(ptr) AccessChain 236(pos) 37
+                              Store 309 308
+             310:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 311 311 12 12
+             317:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 315 314(i) 44
+                              Store 314(i) 142
+                              Branch 318
+             318:             Label
+             322:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 56
+             323:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 311 311 12 12
+                              LoopMerge 320 321 None
+                              Branch 324
+             324:             Label
+             325:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 56
+             326:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 311 311 12 12
+             327:    126(int) Load 314(i)
+             328:    48(bool) SLessThan 327 189
+                              BranchConditional 328 319 320
+             319:               Label
+             329:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 56
+             330:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 331 331 12 12
+             332:   19(fvec4)   Load 236(pos)
+             334:    126(int)   Load 314(i)
+             337:    335(ptr)   AccessChain 123(ubo) 333 334
+             338:   19(fvec4)   Load 337
+             339:   16(float)   Dot 332 338
+             341:   16(float)   FAdd 339 340
+             342:    48(bool)   FOrdLessThan 341 149
+                                SelectionMerge 344 None
+                                BranchConditional 342 343 344
+             343:                 Label
+             346:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 56
+             347:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 348 348 12 12
+                                  ReturnValue 345
+             344:               Label
+                                Branch 321
+             321:               Label
+             350:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 56
+             351:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 311 311 12 12
+             352:    126(int)   Load 314(i)
+             353:    126(int)   IAdd 352 129
+                                Store 314(i) 353
+                                Branch 318
+             320:             Label
+             354:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 56
+             355:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 33 356 356 12 12
+                              ReturnValue 95
                               FunctionEnd
diff --git a/Test/baseResults/spv.debuginfo.glsl.tese.out b/Test/baseResults/spv.debuginfo.glsl.tese.out
index 0625c27..c742d60 100644
--- a/Test/baseResults/spv.debuginfo.glsl.tese.out
+++ b/Test/baseResults/spv.debuginfo.glsl.tese.out
@@ -1,21 +1,21 @@
 spv.debuginfo.glsl.tese
 // Module Version 10000
 // Generated by (magic number): 8000b
-// Id's are bound by 332
+// Id's are bound by 355
 
                               Capability Tessellation
                               Extension  "SPV_KHR_non_semantic_info"
                2:             ExtInstImport  "NonSemantic.Shader.DebugInfo.100"
                3:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint TessellationEvaluation 14  "main" 42 59 86 105 133 169 280 294 302 314 321
+                              EntryPoint TessellationEvaluation 14  "main" 46 65 94 115 144 182 300 316 324 337 344
                               ExecutionMode 14 Quads
                               ExecutionMode 14 SpacingEqual
                               ExecutionMode 14 VertexOrderCw
                1:             String  ""
-               9:             String  "uint"
-              15:             String  "main"
-              18:             String  "// OpModuleProcessed auto-map-locations
+               8:             String  "uint"
+              16:             String  "main"
+              19:             String  "// OpModuleProcessed auto-map-locations
 // OpModuleProcessed auto-map-bindings
 // OpModuleProcessed client vulkan100
 // OpModuleProcessed target-env vulkan1.0
@@ -23,423 +23,446 @@
 // OpModuleProcessed entry-point main
 #line 1
 "
-              29:             String  "float"
-              36:             String  "uv1"
-              44:             String  "inUV"
-              47:             String  "int"
-              61:             String  "gl_TessCoord"
-              71:             String  "uv2"
-              88:             String  "outUV"
-             100:             String  "n1"
-             107:             String  "inNormal"
-             120:             String  "n2"
-             135:             String  "outNormal"
-             149:             String  "pos1"
-             155:             String  "gl_Position"
-             158:             String  "gl_PointSize"
-             161:             String  "gl_CullDistance"
-             165:             String  "gl_PerVertex"
-             171:             String  "gl_in"
-             185:             String  "pos2"
-             199:             String  "pos"
-             211:             String  "type.2d.image"
-             212:             String  "@type.2d.image"
-             216:             String  "type.sampled.image"
-             217:             String  "@type.sampled.image"
-             221:             String  "displacementMap"
-             235:             String  "modelview"
-             240:             String  "lightPos"
-             243:             String  "frustumPlanes"
-             245:             String  "tessellatedEdgeSize"
-             249:             String  "viewportDim"
-             253:             String  "UBO"
-             257:             String  "ubo"
-             296:             String  "outViewVec"
-             304:             String  "outLightVec"
-             316:             String  "outWorldPos"
-             323:             String  "outEyePos"
+              30:             String  "float"
+              39:             String  "uv1"
+              48:             String  "inUV"
+              51:             String  "int"
+              67:             String  "gl_TessCoord"
+              78:             String  "uv2"
+              96:             String  "outUV"
+             109:             String  "n1"
+             117:             String  "inNormal"
+             130:             String  "n2"
+             146:             String  "outNormal"
+             161:             String  "pos1"
+             167:             String  "gl_Position"
+             170:             String  "gl_PointSize"
+             173:             String  "gl_CullDistance"
+             177:             String  "gl_PerVertex"
+             184:             String  "gl_in"
+             199:             String  "pos2"
+             213:             String  "pos"
+             225:             String  "type.2d.image"
+             226:             String  "@type.2d.image"
+             230:             String  "type.sampled.image"
+             231:             String  "@type.sampled.image"
+             236:             String  "displacementMap"
+             245:             String  "bool"
+             252:             String  "modelview"
+             256:             String  "lightPos"
+             259:             String  "frustumPlanes"
+             261:             String  "tessellatedEdgeSize"
+             265:             String  "viewportDim"
+             269:             String  "UBO"
+             274:             String  "ubo"
+             318:             String  "outViewVec"
+             326:             String  "outLightVec"
+             339:             String  "outWorldPos"
+             346:             String  "outEyePos"
                               Name 14  "main"
-                              Name 34  "uv1"
-                              Name 42  "inUV"
-                              Name 59  "gl_TessCoord"
-                              Name 69  "uv2"
-                              Name 86  "outUV"
-                              Name 98  "n1"
-                              Name 105  "inNormal"
-                              Name 118  "n2"
-                              Name 133  "outNormal"
-                              Name 147  "pos1"
-                              Name 153  "gl_PerVertex"
-                              MemberName 153(gl_PerVertex) 0  "gl_Position"
-                              MemberName 153(gl_PerVertex) 1  "gl_PointSize"
-                              MemberName 153(gl_PerVertex) 2  "gl_ClipDistance"
-                              MemberName 153(gl_PerVertex) 3  "gl_CullDistance"
-                              Name 169  "gl_in"
-                              Name 183  "pos2"
-                              Name 197  "pos"
-                              Name 219  "displacementMap"
-                              Name 233  "UBO"
-                              MemberName 233(UBO) 0  "projection"
-                              MemberName 233(UBO) 1  "modelview"
-                              MemberName 233(UBO) 2  "lightPos"
-                              MemberName 233(UBO) 3  "frustumPlanes"
-                              MemberName 233(UBO) 4  "displacementFactor"
-                              MemberName 233(UBO) 5  "tessellationFactor"
-                              MemberName 233(UBO) 6  "viewportDim"
-                              MemberName 233(UBO) 7  "tessellatedEdgeSize"
-                              Name 255  "ubo"
-                              Name 270  "gl_PerVertex"
-                              MemberName 270(gl_PerVertex) 0  "gl_Position"
-                              MemberName 270(gl_PerVertex) 1  "gl_PointSize"
-                              MemberName 270(gl_PerVertex) 2  "gl_ClipDistance"
-                              MemberName 270(gl_PerVertex) 3  "gl_CullDistance"
-                              Name 280  ""
-                              Name 294  "outViewVec"
-                              Name 302  "outLightVec"
-                              Name 314  "outWorldPos"
-                              Name 321  "outEyePos"
-                              Decorate 42(inUV) Location 1
-                              Decorate 59(gl_TessCoord) BuiltIn TessCoord
-                              Decorate 86(outUV) Location 1
-                              Decorate 105(inNormal) Location 0
-                              Decorate 133(outNormal) Location 0
-                              MemberDecorate 153(gl_PerVertex) 0 BuiltIn Position
-                              MemberDecorate 153(gl_PerVertex) 1 BuiltIn PointSize
-                              MemberDecorate 153(gl_PerVertex) 2 BuiltIn ClipDistance
-                              MemberDecorate 153(gl_PerVertex) 3 BuiltIn CullDistance
-                              Decorate 153(gl_PerVertex) Block
-                              Decorate 219(displacementMap) DescriptorSet 0
-                              Decorate 219(displacementMap) Binding 1
-                              Decorate 231 ArrayStride 16
-                              MemberDecorate 233(UBO) 0 ColMajor
-                              MemberDecorate 233(UBO) 0 Offset 0
-                              MemberDecorate 233(UBO) 0 MatrixStride 16
-                              MemberDecorate 233(UBO) 1 ColMajor
-                              MemberDecorate 233(UBO) 1 Offset 64
-                              MemberDecorate 233(UBO) 1 MatrixStride 16
-                              MemberDecorate 233(UBO) 2 Offset 128
-                              MemberDecorate 233(UBO) 3 Offset 144
-                              MemberDecorate 233(UBO) 4 Offset 240
-                              MemberDecorate 233(UBO) 5 Offset 244
-                              MemberDecorate 233(UBO) 6 Offset 248
-                              MemberDecorate 233(UBO) 7 Offset 256
-                              Decorate 233(UBO) Block
-                              Decorate 255(ubo) DescriptorSet 0
-                              Decorate 255(ubo) Binding 0
-                              MemberDecorate 270(gl_PerVertex) 0 BuiltIn Position
-                              MemberDecorate 270(gl_PerVertex) 1 BuiltIn PointSize
-                              MemberDecorate 270(gl_PerVertex) 2 BuiltIn ClipDistance
-                              MemberDecorate 270(gl_PerVertex) 3 BuiltIn CullDistance
-                              Decorate 270(gl_PerVertex) Block
-                              Decorate 294(outViewVec) Location 2
-                              Decorate 302(outLightVec) Location 3
-                              Decorate 314(outWorldPos) Location 5
-                              Decorate 321(outEyePos) Location 4
+                              Name 37  "uv1"
+                              Name 46  "inUV"
+                              Name 65  "gl_TessCoord"
+                              Name 76  "uv2"
+                              Name 94  "outUV"
+                              Name 107  "n1"
+                              Name 115  "inNormal"
+                              Name 128  "n2"
+                              Name 144  "outNormal"
+                              Name 159  "pos1"
+                              Name 165  "gl_PerVertex"
+                              MemberName 165(gl_PerVertex) 0  "gl_Position"
+                              MemberName 165(gl_PerVertex) 1  "gl_PointSize"
+                              MemberName 165(gl_PerVertex) 2  "gl_ClipDistance"
+                              MemberName 165(gl_PerVertex) 3  "gl_CullDistance"
+                              Name 182  "gl_in"
+                              Name 197  "pos2"
+                              Name 211  "pos"
+                              Name 234  "displacementMap"
+                              Name 250  "UBO"
+                              MemberName 250(UBO) 0  "projection"
+                              MemberName 250(UBO) 1  "modelview"
+                              MemberName 250(UBO) 2  "lightPos"
+                              MemberName 250(UBO) 3  "frustumPlanes"
+                              MemberName 250(UBO) 4  "displacementFactor"
+                              MemberName 250(UBO) 5  "tessellationFactor"
+                              MemberName 250(UBO) 6  "viewportDim"
+                              MemberName 250(UBO) 7  "tessellatedEdgeSize"
+                              Name 272  "ubo"
+                              Name 289  "gl_PerVertex"
+                              MemberName 289(gl_PerVertex) 0  "gl_Position"
+                              MemberName 289(gl_PerVertex) 1  "gl_PointSize"
+                              MemberName 289(gl_PerVertex) 2  "gl_ClipDistance"
+                              MemberName 289(gl_PerVertex) 3  "gl_CullDistance"
+                              Name 300  ""
+                              Name 316  "outViewVec"
+                              Name 324  "outLightVec"
+                              Name 337  "outWorldPos"
+                              Name 344  "outEyePos"
+                              Decorate 46(inUV) Location 1
+                              Decorate 65(gl_TessCoord) BuiltIn TessCoord
+                              Decorate 94(outUV) Location 1
+                              Decorate 115(inNormal) Location 0
+                              Decorate 144(outNormal) Location 0
+                              MemberDecorate 165(gl_PerVertex) 0 BuiltIn Position
+                              MemberDecorate 165(gl_PerVertex) 1 BuiltIn PointSize
+                              MemberDecorate 165(gl_PerVertex) 2 BuiltIn ClipDistance
+                              MemberDecorate 165(gl_PerVertex) 3 BuiltIn CullDistance
+                              Decorate 165(gl_PerVertex) Block
+                              Decorate 234(displacementMap) DescriptorSet 0
+                              Decorate 234(displacementMap) Binding 1
+                              Decorate 248 ArrayStride 16
+                              MemberDecorate 250(UBO) 0 ColMajor
+                              MemberDecorate 250(UBO) 0 Offset 0
+                              MemberDecorate 250(UBO) 0 MatrixStride 16
+                              MemberDecorate 250(UBO) 1 ColMajor
+                              MemberDecorate 250(UBO) 1 Offset 64
+                              MemberDecorate 250(UBO) 1 MatrixStride 16
+                              MemberDecorate 250(UBO) 2 Offset 128
+                              MemberDecorate 250(UBO) 3 Offset 144
+                              MemberDecorate 250(UBO) 4 Offset 240
+                              MemberDecorate 250(UBO) 5 Offset 244
+                              MemberDecorate 250(UBO) 6 Offset 248
+                              MemberDecorate 250(UBO) 7 Offset 256
+                              Decorate 250(UBO) Block
+                              Decorate 272(ubo) DescriptorSet 0
+                              Decorate 272(ubo) Binding 0
+                              MemberDecorate 289(gl_PerVertex) 0 BuiltIn Position
+                              MemberDecorate 289(gl_PerVertex) 1 BuiltIn PointSize
+                              MemberDecorate 289(gl_PerVertex) 2 BuiltIn ClipDistance
+                              MemberDecorate 289(gl_PerVertex) 3 BuiltIn CullDistance
+                              Decorate 289(gl_PerVertex) Block
+                              Decorate 316(outViewVec) Location 2
+                              Decorate 324(outLightVec) Location 3
+                              Decorate 337(outWorldPos) Location 5
+                              Decorate 344(outEyePos) Location 4
                4:             TypeVoid
                5:             TypeFunction 4
                7:             TypeInt 32 0
               10:      7(int) Constant 32
               11:      7(int) Constant 6
               12:      7(int) Constant 0
-               8:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 9 10 11 12
+               9:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 8 10 11 12
               13:      7(int) Constant 3
                6:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 4
-              17:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 1 18
-              20:      7(int) Constant 1
-              21:      7(int) Constant 4
-              22:      7(int) Constant 2
-              19:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 20 21 17 22
-              16:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 15 6 17 12 12 19 15 13 12
-              27:      7(int) Constant 56
-              28:             TypeFloat 32
-              30:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 29 10 13 12
-              31:             TypeVector 28(float) 2
-              32:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 30 22
-              33:             TypePointer Function 31(fvec2)
-              35:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 36 32 17 27 12 16 21
-              38:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
-              39:             TypeArray 31(fvec2) 10
-              40:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 32 10
-              41:             TypePointer Input 39
-        42(inUV):     41(ptr) Variable Input
-              45:      7(int) Constant 8
-              43:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 44 40 17 27 12 19 44 42(inUV) 45
-              46:             TypeInt 32 1
-              48:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 47 10 21 12
-              49:     46(int) Constant 0
-              50:             TypePointer Input 31(fvec2)
-              53:     46(int) Constant 1
-              56:             TypeVector 28(float) 3
-              57:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 30 13
-              58:             TypePointer Input 56(fvec3)
-59(gl_TessCoord):     58(ptr) Variable Input
-              60:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 61 57 17 27 12 19 61 59(gl_TessCoord) 45
-              62:             TypePointer Input 28(float)
-              68:      7(int) Constant 57
-              70:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 71 32 17 68 12 16 21
-              73:     46(int) Constant 3
-              76:     46(int) Constant 2
-              84:      7(int) Constant 58
-              85:             TypePointer Output 31(fvec2)
-       86(outUV):     85(ptr) Variable Output
-              87:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 88 32 17 84 12 19 88 86(outUV) 45
-              96:      7(int) Constant 60
-              97:             TypePointer Function 56(fvec3)
-              99:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 100 57 17 96 12 16 21
-             102:             TypeArray 56(fvec3) 10
-             103:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 57 10
-             104:             TypePointer Input 102
-   105(inNormal):    104(ptr) Variable Input
-             106:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 107 103 17 96 12 19 107 105(inNormal) 45
-             117:      7(int) Constant 61
-             119:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 120 57 17 117 12 16 21
-             131:      7(int) Constant 62
-             132:             TypePointer Output 56(fvec3)
-  133(outNormal):    132(ptr) Variable Output
-             134:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 135 57 17 131 12 19 135 133(outNormal) 45
-             143:      7(int) Constant 65
-             144:             TypeVector 28(float) 4
-             145:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 30 21
-             146:             TypePointer Function 144(fvec4)
-             148:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 149 145 17 143 12 16 21
-             151:             TypeArray 28(float) 20
-             152:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 30 20
-153(gl_PerVertex):             TypeStruct 144(fvec4) 28(float) 151 151
-             156:      7(int) Constant 1756
-             154:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 155 145 17 20 156 12 12 13
-             159:      7(int) Constant 1774
-             157:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 158 30 17 20 159 12 12 13
-             162:      7(int) Constant 1817
-             160:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 161 152 17 20 162 12 12 13
-             163:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 161 152 17 20 162 12 12 13
-             164:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 165 20 17 143 12 19 165 12 13 154 157 160 163
-             166:             TypeArray 153(gl_PerVertex) 10
-             167:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 164 10
-             168:             TypePointer Input 166
-      169(gl_in):    168(ptr) Variable Input
-             170:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 171 167 17 143 12 19 171 169(gl_in) 45
-             172:             TypePointer Input 144(fvec4)
-             182:      7(int) Constant 66
-             184:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 185 145 17 182 12 16 21
-             196:      7(int) Constant 67
-             198:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 199 145 17 196 12 16 21
-             208:      7(int) Constant 69
-             209:             TypeImage 28(float) 2D sampled format:Unknown
-             213:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 0(DebugInfoNone)
-             210:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 211 12 17 208 12 19 212 213 13
-             214:             TypeSampledImage 209
-             215:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 216 12 17 208 12 19 217 213 13
-             218:             TypePointer UniformConstant 214
-219(displacementMap):    218(ptr) Variable UniformConstant
-             220:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 221 215 17 208 12 19 221 219(displacementMap) 45
-             224:   28(float) Constant 0
-             227:             TypeMatrix 144(fvec4) 4
-             229:             TypeBool
-             230:   229(bool) ConstantTrue
-             228:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 145 21 230
-             231:             TypeArray 144(fvec4) 11
-             232:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 145 11
-        233(UBO):             TypeStruct 227 227 144(fvec4) 231 28(float) 28(float) 31(fvec2) 28(float)
-             236:      7(int) Constant 30
-             237:      7(int) Constant 7
-             234:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 235 228 17 236 237 12 12 13
-             238:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 235 228 17 236 237 12 12 13
-             241:      7(int) Constant 31
-             239:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 240 145 17 241 237 12 12 13
-             242:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 243 232 17 10 237 12 12 13
-             246:      7(int) Constant 36
-             244:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 245 30 17 246 45 12 12 13
-             247:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 245 30 17 246 45 12 12 13
-             250:      7(int) Constant 35
-             248:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 249 32 17 250 237 12 12 13
-             251:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 245 30 17 246 45 12 12 13
-             252:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 253 20 17 208 12 19 253 12 13 234 238 239 242 244 247 248 251
-             254:             TypePointer Uniform 233(UBO)
-        255(ubo):    254(ptr) Variable Uniform
-             256:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 257 252 17 208 12 19 257 255(ubo) 45
-             258:     46(int) Constant 4
-             259:             TypePointer Uniform 28(float)
-             263:             TypePointer Function 28(float)
-             269:      7(int) Constant 71
-270(gl_PerVertex):             TypeStruct 144(fvec4) 28(float) 151 151
-             272:      7(int) Constant 165
-             271:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 155 145 17 20 272 12 12 13
-             274:      7(int) Constant 183
-             273:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 158 30 17 20 274 12 12 13
-             276:      7(int) Constant 226
-             275:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 161 152 17 20 276 12 12 13
-             277:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 161 152 17 20 276 12 12 13
-             278:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 165 20 17 269 12 19 165 12 13 271 273 275 277
-             279:             TypePointer Output 270(gl_PerVertex)
-             280:    279(ptr) Variable Output
-             281:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 1 278 17 269 12 19 1 280 45
-             282:             TypePointer Uniform 227
-             290:             TypePointer Output 144(fvec4)
-             293:      7(int) Constant 74
- 294(outViewVec):    132(ptr) Variable Output
-             295:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 296 57 17 293 12 19 296 294(outViewVec) 45
-             301:      7(int) Constant 75
-302(outLightVec):    132(ptr) Variable Output
-             303:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 304 57 17 301 12 19 304 302(outLightVec) 45
-             305:             TypePointer Uniform 144(fvec4)
-             313:      7(int) Constant 76
-314(outWorldPos):    132(ptr) Variable Output
-             315:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 316 57 17 313 12 19 316 314(outWorldPos) 45
-             320:      7(int) Constant 77
-  321(outEyePos):    132(ptr) Variable Output
-             322:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 323 57 17 320 12 19 323 321(outEyePos) 45
+              18:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 1 19
+              20:      7(int) Constant 53
+              22:      7(int) Constant 1
+              23:      7(int) Constant 4
+              24:      7(int) Constant 2
+              21:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 22 23 18 24
+              17:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 16 6 18 20 12 21 16 13 20
+              28:      7(int) Constant 56
+              29:             TypeFloat 32
+              31:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 30 10 13 12
+              32:             TypeVector 29(float) 2
+              33:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 31 24
+              34:             TypePointer Function 32(fvec2)
+              35:      7(int) Constant 7
+              36:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 33 35 12
+              38:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 39 33 18 28 12 17 23
+              41:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
+              42:             TypeArray 32(fvec2) 10
+              43:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 33 10
+              44:             TypePointer Input 42
+              45:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 43 22 12
+        46(inUV):     44(ptr) Variable Input
+              49:      7(int) Constant 8
+              47:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 48 43 18 28 12 21 48 46(inUV) 49
+              50:             TypeInt 32 1
+              52:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 51 10 23 12
+              53:     50(int) Constant 0
+              54:             TypePointer Input 32(fvec2)
+              55:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 33 22 12
+              58:     50(int) Constant 1
+              61:             TypeVector 29(float) 3
+              62:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 31 13
+              63:             TypePointer Input 61(fvec3)
+              64:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 62 22 12
+65(gl_TessCoord):     63(ptr) Variable Input
+              66:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 67 62 18 28 12 21 67 65(gl_TessCoord) 49
+              68:             TypePointer Input 29(float)
+              69:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 31 22 12
+              75:      7(int) Constant 57
+              77:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 78 33 18 75 12 17 23
+              80:     50(int) Constant 3
+              83:     50(int) Constant 2
+              91:      7(int) Constant 58
+              92:             TypePointer Output 32(fvec2)
+              93:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 33 13 12
+       94(outUV):     92(ptr) Variable Output
+              95:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 96 33 18 91 12 21 96 94(outUV) 49
+             104:      7(int) Constant 60
+             105:             TypePointer Function 61(fvec3)
+             106:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 62 35 12
+             108:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 109 62 18 104 12 17 23
+             111:             TypeArray 61(fvec3) 10
+             112:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 62 10
+             113:             TypePointer Input 111
+             114:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 112 22 12
+   115(inNormal):    113(ptr) Variable Input
+             116:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 117 112 18 104 12 21 117 115(inNormal) 49
+             127:      7(int) Constant 61
+             129:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 130 62 18 127 12 17 23
+             141:      7(int) Constant 62
+             142:             TypePointer Output 61(fvec3)
+             143:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 62 13 12
+  144(outNormal):    142(ptr) Variable Output
+             145:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 146 62 18 141 12 21 146 144(outNormal) 49
+             154:      7(int) Constant 65
+             155:             TypeVector 29(float) 4
+             156:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 31 23
+             157:             TypePointer Function 155(fvec4)
+             158:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 156 35 12
+             160:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 161 156 18 154 12 17 23
+             163:             TypeArray 29(float) 22
+             164:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 31 22
+165(gl_PerVertex):             TypeStruct 155(fvec4) 29(float) 163 163
+             168:      7(int) Constant 1756
+             166:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 167 156 18 22 168 12 12 13
+             171:      7(int) Constant 1774
+             169:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 170 31 18 22 171 12 12 13
+             174:      7(int) Constant 1817
+             172:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 173 164 18 22 174 12 12 13
+             175:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 173 164 18 22 174 12 12 13
+             176:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 177 22 18 154 12 21 177 12 13 166 169 172 175
+             178:             TypeArray 165(gl_PerVertex) 10
+             179:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 176 10
+             180:             TypePointer Input 178
+             181:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 179 22 12
+      182(gl_in):    180(ptr) Variable Input
+             183:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 184 179 18 154 12 21 184 182(gl_in) 49
+             185:             TypePointer Input 155(fvec4)
+             186:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 156 22 12
+             196:      7(int) Constant 66
+             198:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 199 156 18 196 12 17 23
+             210:      7(int) Constant 67
+             212:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 213 156 18 210 12 17 23
+             222:      7(int) Constant 69
+             223:             TypeImage 29(float) 2D sampled format:Unknown
+             227:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 0(DebugInfoNone)
+             224:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 225 12 18 222 12 21 226 227 13
+             228:             TypeSampledImage 223
+             229:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 230 12 18 222 12 21 231 227 13
+             232:             TypePointer UniformConstant 228
+             233:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 229 12 12
+234(displacementMap):    232(ptr) Variable UniformConstant
+             235:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 236 229 18 222 12 21 236 234(displacementMap) 49
+             239:   29(float) Constant 0
+             242:             TypeMatrix 155(fvec4) 4
+             244:             TypeBool
+             246:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 245 10 24 12
+             247:   244(bool) ConstantTrue
+             243:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 156 23 247
+             248:             TypeArray 155(fvec4) 11
+             249:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 156 11
+        250(UBO):             TypeStruct 242 242 155(fvec4) 248 29(float) 29(float) 32(fvec2) 29(float)
+             253:      7(int) Constant 30
+             251:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 252 243 18 253 35 12 12 13
+             254:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 252 243 18 253 35 12 12 13
+             257:      7(int) Constant 31
+             255:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 256 156 18 257 35 12 12 13
+             258:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 259 249 18 10 35 12 12 13
+             262:      7(int) Constant 36
+             260:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 261 31 18 262 49 12 12 13
+             263:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 261 31 18 262 49 12 12 13
+             266:      7(int) Constant 35
+             264:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 265 33 18 266 35 12 12 13
+             267:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 261 31 18 262 49 12 12 13
+             268:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 269 22 18 222 12 21 269 12 13 251 254 255 258 260 263 264 267
+             270:             TypePointer Uniform 250(UBO)
+             271:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 268 24 12
+        272(ubo):    270(ptr) Variable Uniform
+             273:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 274 268 18 222 12 21 274 272(ubo) 49
+             275:     50(int) Constant 4
+             276:             TypePointer Uniform 29(float)
+             277:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 31 24 12
+             281:             TypePointer Function 29(float)
+             282:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 31 35 12
+             288:      7(int) Constant 71
+289(gl_PerVertex):             TypeStruct 155(fvec4) 29(float) 163 163
+             291:      7(int) Constant 165
+             290:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 167 156 18 22 291 12 12 13
+             293:      7(int) Constant 183
+             292:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 170 31 18 22 293 12 12 13
+             295:      7(int) Constant 226
+             294:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 173 164 18 22 295 12 12 13
+             296:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 173 164 18 22 295 12 12 13
+             297:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 177 22 18 288 12 21 177 12 13 290 292 294 296
+             298:             TypePointer Output 289(gl_PerVertex)
+             299:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 297 13 12
+             300:    298(ptr) Variable Output
+             301:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 1 297 18 288 12 21 1 300 49
+             302:             TypePointer Uniform 242
+             303:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 243 24 12
+             311:             TypePointer Output 155(fvec4)
+             312:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 156 13 12
+             315:      7(int) Constant 74
+ 316(outViewVec):    142(ptr) Variable Output
+             317:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 318 62 18 315 12 21 318 316(outViewVec) 49
+             323:      7(int) Constant 75
+324(outLightVec):    142(ptr) Variable Output
+             325:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 326 62 18 323 12 21 326 324(outLightVec) 49
+             327:             TypePointer Uniform 155(fvec4)
+             328:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 156 24 12
+             336:      7(int) Constant 76
+337(outWorldPos):    142(ptr) Variable Output
+             338:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 339 62 18 336 12 21 339 337(outWorldPos) 49
+             343:      7(int) Constant 77
+  344(outEyePos):    142(ptr) Variable Output
+             345:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 346 62 18 343 12 21 346 344(outEyePos) 49
                               Line 1 53 11
         14(main):           4 Function None 5
-              23:             Label
-         34(uv1):     33(ptr) Variable Function
-         69(uv2):     33(ptr) Variable Function
-          98(n1):     97(ptr) Variable Function
-         118(n2):     97(ptr) Variable Function
-       147(pos1):    146(ptr) Variable Function
-       183(pos2):    146(ptr) Variable Function
-        197(pos):    146(ptr) Variable Function
-              24:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 16 14(main)
-              25:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-              26:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 27 27 12 12
-              37:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 35 34(uv1) 38
-              51:     50(ptr) AccessChain 42(inUV) 49
-              52:   31(fvec2) Load 51
-              54:     50(ptr) AccessChain 42(inUV) 53
-              55:   31(fvec2) Load 54
-              63:     62(ptr) AccessChain 59(gl_TessCoord) 12
-              64:   28(float) Load 63
-              65:   31(fvec2) CompositeConstruct 64 64
-              66:   31(fvec2) ExtInst 3(GLSL.std.450) 46(FMix) 52 55 65
-                              Store 34(uv1) 66
-              67:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 68 68 12 12
-              72:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 70 69(uv2) 38
-              74:     50(ptr) AccessChain 42(inUV) 73
-              75:   31(fvec2) Load 74
-              77:     50(ptr) AccessChain 42(inUV) 76
-              78:   31(fvec2) Load 77
-              79:     62(ptr) AccessChain 59(gl_TessCoord) 12
-              80:   28(float) Load 79
-              81:   31(fvec2) CompositeConstruct 80 80
-              82:   31(fvec2) ExtInst 3(GLSL.std.450) 46(FMix) 75 78 81
-                              Store 69(uv2) 82
-              83:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 84 84 12 12
-              89:   31(fvec2) Load 34(uv1)
-              90:   31(fvec2) Load 69(uv2)
-              91:     62(ptr) AccessChain 59(gl_TessCoord) 20
-              92:   28(float) Load 91
-              93:   31(fvec2) CompositeConstruct 92 92
-              94:   31(fvec2) ExtInst 3(GLSL.std.450) 46(FMix) 89 90 93
-                              Store 86(outUV) 94
-              95:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 96 96 12 12
-             101:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 99 98(n1) 38
-             108:     58(ptr) AccessChain 105(inNormal) 49
-             109:   56(fvec3) Load 108
-             110:     58(ptr) AccessChain 105(inNormal) 53
-             111:   56(fvec3) Load 110
-             112:     62(ptr) AccessChain 59(gl_TessCoord) 12
-             113:   28(float) Load 112
-             114:   56(fvec3) CompositeConstruct 113 113 113
-             115:   56(fvec3) ExtInst 3(GLSL.std.450) 46(FMix) 109 111 114
-                              Store 98(n1) 115
-             116:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 117 117 12 12
-             121:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 119 118(n2) 38
-             122:     58(ptr) AccessChain 105(inNormal) 73
-             123:   56(fvec3) Load 122
-             124:     58(ptr) AccessChain 105(inNormal) 76
-             125:   56(fvec3) Load 124
-             126:     62(ptr) AccessChain 59(gl_TessCoord) 12
-             127:   28(float) Load 126
-             128:   56(fvec3) CompositeConstruct 127 127 127
-             129:   56(fvec3) ExtInst 3(GLSL.std.450) 46(FMix) 123 125 128
-                              Store 118(n2) 129
-             130:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 131 131 12 12
-             136:   56(fvec3) Load 98(n1)
-             137:   56(fvec3) Load 118(n2)
-             138:     62(ptr) AccessChain 59(gl_TessCoord) 20
-             139:   28(float) Load 138
-             140:   56(fvec3) CompositeConstruct 139 139 139
-             141:   56(fvec3) ExtInst 3(GLSL.std.450) 46(FMix) 136 137 140
-                              Store 133(outNormal) 141
-             142:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 143 143 12 12
-             150:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 148 147(pos1) 38
-             173:    172(ptr) AccessChain 169(gl_in) 49 49
-             174:  144(fvec4) Load 173
-             175:    172(ptr) AccessChain 169(gl_in) 53 49
-             176:  144(fvec4) Load 175
-             177:     62(ptr) AccessChain 59(gl_TessCoord) 12
-             178:   28(float) Load 177
-             179:  144(fvec4) CompositeConstruct 178 178 178 178
-             180:  144(fvec4) ExtInst 3(GLSL.std.450) 46(FMix) 174 176 179
-                              Store 147(pos1) 180
-             181:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 182 182 12 12
-             186:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 184 183(pos2) 38
-             187:    172(ptr) AccessChain 169(gl_in) 73 49
-             188:  144(fvec4) Load 187
-             189:    172(ptr) AccessChain 169(gl_in) 76 49
-             190:  144(fvec4) Load 189
-             191:     62(ptr) AccessChain 59(gl_TessCoord) 12
-             192:   28(float) Load 191
-             193:  144(fvec4) CompositeConstruct 192 192 192 192
-             194:  144(fvec4) ExtInst 3(GLSL.std.450) 46(FMix) 188 190 193
-                              Store 183(pos2) 194
-             195:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 196 196 12 12
-             200:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 198 197(pos) 38
-             201:  144(fvec4) Load 147(pos1)
-             202:  144(fvec4) Load 183(pos2)
-             203:     62(ptr) AccessChain 59(gl_TessCoord) 20
-             204:   28(float) Load 203
-             205:  144(fvec4) CompositeConstruct 204 204 204 204
-             206:  144(fvec4) ExtInst 3(GLSL.std.450) 46(FMix) 201 202 205
-                              Store 197(pos) 206
-             207:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 208 208 12 12
-             222:         214 Load 219(displacementMap)
-             223:   31(fvec2) Load 86(outUV)
-             225:  144(fvec4) ImageSampleExplicitLod 222 223 Lod 224
-             226:   28(float) CompositeExtract 225 0
-             260:    259(ptr) AccessChain 255(ubo) 258
-             261:   28(float) Load 260
-             262:   28(float) FMul 226 261
-             264:    263(ptr) AccessChain 197(pos) 20
-             265:   28(float) Load 264
-             266:   28(float) FSub 265 262
-             267:    263(ptr) AccessChain 197(pos) 20
-                              Store 267 266
-             268:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 269 269 12 12
-             283:    282(ptr) AccessChain 255(ubo) 49
-             284:         227 Load 283
-             285:    282(ptr) AccessChain 255(ubo) 53
-             286:         227 Load 285
-             287:         227 MatrixTimesMatrix 284 286
-             288:  144(fvec4) Load 197(pos)
-             289:  144(fvec4) MatrixTimesVector 287 288
-             291:    290(ptr) AccessChain 280 49
-                              Store 291 289
-             292:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 293 293 12 12
-             297:  144(fvec4) Load 197(pos)
-             298:   56(fvec3) VectorShuffle 297 297 0 1 2
-             299:   56(fvec3) FNegate 298
-                              Store 294(outViewVec) 299
-             300:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 301 301 12 12
-             306:    305(ptr) AccessChain 255(ubo) 76
-             307:  144(fvec4) Load 306
-             308:   56(fvec3) VectorShuffle 307 307 0 1 2
-             309:   56(fvec3) Load 294(outViewVec)
-             310:   56(fvec3) FAdd 308 309
-             311:   56(fvec3) ExtInst 3(GLSL.std.450) 69(Normalize) 310
-                              Store 302(outLightVec) 311
-             312:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 313 313 12 12
-             317:  144(fvec4) Load 197(pos)
-             318:   56(fvec3) VectorShuffle 317 317 0 1 2
-                              Store 314(outWorldPos) 318
-             319:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 320 320 12 12
-             324:    282(ptr) AccessChain 255(ubo) 53
-             325:         227 Load 324
-             326:  144(fvec4) Load 197(pos)
-             327:  144(fvec4) MatrixTimesVector 325 326
-             328:   28(float) CompositeExtract 327 0
-             329:   28(float) CompositeExtract 327 1
-             330:   28(float) CompositeExtract 327 2
-             331:   56(fvec3) CompositeConstruct 328 329 330
-                              Store 321(outEyePos) 331
+              15:             Label
+         37(uv1):     34(ptr) Variable Function
+         76(uv2):     34(ptr) Variable Function
+         107(n1):    105(ptr) Variable Function
+         128(n2):    105(ptr) Variable Function
+       159(pos1):    157(ptr) Variable Function
+       197(pos2):    157(ptr) Variable Function
+        211(pos):    157(ptr) Variable Function
+              25:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 17 14(main)
+              26:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17
+              27:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 28 28 12 12
+              40:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 38 37(uv1) 41
+              56:     54(ptr) AccessChain 46(inUV) 53
+              57:   32(fvec2) Load 56
+              59:     54(ptr) AccessChain 46(inUV) 58
+              60:   32(fvec2) Load 59
+              70:     68(ptr) AccessChain 65(gl_TessCoord) 12
+              71:   29(float) Load 70
+              72:   32(fvec2) CompositeConstruct 71 71
+              73:   32(fvec2) ExtInst 3(GLSL.std.450) 46(FMix) 57 60 72
+                              Store 37(uv1) 73
+              74:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 75 75 12 12
+              79:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 77 76(uv2) 41
+              81:     54(ptr) AccessChain 46(inUV) 80
+              82:   32(fvec2) Load 81
+              84:     54(ptr) AccessChain 46(inUV) 83
+              85:   32(fvec2) Load 84
+              86:     68(ptr) AccessChain 65(gl_TessCoord) 12
+              87:   29(float) Load 86
+              88:   32(fvec2) CompositeConstruct 87 87
+              89:   32(fvec2) ExtInst 3(GLSL.std.450) 46(FMix) 82 85 88
+                              Store 76(uv2) 89
+              90:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 91 91 12 12
+              97:   32(fvec2) Load 37(uv1)
+              98:   32(fvec2) Load 76(uv2)
+              99:     68(ptr) AccessChain 65(gl_TessCoord) 22
+             100:   29(float) Load 99
+             101:   32(fvec2) CompositeConstruct 100 100
+             102:   32(fvec2) ExtInst 3(GLSL.std.450) 46(FMix) 97 98 101
+                              Store 94(outUV) 102
+             103:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 104 104 12 12
+             110:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 108 107(n1) 41
+             118:     63(ptr) AccessChain 115(inNormal) 53
+             119:   61(fvec3) Load 118
+             120:     63(ptr) AccessChain 115(inNormal) 58
+             121:   61(fvec3) Load 120
+             122:     68(ptr) AccessChain 65(gl_TessCoord) 12
+             123:   29(float) Load 122
+             124:   61(fvec3) CompositeConstruct 123 123 123
+             125:   61(fvec3) ExtInst 3(GLSL.std.450) 46(FMix) 119 121 124
+                              Store 107(n1) 125
+             126:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 127 127 12 12
+             131:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 129 128(n2) 41
+             132:     63(ptr) AccessChain 115(inNormal) 80
+             133:   61(fvec3) Load 132
+             134:     63(ptr) AccessChain 115(inNormal) 83
+             135:   61(fvec3) Load 134
+             136:     68(ptr) AccessChain 65(gl_TessCoord) 12
+             137:   29(float) Load 136
+             138:   61(fvec3) CompositeConstruct 137 137 137
+             139:   61(fvec3) ExtInst 3(GLSL.std.450) 46(FMix) 133 135 138
+                              Store 128(n2) 139
+             140:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 141 141 12 12
+             147:   61(fvec3) Load 107(n1)
+             148:   61(fvec3) Load 128(n2)
+             149:     68(ptr) AccessChain 65(gl_TessCoord) 22
+             150:   29(float) Load 149
+             151:   61(fvec3) CompositeConstruct 150 150 150
+             152:   61(fvec3) ExtInst 3(GLSL.std.450) 46(FMix) 147 148 151
+                              Store 144(outNormal) 152
+             153:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 154 154 12 12
+             162:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 160 159(pos1) 41
+             187:    185(ptr) AccessChain 182(gl_in) 53 53
+             188:  155(fvec4) Load 187
+             189:    185(ptr) AccessChain 182(gl_in) 58 53
+             190:  155(fvec4) Load 189
+             191:     68(ptr) AccessChain 65(gl_TessCoord) 12
+             192:   29(float) Load 191
+             193:  155(fvec4) CompositeConstruct 192 192 192 192
+             194:  155(fvec4) ExtInst 3(GLSL.std.450) 46(FMix) 188 190 193
+                              Store 159(pos1) 194
+             195:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 196 196 12 12
+             200:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 198 197(pos2) 41
+             201:    185(ptr) AccessChain 182(gl_in) 80 53
+             202:  155(fvec4) Load 201
+             203:    185(ptr) AccessChain 182(gl_in) 83 53
+             204:  155(fvec4) Load 203
+             205:     68(ptr) AccessChain 65(gl_TessCoord) 12
+             206:   29(float) Load 205
+             207:  155(fvec4) CompositeConstruct 206 206 206 206
+             208:  155(fvec4) ExtInst 3(GLSL.std.450) 46(FMix) 202 204 207
+                              Store 197(pos2) 208
+             209:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 210 210 12 12
+             214:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 212 211(pos) 41
+             215:  155(fvec4) Load 159(pos1)
+             216:  155(fvec4) Load 197(pos2)
+             217:     68(ptr) AccessChain 65(gl_TessCoord) 22
+             218:   29(float) Load 217
+             219:  155(fvec4) CompositeConstruct 218 218 218 218
+             220:  155(fvec4) ExtInst 3(GLSL.std.450) 46(FMix) 215 216 219
+                              Store 211(pos) 220
+             221:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 222 222 12 12
+             237:         228 Load 234(displacementMap)
+             238:   32(fvec2) Load 94(outUV)
+             240:  155(fvec4) ImageSampleExplicitLod 237 238 Lod 239
+             241:   29(float) CompositeExtract 240 0
+             278:    276(ptr) AccessChain 272(ubo) 275
+             279:   29(float) Load 278
+             280:   29(float) FMul 241 279
+             283:    281(ptr) AccessChain 211(pos) 22
+             284:   29(float) Load 283
+             285:   29(float) FSub 284 280
+             286:    281(ptr) AccessChain 211(pos) 22
+                              Store 286 285
+             287:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 288 288 12 12
+             304:    302(ptr) AccessChain 272(ubo) 53
+             305:         242 Load 304
+             306:    302(ptr) AccessChain 272(ubo) 58
+             307:         242 Load 306
+             308:         242 MatrixTimesMatrix 305 307
+             309:  155(fvec4) Load 211(pos)
+             310:  155(fvec4) MatrixTimesVector 308 309
+             313:    311(ptr) AccessChain 300 53
+                              Store 313 310
+             314:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 315 315 12 12
+             319:  155(fvec4) Load 211(pos)
+             320:   61(fvec3) VectorShuffle 319 319 0 1 2
+             321:   61(fvec3) FNegate 320
+                              Store 316(outViewVec) 321
+             322:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 323 323 12 12
+             329:    327(ptr) AccessChain 272(ubo) 83
+             330:  155(fvec4) Load 329
+             331:   61(fvec3) VectorShuffle 330 330 0 1 2
+             332:   61(fvec3) Load 316(outViewVec)
+             333:   61(fvec3) FAdd 331 332
+             334:   61(fvec3) ExtInst 3(GLSL.std.450) 69(Normalize) 333
+                              Store 324(outLightVec) 334
+             335:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 336 336 12 12
+             340:  155(fvec4) Load 211(pos)
+             341:   61(fvec3) VectorShuffle 340 340 0 1 2
+                              Store 337(outWorldPos) 341
+             342:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 343 343 12 12
+             347:    302(ptr) AccessChain 272(ubo) 58
+             348:         242 Load 347
+             349:  155(fvec4) Load 211(pos)
+             350:  155(fvec4) MatrixTimesVector 348 349
+             351:   29(float) CompositeExtract 350 0
+             352:   29(float) CompositeExtract 350 1
+             353:   29(float) CompositeExtract 350 2
+             354:   61(fvec3) CompositeConstruct 351 352 353
+                              Store 344(outEyePos) 354
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.debuginfo.glsl.vert.out b/Test/baseResults/spv.debuginfo.glsl.vert.out
index e0c9d60..b185b1d 100644
--- a/Test/baseResults/spv.debuginfo.glsl.vert.out
+++ b/Test/baseResults/spv.debuginfo.glsl.vert.out
@@ -1,18 +1,18 @@
 spv.debuginfo.glsl.vert
 // Module Version 10000
 // Generated by (magic number): 8000b
-// Id's are bound by 424
+// Id's are bound by 443
 
                               Capability Shader
                               Extension  "SPV_KHR_non_semantic_info"
                2:             ExtInstImport  "NonSemantic.Shader.DebugInfo.100"
                3:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Vertex 14  "main" 34 39 45 51 59 75 289 307 312 337 353 370 409 418
+                              EntryPoint Vertex 14  "main" 36 42 48 55 64 82 304 322 327 353 371 388 428 437
                1:             String  ""
-               9:             String  "uint"
-              15:             String  "main"
-              18:             String  "// OpModuleProcessed auto-map-locations
+               8:             String  "uint"
+              16:             String  "main"
+              19:             String  "// OpModuleProcessed auto-map-locations
 // OpModuleProcessed auto-map-bindings
 // OpModuleProcessed client vulkan100
 // OpModuleProcessed target-env vulkan1.0
@@ -20,522 +20,541 @@
 // OpModuleProcessed entry-point main
 #line 1
 "
-              29:             String  "float"
-              36:             String  "outColor"
-              41:             String  "inColor"
-              47:             String  "outUV"
-              53:             String  "inUV"
-              56:             String  "int"
-              61:             String  "instanceTexIndex"
-              72:             String  "s"
-              77:             String  "instanceRot"
-              89:             String  "modelview"
-              94:             String  "lightPos"
-              97:             String  "globSpeed"
-             101:             String  "UBO"
-             105:             String  "ubo"
-             116:             String  "c"
-             131:             String  "mx"
-             174:             String  "my"
-             211:             String  "mz"
-             232:             String  "rotMat"
-             261:             String  "gRotMat"
-             287:             String  "locPos"
-             291:             String  "inPos"
-             303:             String  "pos"
-             309:             String  "instanceScale"
-             314:             String  "instancePos"
-             327:             String  "gl_Position"
-             330:             String  "gl_PointSize"
-             332:             String  "gl_CullDistance"
-             335:             String  "gl_PerVertex"
-             355:             String  "outNormal"
-             372:             String  "inNormal"
-             391:             String  "lPos"
-             411:             String  "outLightVec"
-             420:             String  "outViewVec"
+              30:             String  "float"
+              38:             String  "outColor"
+              44:             String  "inColor"
+              50:             String  "outUV"
+              57:             String  "inUV"
+              60:             String  "int"
+              66:             String  "instanceTexIndex"
+              79:             String  "s"
+              84:             String  "instanceRot"
+              94:             String  "bool"
+              99:             String  "modelview"
+             103:             String  "lightPos"
+             106:             String  "globSpeed"
+             110:             String  "UBO"
+             115:             String  "ubo"
+             127:             String  "c"
+             143:             String  "mx"
+             187:             String  "my"
+             224:             String  "mz"
+             245:             String  "rotMat"
+             275:             String  "gRotMat"
+             302:             String  "locPos"
+             306:             String  "inPos"
+             318:             String  "pos"
+             324:             String  "instanceScale"
+             329:             String  "instancePos"
+             342:             String  "gl_Position"
+             345:             String  "gl_PointSize"
+             347:             String  "gl_CullDistance"
+             350:             String  "gl_PerVertex"
+             373:             String  "outNormal"
+             390:             String  "inNormal"
+             409:             String  "lPos"
+             430:             String  "outLightVec"
+             439:             String  "outViewVec"
                               Name 14  "main"
-                              Name 34  "outColor"
-                              Name 39  "inColor"
-                              Name 45  "outUV"
-                              Name 51  "inUV"
-                              Name 59  "instanceTexIndex"
-                              Name 70  "s"
-                              Name 75  "instanceRot"
-                              Name 87  "UBO"
-                              MemberName 87(UBO) 0  "projection"
-                              MemberName 87(UBO) 1  "modelview"
-                              MemberName 87(UBO) 2  "lightPos"
-                              MemberName 87(UBO) 3  "locSpeed"
-                              MemberName 87(UBO) 4  "globSpeed"
-                              Name 103  "ubo"
-                              Name 114  "c"
-                              Name 129  "mx"
-                              Name 172  "my"
-                              Name 209  "mz"
-                              Name 230  "rotMat"
-                              Name 259  "gRotMat"
-                              Name 285  "locPos"
-                              Name 289  "inPos"
-                              Name 301  "pos"
-                              Name 307  "instanceScale"
-                              Name 312  "instancePos"
-                              Name 325  "gl_PerVertex"
-                              MemberName 325(gl_PerVertex) 0  "gl_Position"
-                              MemberName 325(gl_PerVertex) 1  "gl_PointSize"
-                              MemberName 325(gl_PerVertex) 2  "gl_ClipDistance"
-                              MemberName 325(gl_PerVertex) 3  "gl_CullDistance"
-                              Name 337  ""
-                              Name 353  "outNormal"
-                              Name 370  "inNormal"
-                              Name 389  "lPos"
-                              Name 409  "outLightVec"
-                              Name 418  "outViewVec"
-                              Decorate 34(outColor) Location 1
-                              Decorate 39(inColor) Location 3
-                              Decorate 45(outUV) Location 2
-                              Decorate 51(inUV) Location 2
-                              Decorate 59(instanceTexIndex) Location 7
-                              Decorate 75(instanceRot) Location 5
-                              MemberDecorate 87(UBO) 0 ColMajor
-                              MemberDecorate 87(UBO) 0 Offset 0
-                              MemberDecorate 87(UBO) 0 MatrixStride 16
-                              MemberDecorate 87(UBO) 1 ColMajor
-                              MemberDecorate 87(UBO) 1 Offset 64
-                              MemberDecorate 87(UBO) 1 MatrixStride 16
-                              MemberDecorate 87(UBO) 2 Offset 128
-                              MemberDecorate 87(UBO) 3 Offset 144
-                              MemberDecorate 87(UBO) 4 Offset 148
-                              Decorate 87(UBO) Block
-                              Decorate 103(ubo) DescriptorSet 0
-                              Decorate 103(ubo) Binding 0
-                              Decorate 289(inPos) Location 0
-                              Decorate 307(instanceScale) Location 6
-                              Decorate 312(instancePos) Location 4
-                              MemberDecorate 325(gl_PerVertex) 0 BuiltIn Position
-                              MemberDecorate 325(gl_PerVertex) 1 BuiltIn PointSize
-                              MemberDecorate 325(gl_PerVertex) 2 BuiltIn ClipDistance
-                              MemberDecorate 325(gl_PerVertex) 3 BuiltIn CullDistance
-                              Decorate 325(gl_PerVertex) Block
-                              Decorate 353(outNormal) Location 0
-                              Decorate 370(inNormal) Location 1
-                              Decorate 409(outLightVec) Location 4
-                              Decorate 418(outViewVec) Location 3
+                              Name 36  "outColor"
+                              Name 42  "inColor"
+                              Name 48  "outUV"
+                              Name 55  "inUV"
+                              Name 64  "instanceTexIndex"
+                              Name 77  "s"
+                              Name 82  "instanceRot"
+                              Name 97  "UBO"
+                              MemberName 97(UBO) 0  "projection"
+                              MemberName 97(UBO) 1  "modelview"
+                              MemberName 97(UBO) 2  "lightPos"
+                              MemberName 97(UBO) 3  "locSpeed"
+                              MemberName 97(UBO) 4  "globSpeed"
+                              Name 113  "ubo"
+                              Name 125  "c"
+                              Name 141  "mx"
+                              Name 185  "my"
+                              Name 222  "mz"
+                              Name 243  "rotMat"
+                              Name 273  "gRotMat"
+                              Name 300  "locPos"
+                              Name 304  "inPos"
+                              Name 316  "pos"
+                              Name 322  "instanceScale"
+                              Name 327  "instancePos"
+                              Name 340  "gl_PerVertex"
+                              MemberName 340(gl_PerVertex) 0  "gl_Position"
+                              MemberName 340(gl_PerVertex) 1  "gl_PointSize"
+                              MemberName 340(gl_PerVertex) 2  "gl_ClipDistance"
+                              MemberName 340(gl_PerVertex) 3  "gl_CullDistance"
+                              Name 353  ""
+                              Name 371  "outNormal"
+                              Name 388  "inNormal"
+                              Name 407  "lPos"
+                              Name 428  "outLightVec"
+                              Name 437  "outViewVec"
+                              Decorate 36(outColor) Location 1
+                              Decorate 42(inColor) Location 3
+                              Decorate 48(outUV) Location 2
+                              Decorate 55(inUV) Location 2
+                              Decorate 64(instanceTexIndex) Location 7
+                              Decorate 82(instanceRot) Location 5
+                              MemberDecorate 97(UBO) 0 ColMajor
+                              MemberDecorate 97(UBO) 0 Offset 0
+                              MemberDecorate 97(UBO) 0 MatrixStride 16
+                              MemberDecorate 97(UBO) 1 ColMajor
+                              MemberDecorate 97(UBO) 1 Offset 64
+                              MemberDecorate 97(UBO) 1 MatrixStride 16
+                              MemberDecorate 97(UBO) 2 Offset 128
+                              MemberDecorate 97(UBO) 3 Offset 144
+                              MemberDecorate 97(UBO) 4 Offset 148
+                              Decorate 97(UBO) Block
+                              Decorate 113(ubo) DescriptorSet 0
+                              Decorate 113(ubo) Binding 0
+                              Decorate 304(inPos) Location 0
+                              Decorate 322(instanceScale) Location 6
+                              Decorate 327(instancePos) Location 4
+                              MemberDecorate 340(gl_PerVertex) 0 BuiltIn Position
+                              MemberDecorate 340(gl_PerVertex) 1 BuiltIn PointSize
+                              MemberDecorate 340(gl_PerVertex) 2 BuiltIn ClipDistance
+                              MemberDecorate 340(gl_PerVertex) 3 BuiltIn CullDistance
+                              Decorate 340(gl_PerVertex) Block
+                              Decorate 371(outNormal) Location 0
+                              Decorate 388(inNormal) Location 1
+                              Decorate 428(outLightVec) Location 4
+                              Decorate 437(outViewVec) Location 3
                4:             TypeVoid
                5:             TypeFunction 4
                7:             TypeInt 32 0
               10:      7(int) Constant 32
               11:      7(int) Constant 6
               12:      7(int) Constant 0
-               8:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 9 10 11 12
+               9:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 8 10 11 12
               13:      7(int) Constant 3
                6:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 4
-              17:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 1 18
-              20:      7(int) Constant 1
-              21:      7(int) Constant 4
-              22:      7(int) Constant 2
-              19:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 20 21 17 22
-              16:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 15 6 17 12 12 19 15 13 12
-              27:      7(int) Constant 56
-              28:             TypeFloat 32
-              30:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 29 10 13 12
-              31:             TypeVector 28(float) 3
-              32:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 30 13
-              33:             TypePointer Output 31(fvec3)
-    34(outColor):     33(ptr) Variable Output
-              37:      7(int) Constant 8
-              35:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 36 32 17 27 12 19 36 34(outColor) 37
-              38:             TypePointer Input 31(fvec3)
-     39(inColor):     38(ptr) Variable Input
-              40:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 41 32 17 27 12 19 41 39(inColor) 37
-              44:      7(int) Constant 57
-       45(outUV):     33(ptr) Variable Output
-              46:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 47 32 17 44 12 19 47 45(outUV) 37
-              48:             TypeVector 28(float) 2
-              49:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 30 22
-              50:             TypePointer Input 48(fvec2)
-        51(inUV):     50(ptr) Variable Input
-              52:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 53 49 17 44 12 19 53 51(inUV) 37
-              55:             TypeInt 32 1
-              57:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 56 10 21 12
-              58:             TypePointer Input 55(int)
-59(instanceTexIndex):     58(ptr) Variable Input
-              60:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 61 57 17 44 12 19 61 59(instanceTexIndex) 37
-              68:      7(int) Constant 62
-              69:             TypePointer Function 28(float)
-              71:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 72 30 17 68 12 16 21
-              74:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
- 75(instanceRot):     38(ptr) Variable Input
-              76:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 77 32 17 68 12 19 77 75(instanceRot) 37
-              78:             TypePointer Input 28(float)
-              81:             TypeVector 28(float) 4
-              82:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 30 21
-              83:             TypeMatrix 81(fvec4) 4
-              85:             TypeBool
-              86:    85(bool) ConstantTrue
-              84:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 82 21 86
-         87(UBO):             TypeStruct 83 83 81(fvec4) 28(float) 28(float)
-              90:      7(int) Constant 42
-              91:      7(int) Constant 7
-              88:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 89 84 17 90 91 12 12 13
-              92:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 89 84 17 90 91 12 12 13
-              95:      7(int) Constant 43
-              93:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 94 82 17 95 91 12 12 13
-              98:      7(int) Constant 45
-              96:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 97 30 17 98 37 12 12 13
-              99:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 97 30 17 98 37 12 12 13
-             100:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 101 20 17 68 12 19 101 12 13 88 92 93 96 99
-             102:             TypePointer Uniform 87(UBO)
-        103(ubo):    102(ptr) Variable Uniform
-             104:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 105 100 17 68 12 19 105 103(ubo) 37
-             106:     55(int) Constant 3
-             107:             TypePointer Uniform 28(float)
-             113:      7(int) Constant 63
-             115:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 116 30 17 113 12 16 21
-             125:      7(int) Constant 65
-             126:             TypeMatrix 31(fvec3) 3
-             127:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 32 13 86
-             128:             TypePointer Function 126
-             130:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 131 127 17 125 12 16 21
-             133:     55(int) Constant 0
-             136:   28(float) Constant 0
-             138:             TypePointer Function 31(fvec3)
-             141:      7(int) Constant 66
-             142:     55(int) Constant 1
-             149:      7(int) Constant 67
-             150:     55(int) Constant 2
-             151:   28(float) Constant 1065353216
-             152:   31(fvec3) ConstantComposite 136 136 151
-             155:      7(int) Constant 70
-             163:      7(int) Constant 71
-             171:      7(int) Constant 73
-             173:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 174 127 17 171 12 16 21
-             181:      7(int) Constant 74
-             182:   31(fvec3) ConstantComposite 136 151 136
-             185:      7(int) Constant 75
-             192:      7(int) Constant 78
-             200:      7(int) Constant 79
-             208:      7(int) Constant 81
-             210:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 211 127 17 208 12 16 21
-             213:   31(fvec3) ConstantComposite 151 136 136
-             216:      7(int) Constant 82
-             222:      7(int) Constant 83
-             229:      7(int) Constant 85
-             231:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 232 127 17 229 12 16 21
-             240:      7(int) Constant 88
-             243:     55(int) Constant 4
-             249:      7(int) Constant 89
-             257:      7(int) Constant 90
-             258:             TypePointer Function 83
-             260:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 261 84 17 257 12 16 21
-             266:             TypePointer Function 81(fvec4)
-             269:      7(int) Constant 91
-             270:   81(fvec4) ConstantComposite 136 151 136 136
-             273:      7(int) Constant 92
-             280:      7(int) Constant 93
-             281:   81(fvec4) ConstantComposite 136 136 136 151
-             284:      7(int) Constant 95
-             286:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 287 82 17 284 12 16 21
-      289(inPos):     38(ptr) Variable Input
-             290:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 291 32 17 284 12 19 291 289(inPos) 37
-             300:      7(int) Constant 96
-             302:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 303 82 17 300 12 16 21
-307(instanceScale):     78(ptr) Variable Input
-             308:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 309 30 17 300 12 19 309 307(instanceScale) 37
-312(instancePos):     38(ptr) Variable Input
-             313:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 314 32 17 300 12 19 314 312(instancePos) 37
-             322:      7(int) Constant 98
-             323:             TypeArray 28(float) 20
-             324:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 30 20
-325(gl_PerVertex):             TypeStruct 81(fvec4) 28(float) 323 323
-             328:      7(int) Constant 24
-             326:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 327 82 17 20 328 12 12 13
-             329:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 330 30 17 20 90 12 12 13
-             331:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 332 324 17 20 229 12 12 13
-             333:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 332 324 17 20 229 12 12 13
-             334:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 335 20 17 322 12 19 335 12 13 326 329 331 333
-             336:             TypePointer Output 325(gl_PerVertex)
-             337:    336(ptr) Variable Output
-             338:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 1 334 17 322 12 19 1 337 37
-             339:             TypePointer Uniform 83
-             349:             TypePointer Output 81(fvec4)
-             352:      7(int) Constant 99
-  353(outNormal):     33(ptr) Variable Output
-             354:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 355 32 17 352 12 19 355 353(outNormal) 37
-   370(inNormal):     38(ptr) Variable Input
-             371:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 372 32 17 352 12 19 372 370(inNormal) 37
-             376:      7(int) Constant 101
-             388:      7(int) Constant 102
-             390:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 391 32 17 388 12 16 21
-             402:             TypePointer Uniform 81(fvec4)
-             408:      7(int) Constant 103
-409(outLightVec):     33(ptr) Variable Output
-             410:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 411 32 17 408 12 19 411 409(outLightVec) 37
-             417:      7(int) Constant 104
- 418(outViewVec):     33(ptr) Variable Output
-             419:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 420 32 17 417 12 19 420 418(outViewVec) 37
+              18:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 1 19
+              20:      7(int) Constant 54
+              22:      7(int) Constant 1
+              23:      7(int) Constant 4
+              24:      7(int) Constant 2
+              21:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 22 23 18 24
+              17:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 16 6 18 20 12 21 16 13 20
+              28:      7(int) Constant 56
+              29:             TypeFloat 32
+              31:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 30 10 13 12
+              32:             TypeVector 29(float) 3
+              33:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 31 13
+              34:             TypePointer Output 32(fvec3)
+              35:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 33 13 12
+    36(outColor):     34(ptr) Variable Output
+              39:      7(int) Constant 8
+              37:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 38 33 18 28 12 21 38 36(outColor) 39
+              40:             TypePointer Input 32(fvec3)
+              41:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 33 22 12
+     42(inColor):     40(ptr) Variable Input
+              43:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 44 33 18 28 12 21 44 42(inColor) 39
+              47:      7(int) Constant 57
+       48(outUV):     34(ptr) Variable Output
+              49:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 50 33 18 47 12 21 50 48(outUV) 39
+              51:             TypeVector 29(float) 2
+              52:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 31 24
+              53:             TypePointer Input 51(fvec2)
+              54:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 52 22 12
+        55(inUV):     53(ptr) Variable Input
+              56:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 57 52 18 47 12 21 57 55(inUV) 39
+              59:             TypeInt 32 1
+              61:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 60 10 23 12
+              62:             TypePointer Input 59(int)
+              63:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 61 22 12
+64(instanceTexIndex):     62(ptr) Variable Input
+              65:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 66 61 18 47 12 21 66 64(instanceTexIndex) 39
+              73:      7(int) Constant 62
+              74:             TypePointer Function 29(float)
+              75:      7(int) Constant 7
+              76:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 31 75 12
+              78:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 79 31 18 73 12 17 23
+              81:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
+ 82(instanceRot):     40(ptr) Variable Input
+              83:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 84 33 18 73 12 21 84 82(instanceRot) 39
+              85:             TypePointer Input 29(float)
+              86:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 31 22 12
+              89:             TypeVector 29(float) 4
+              90:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 31 23
+              91:             TypeMatrix 89(fvec4) 4
+              93:             TypeBool
+              95:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 94 10 24 12
+              96:    93(bool) ConstantTrue
+              92:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 90 23 96
+         97(UBO):             TypeStruct 91 91 89(fvec4) 29(float) 29(float)
+             100:      7(int) Constant 42
+              98:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 99 92 18 100 75 12 12 13
+             101:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 99 92 18 100 75 12 12 13
+             104:      7(int) Constant 43
+             102:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 103 90 18 104 75 12 12 13
+             107:      7(int) Constant 45
+             105:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 106 31 18 107 39 12 12 13
+             108:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 106 31 18 107 39 12 12 13
+             109:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 110 22 18 73 12 21 110 12 13 98 101 102 105 108
+             111:             TypePointer Uniform 97(UBO)
+             112:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 109 24 12
+        113(ubo):    111(ptr) Variable Uniform
+             114:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 115 109 18 73 12 21 115 113(ubo) 39
+             116:     59(int) Constant 3
+             117:             TypePointer Uniform 29(float)
+             118:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 31 24 12
+             124:      7(int) Constant 63
+             126:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 127 31 18 124 12 17 23
+             136:      7(int) Constant 65
+             137:             TypeMatrix 32(fvec3) 3
+             138:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 33 13 96
+             139:             TypePointer Function 137
+             140:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 138 75 12
+             142:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 143 138 18 136 12 17 23
+             145:     59(int) Constant 0
+             148:   29(float) Constant 0
+             150:             TypePointer Function 32(fvec3)
+             151:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 33 75 12
+             154:      7(int) Constant 66
+             155:     59(int) Constant 1
+             162:      7(int) Constant 67
+             163:     59(int) Constant 2
+             164:   29(float) Constant 1065353216
+             165:   32(fvec3) ConstantComposite 148 148 164
+             168:      7(int) Constant 70
+             176:      7(int) Constant 71
+             184:      7(int) Constant 73
+             186:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 187 138 18 184 12 17 23
+             194:      7(int) Constant 74
+             195:   32(fvec3) ConstantComposite 148 164 148
+             198:      7(int) Constant 75
+             205:      7(int) Constant 78
+             213:      7(int) Constant 79
+             221:      7(int) Constant 81
+             223:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 224 138 18 221 12 17 23
+             226:   32(fvec3) ConstantComposite 164 148 148
+             229:      7(int) Constant 82
+             235:      7(int) Constant 83
+             242:      7(int) Constant 85
+             244:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 245 138 18 242 12 17 23
+             253:      7(int) Constant 88
+             256:     59(int) Constant 4
+             262:      7(int) Constant 89
+             270:      7(int) Constant 90
+             271:             TypePointer Function 91
+             272:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 92 75 12
+             274:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 275 92 18 270 12 17 23
+             280:             TypePointer Function 89(fvec4)
+             281:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 90 75 12
+             284:      7(int) Constant 91
+             285:   89(fvec4) ConstantComposite 148 164 148 148
+             288:      7(int) Constant 92
+             295:      7(int) Constant 93
+             296:   89(fvec4) ConstantComposite 148 148 148 164
+             299:      7(int) Constant 95
+             301:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 302 90 18 299 12 17 23
+      304(inPos):     40(ptr) Variable Input
+             305:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 306 33 18 299 12 21 306 304(inPos) 39
+             315:      7(int) Constant 96
+             317:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 318 90 18 315 12 17 23
+322(instanceScale):     85(ptr) Variable Input
+             323:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 324 31 18 315 12 21 324 322(instanceScale) 39
+327(instancePos):     40(ptr) Variable Input
+             328:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 329 33 18 315 12 21 329 327(instancePos) 39
+             337:      7(int) Constant 98
+             338:             TypeArray 29(float) 22
+             339:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 31 22
+340(gl_PerVertex):             TypeStruct 89(fvec4) 29(float) 338 338
+             343:      7(int) Constant 24
+             341:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 342 90 18 22 343 12 12 13
+             344:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 345 31 18 22 100 12 12 13
+             346:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 347 339 18 22 242 12 12 13
+             348:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 347 339 18 22 242 12 12 13
+             349:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 350 22 18 337 12 21 350 12 13 341 344 346 348
+             351:             TypePointer Output 340(gl_PerVertex)
+             352:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 349 13 12
+             353:    351(ptr) Variable Output
+             354:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 1 349 18 337 12 21 1 353 39
+             355:             TypePointer Uniform 91
+             356:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 92 24 12
+             366:             TypePointer Output 89(fvec4)
+             367:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 90 13 12
+             370:      7(int) Constant 99
+  371(outNormal):     34(ptr) Variable Output
+             372:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 373 33 18 370 12 21 373 371(outNormal) 39
+   388(inNormal):     40(ptr) Variable Input
+             389:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 390 33 18 370 12 21 390 388(inNormal) 39
+             394:      7(int) Constant 101
+             406:      7(int) Constant 102
+             408:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 409 33 18 406 12 17 23
+             420:             TypePointer Uniform 89(fvec4)
+             421:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 90 24 12
+             427:      7(int) Constant 103
+428(outLightVec):     34(ptr) Variable Output
+             429:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 430 33 18 427 12 21 430 428(outLightVec) 39
+             436:      7(int) Constant 104
+ 437(outViewVec):     34(ptr) Variable Output
+             438:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 439 33 18 436 12 21 439 437(outViewVec) 39
                               Line 1 54 11
         14(main):           4 Function None 5
-              23:             Label
-           70(s):     69(ptr) Variable Function
-          114(c):     69(ptr) Variable Function
-         129(mx):    128(ptr) Variable Function
-         172(my):    128(ptr) Variable Function
-         209(mz):    128(ptr) Variable Function
-     230(rotMat):    128(ptr) Variable Function
-    259(gRotMat):    258(ptr) Variable Function
-     285(locPos):    266(ptr) Variable Function
-        301(pos):    266(ptr) Variable Function
-       389(lPos):    138(ptr) Variable Function
-              24:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 16 14(main)
-              25:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 16
-              26:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 27 27 12 12
-              42:   31(fvec3) Load 39(inColor)
-                              Store 34(outColor) 42
-              43:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 44 44 12 12
-              54:   48(fvec2) Load 51(inUV)
-              62:     55(int) Load 59(instanceTexIndex)
-              63:   28(float) ConvertSToF 62
-              64:   28(float) CompositeExtract 54 0
-              65:   28(float) CompositeExtract 54 1
-              66:   31(fvec3) CompositeConstruct 64 65 63
-                              Store 45(outUV) 66
-              67:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 68 68 12 12
-              73:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 71 70(s) 74
-              79:     78(ptr) AccessChain 75(instanceRot) 12
-              80:   28(float) Load 79
-             108:    107(ptr) AccessChain 103(ubo) 106
-             109:   28(float) Load 108
-             110:   28(float) FAdd 80 109
-             111:   28(float) ExtInst 3(GLSL.std.450) 13(Sin) 110
-                              Store 70(s) 111
-             112:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 113 113 12 12
-             117:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 115 114(c) 74
-             118:     78(ptr) AccessChain 75(instanceRot) 12
-             119:   28(float) Load 118
-             120:    107(ptr) AccessChain 103(ubo) 106
-             121:   28(float) Load 120
-             122:   28(float) FAdd 119 121
-             123:   28(float) ExtInst 3(GLSL.std.450) 14(Cos) 122
-                              Store 114(c) 123
-             124:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 125 125 12 12
-             132:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 130 129(mx) 74
-             134:   28(float) Load 114(c)
-             135:   28(float) Load 70(s)
-             137:   31(fvec3) CompositeConstruct 134 135 136
-             139:    138(ptr) AccessChain 129(mx) 133
-                              Store 139 137
-             140:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 141 141 12 12
-             143:   28(float) Load 70(s)
-             144:   28(float) FNegate 143
-             145:   28(float) Load 114(c)
-             146:   31(fvec3) CompositeConstruct 144 145 136
-             147:    138(ptr) AccessChain 129(mx) 142
-                              Store 147 146
-             148:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 149 149 12 12
-             153:    138(ptr) AccessChain 129(mx) 150
-                              Store 153 152
-             154:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 155 155 12 12
-             156:     78(ptr) AccessChain 75(instanceRot) 20
-             157:   28(float) Load 156
-             158:    107(ptr) AccessChain 103(ubo) 106
-             159:   28(float) Load 158
-             160:   28(float) FAdd 157 159
-             161:   28(float) ExtInst 3(GLSL.std.450) 13(Sin) 160
-                              Store 70(s) 161
-             162:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 163 163 12 12
-             164:     78(ptr) AccessChain 75(instanceRot) 20
-             165:   28(float) Load 164
-             166:    107(ptr) AccessChain 103(ubo) 106
-             167:   28(float) Load 166
-             168:   28(float) FAdd 165 167
-             169:   28(float) ExtInst 3(GLSL.std.450) 14(Cos) 168
-                              Store 114(c) 169
-             170:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 171 171 12 12
-             175:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 173 172(my) 74
-             176:   28(float) Load 114(c)
-             177:   28(float) Load 70(s)
-             178:   31(fvec3) CompositeConstruct 176 136 177
-             179:    138(ptr) AccessChain 172(my) 133
-                              Store 179 178
-             180:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 181 181 12 12
-             183:    138(ptr) AccessChain 172(my) 142
-                              Store 183 182
-             184:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 185 185 12 12
-             186:   28(float) Load 70(s)
-             187:   28(float) FNegate 186
-             188:   28(float) Load 114(c)
-             189:   31(fvec3) CompositeConstruct 187 136 188
-             190:    138(ptr) AccessChain 172(my) 150
-                              Store 190 189
-             191:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 192 192 12 12
-             193:     78(ptr) AccessChain 75(instanceRot) 22
-             194:   28(float) Load 193
-             195:    107(ptr) AccessChain 103(ubo) 106
-             196:   28(float) Load 195
-             197:   28(float) FAdd 194 196
-             198:   28(float) ExtInst 3(GLSL.std.450) 13(Sin) 197
-                              Store 70(s) 198
-             199:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 200 200 12 12
-             201:     78(ptr) AccessChain 75(instanceRot) 22
-             202:   28(float) Load 201
-             203:    107(ptr) AccessChain 103(ubo) 106
-             204:   28(float) Load 203
-             205:   28(float) FAdd 202 204
-             206:   28(float) ExtInst 3(GLSL.std.450) 14(Cos) 205
-                              Store 114(c) 206
-             207:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 208 208 12 12
-             212:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 210 209(mz) 74
-             214:    138(ptr) AccessChain 209(mz) 133
-                              Store 214 213
-             215:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 216 216 12 12
-             217:   28(float) Load 114(c)
-             218:   28(float) Load 70(s)
-             219:   31(fvec3) CompositeConstruct 136 217 218
-             220:    138(ptr) AccessChain 209(mz) 142
-                              Store 220 219
-             221:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 222 222 12 12
-             223:   28(float) Load 70(s)
-             224:   28(float) FNegate 223
-             225:   28(float) Load 114(c)
-             226:   31(fvec3) CompositeConstruct 136 224 225
-             227:    138(ptr) AccessChain 209(mz) 150
+              15:             Label
+           77(s):     74(ptr) Variable Function
+          125(c):     74(ptr) Variable Function
+         141(mx):    139(ptr) Variable Function
+         185(my):    139(ptr) Variable Function
+         222(mz):    139(ptr) Variable Function
+     243(rotMat):    139(ptr) Variable Function
+    273(gRotMat):    271(ptr) Variable Function
+     300(locPos):    280(ptr) Variable Function
+        316(pos):    280(ptr) Variable Function
+       407(lPos):    150(ptr) Variable Function
+              25:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 17 14(main)
+              26:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17
+              27:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 28 28 12 12
+              45:   32(fvec3) Load 42(inColor)
+                              Store 36(outColor) 45
+              46:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 47 47 12 12
+              58:   51(fvec2) Load 55(inUV)
+              67:     59(int) Load 64(instanceTexIndex)
+              68:   29(float) ConvertSToF 67
+              69:   29(float) CompositeExtract 58 0
+              70:   29(float) CompositeExtract 58 1
+              71:   32(fvec3) CompositeConstruct 69 70 68
+                              Store 48(outUV) 71
+              72:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 73 73 12 12
+              80:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 78 77(s) 81
+              87:     85(ptr) AccessChain 82(instanceRot) 12
+              88:   29(float) Load 87
+             119:    117(ptr) AccessChain 113(ubo) 116
+             120:   29(float) Load 119
+             121:   29(float) FAdd 88 120
+             122:   29(float) ExtInst 3(GLSL.std.450) 13(Sin) 121
+                              Store 77(s) 122
+             123:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 124 124 12 12
+             128:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 126 125(c) 81
+             129:     85(ptr) AccessChain 82(instanceRot) 12
+             130:   29(float) Load 129
+             131:    117(ptr) AccessChain 113(ubo) 116
+             132:   29(float) Load 131
+             133:   29(float) FAdd 130 132
+             134:   29(float) ExtInst 3(GLSL.std.450) 14(Cos) 133
+                              Store 125(c) 134
+             135:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 136 136 12 12
+             144:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 142 141(mx) 81
+             146:   29(float) Load 125(c)
+             147:   29(float) Load 77(s)
+             149:   32(fvec3) CompositeConstruct 146 147 148
+             152:    150(ptr) AccessChain 141(mx) 145
+                              Store 152 149
+             153:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 154 154 12 12
+             156:   29(float) Load 77(s)
+             157:   29(float) FNegate 156
+             158:   29(float) Load 125(c)
+             159:   32(fvec3) CompositeConstruct 157 158 148
+             160:    150(ptr) AccessChain 141(mx) 155
+                              Store 160 159
+             161:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 162 162 12 12
+             166:    150(ptr) AccessChain 141(mx) 163
+                              Store 166 165
+             167:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 168 168 12 12
+             169:     85(ptr) AccessChain 82(instanceRot) 22
+             170:   29(float) Load 169
+             171:    117(ptr) AccessChain 113(ubo) 116
+             172:   29(float) Load 171
+             173:   29(float) FAdd 170 172
+             174:   29(float) ExtInst 3(GLSL.std.450) 13(Sin) 173
+                              Store 77(s) 174
+             175:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 176 176 12 12
+             177:     85(ptr) AccessChain 82(instanceRot) 22
+             178:   29(float) Load 177
+             179:    117(ptr) AccessChain 113(ubo) 116
+             180:   29(float) Load 179
+             181:   29(float) FAdd 178 180
+             182:   29(float) ExtInst 3(GLSL.std.450) 14(Cos) 181
+                              Store 125(c) 182
+             183:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 184 184 12 12
+             188:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 186 185(my) 81
+             189:   29(float) Load 125(c)
+             190:   29(float) Load 77(s)
+             191:   32(fvec3) CompositeConstruct 189 148 190
+             192:    150(ptr) AccessChain 185(my) 145
+                              Store 192 191
+             193:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 194 194 12 12
+             196:    150(ptr) AccessChain 185(my) 155
+                              Store 196 195
+             197:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 198 198 12 12
+             199:   29(float) Load 77(s)
+             200:   29(float) FNegate 199
+             201:   29(float) Load 125(c)
+             202:   32(fvec3) CompositeConstruct 200 148 201
+             203:    150(ptr) AccessChain 185(my) 163
+                              Store 203 202
+             204:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 205 205 12 12
+             206:     85(ptr) AccessChain 82(instanceRot) 24
+             207:   29(float) Load 206
+             208:    117(ptr) AccessChain 113(ubo) 116
+             209:   29(float) Load 208
+             210:   29(float) FAdd 207 209
+             211:   29(float) ExtInst 3(GLSL.std.450) 13(Sin) 210
+                              Store 77(s) 211
+             212:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 213 213 12 12
+             214:     85(ptr) AccessChain 82(instanceRot) 24
+             215:   29(float) Load 214
+             216:    117(ptr) AccessChain 113(ubo) 116
+             217:   29(float) Load 216
+             218:   29(float) FAdd 215 217
+             219:   29(float) ExtInst 3(GLSL.std.450) 14(Cos) 218
+                              Store 125(c) 219
+             220:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 221 221 12 12
+             225:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 223 222(mz) 81
+             227:    150(ptr) AccessChain 222(mz) 145
                               Store 227 226
-             228:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 229 229 12 12
-             233:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 231 230(rotMat) 74
-             234:         126 Load 209(mz)
-             235:         126 Load 172(my)
-             236:         126 MatrixTimesMatrix 234 235
-             237:         126 Load 129(mx)
-             238:         126 MatrixTimesMatrix 236 237
-                              Store 230(rotMat) 238
-             239:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 240 240 12 12
-             241:     78(ptr) AccessChain 75(instanceRot) 20
-             242:   28(float) Load 241
-             244:    107(ptr) AccessChain 103(ubo) 243
-             245:   28(float) Load 244
-             246:   28(float) FAdd 242 245
-             247:   28(float) ExtInst 3(GLSL.std.450) 13(Sin) 246
-                              Store 70(s) 247
-             248:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 249 249 12 12
-             250:     78(ptr) AccessChain 75(instanceRot) 20
-             251:   28(float) Load 250
-             252:    107(ptr) AccessChain 103(ubo) 243
-             253:   28(float) Load 252
-             254:   28(float) FAdd 251 253
-             255:   28(float) ExtInst 3(GLSL.std.450) 14(Cos) 254
-                              Store 114(c) 255
-             256:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 257 257 12 12
-             262:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 260 259(gRotMat) 74
-             263:   28(float) Load 114(c)
-             264:   28(float) Load 70(s)
-             265:   81(fvec4) CompositeConstruct 263 136 264 136
-             267:    266(ptr) AccessChain 259(gRotMat) 133
-                              Store 267 265
-             268:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 269 269 12 12
-             271:    266(ptr) AccessChain 259(gRotMat) 142
-                              Store 271 270
-             272:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 273 273 12 12
-             274:   28(float) Load 70(s)
-             275:   28(float) FNegate 274
-             276:   28(float) Load 114(c)
-             277:   81(fvec4) CompositeConstruct 275 136 276 136
-             278:    266(ptr) AccessChain 259(gRotMat) 150
-                              Store 278 277
-             279:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 280 280 12 12
-             282:    266(ptr) AccessChain 259(gRotMat) 106
-                              Store 282 281
-             283:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 284 284 12 12
-             288:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 286 285(locPos) 74
-             292:   31(fvec3) Load 289(inPos)
-             293:         126 Load 230(rotMat)
-             294:   31(fvec3) VectorTimesMatrix 292 293
-             295:   28(float) CompositeExtract 294 0
-             296:   28(float) CompositeExtract 294 1
-             297:   28(float) CompositeExtract 294 2
-             298:   81(fvec4) CompositeConstruct 295 296 297 151
-                              Store 285(locPos) 298
-             299:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 300 300 12 12
-             304:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 302 301(pos) 74
-             305:   81(fvec4) Load 285(locPos)
-             306:   31(fvec3) VectorShuffle 305 305 0 1 2
-             310:   28(float) Load 307(instanceScale)
-             311:   31(fvec3) VectorTimesScalar 306 310
-             315:   31(fvec3) Load 312(instancePos)
-             316:   31(fvec3) FAdd 311 315
-             317:   28(float) CompositeExtract 316 0
-             318:   28(float) CompositeExtract 316 1
-             319:   28(float) CompositeExtract 316 2
-             320:   81(fvec4) CompositeConstruct 317 318 319 151
-                              Store 301(pos) 320
-             321:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 322 322 12 12
-             340:    339(ptr) AccessChain 103(ubo) 133
-             341:          83 Load 340
-             342:    339(ptr) AccessChain 103(ubo) 142
-             343:          83 Load 342
-             344:          83 MatrixTimesMatrix 341 343
-             345:          83 Load 259(gRotMat)
-             346:          83 MatrixTimesMatrix 344 345
-             347:   81(fvec4) Load 301(pos)
-             348:   81(fvec4) MatrixTimesVector 346 347
-             350:    349(ptr) AccessChain 337 133
-                              Store 350 348
-             351:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 352 352 12 12
-             356:    339(ptr) AccessChain 103(ubo) 142
-             357:          83 Load 356
-             358:          83 Load 259(gRotMat)
-             359:          83 MatrixTimesMatrix 357 358
-             360:   81(fvec4) CompositeExtract 359 0
-             361:   31(fvec3) VectorShuffle 360 360 0 1 2
-             362:   81(fvec4) CompositeExtract 359 1
-             363:   31(fvec3) VectorShuffle 362 362 0 1 2
-             364:   81(fvec4) CompositeExtract 359 2
-             365:   31(fvec3) VectorShuffle 364 364 0 1 2
-             366:         126 CompositeConstruct 361 363 365
-             367:         126 Load 230(rotMat)
-             368:         126 ExtInst 3(GLSL.std.450) 34(MatrixInverse) 367
-             369:         126 MatrixTimesMatrix 366 368
-             373:   31(fvec3) Load 370(inNormal)
-             374:   31(fvec3) MatrixTimesVector 369 373
-                              Store 353(outNormal) 374
-             375:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 376 376 12 12
-             377:    339(ptr) AccessChain 103(ubo) 142
-             378:          83 Load 377
-             379:   31(fvec3) Load 289(inPos)
-             380:   31(fvec3) Load 312(instancePos)
-             381:   31(fvec3) FAdd 379 380
-             382:   28(float) CompositeExtract 381 0
-             383:   28(float) CompositeExtract 381 1
-             384:   28(float) CompositeExtract 381 2
-             385:   81(fvec4) CompositeConstruct 382 383 384 151
-             386:   81(fvec4) MatrixTimesVector 378 385
-                              Store 301(pos) 386
-             387:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 388 388 12 12
-             392:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 390 389(lPos) 74
-             393:    339(ptr) AccessChain 103(ubo) 142
-             394:          83 Load 393
-             395:   81(fvec4) CompositeExtract 394 0
-             396:   31(fvec3) VectorShuffle 395 395 0 1 2
-             397:   81(fvec4) CompositeExtract 394 1
-             398:   31(fvec3) VectorShuffle 397 397 0 1 2
-             399:   81(fvec4) CompositeExtract 394 2
-             400:   31(fvec3) VectorShuffle 399 399 0 1 2
-             401:         126 CompositeConstruct 396 398 400
-             403:    402(ptr) AccessChain 103(ubo) 150
-             404:   81(fvec4) Load 403
-             405:   31(fvec3) VectorShuffle 404 404 0 1 2
-             406:   31(fvec3) MatrixTimesVector 401 405
-                              Store 389(lPos) 406
-             407:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 408 408 12 12
-             412:   31(fvec3) Load 389(lPos)
-             413:   81(fvec4) Load 301(pos)
-             414:   31(fvec3) VectorShuffle 413 413 0 1 2
-             415:   31(fvec3) FSub 412 414
-                              Store 409(outLightVec) 415
-             416:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 17 417 417 12 12
-             421:   81(fvec4) Load 301(pos)
-             422:   31(fvec3) VectorShuffle 421 421 0 1 2
-             423:   31(fvec3) FNegate 422
-                              Store 418(outViewVec) 423
+             228:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 229 229 12 12
+             230:   29(float) Load 125(c)
+             231:   29(float) Load 77(s)
+             232:   32(fvec3) CompositeConstruct 148 230 231
+             233:    150(ptr) AccessChain 222(mz) 155
+                              Store 233 232
+             234:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 235 235 12 12
+             236:   29(float) Load 77(s)
+             237:   29(float) FNegate 236
+             238:   29(float) Load 125(c)
+             239:   32(fvec3) CompositeConstruct 148 237 238
+             240:    150(ptr) AccessChain 222(mz) 163
+                              Store 240 239
+             241:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 242 242 12 12
+             246:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 244 243(rotMat) 81
+             247:         137 Load 222(mz)
+             248:         137 Load 185(my)
+             249:         137 MatrixTimesMatrix 247 248
+             250:         137 Load 141(mx)
+             251:         137 MatrixTimesMatrix 249 250
+                              Store 243(rotMat) 251
+             252:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 253 253 12 12
+             254:     85(ptr) AccessChain 82(instanceRot) 22
+             255:   29(float) Load 254
+             257:    117(ptr) AccessChain 113(ubo) 256
+             258:   29(float) Load 257
+             259:   29(float) FAdd 255 258
+             260:   29(float) ExtInst 3(GLSL.std.450) 13(Sin) 259
+                              Store 77(s) 260
+             261:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 262 262 12 12
+             263:     85(ptr) AccessChain 82(instanceRot) 22
+             264:   29(float) Load 263
+             265:    117(ptr) AccessChain 113(ubo) 256
+             266:   29(float) Load 265
+             267:   29(float) FAdd 264 266
+             268:   29(float) ExtInst 3(GLSL.std.450) 14(Cos) 267
+                              Store 125(c) 268
+             269:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 270 270 12 12
+             276:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 274 273(gRotMat) 81
+             277:   29(float) Load 125(c)
+             278:   29(float) Load 77(s)
+             279:   89(fvec4) CompositeConstruct 277 148 278 148
+             282:    280(ptr) AccessChain 273(gRotMat) 145
+                              Store 282 279
+             283:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 284 284 12 12
+             286:    280(ptr) AccessChain 273(gRotMat) 155
+                              Store 286 285
+             287:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 288 288 12 12
+             289:   29(float) Load 77(s)
+             290:   29(float) FNegate 289
+             291:   29(float) Load 125(c)
+             292:   89(fvec4) CompositeConstruct 290 148 291 148
+             293:    280(ptr) AccessChain 273(gRotMat) 163
+                              Store 293 292
+             294:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 295 295 12 12
+             297:    280(ptr) AccessChain 273(gRotMat) 116
+                              Store 297 296
+             298:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 299 299 12 12
+             303:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 301 300(locPos) 81
+             307:   32(fvec3) Load 304(inPos)
+             308:         137 Load 243(rotMat)
+             309:   32(fvec3) VectorTimesMatrix 307 308
+             310:   29(float) CompositeExtract 309 0
+             311:   29(float) CompositeExtract 309 1
+             312:   29(float) CompositeExtract 309 2
+             313:   89(fvec4) CompositeConstruct 310 311 312 164
+                              Store 300(locPos) 313
+             314:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 315 315 12 12
+             319:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 317 316(pos) 81
+             320:   89(fvec4) Load 300(locPos)
+             321:   32(fvec3) VectorShuffle 320 320 0 1 2
+             325:   29(float) Load 322(instanceScale)
+             326:   32(fvec3) VectorTimesScalar 321 325
+             330:   32(fvec3) Load 327(instancePos)
+             331:   32(fvec3) FAdd 326 330
+             332:   29(float) CompositeExtract 331 0
+             333:   29(float) CompositeExtract 331 1
+             334:   29(float) CompositeExtract 331 2
+             335:   89(fvec4) CompositeConstruct 332 333 334 164
+                              Store 316(pos) 335
+             336:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 337 337 12 12
+             357:    355(ptr) AccessChain 113(ubo) 145
+             358:          91 Load 357
+             359:    355(ptr) AccessChain 113(ubo) 155
+             360:          91 Load 359
+             361:          91 MatrixTimesMatrix 358 360
+             362:          91 Load 273(gRotMat)
+             363:          91 MatrixTimesMatrix 361 362
+             364:   89(fvec4) Load 316(pos)
+             365:   89(fvec4) MatrixTimesVector 363 364
+             368:    366(ptr) AccessChain 353 145
+                              Store 368 365
+             369:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 370 370 12 12
+             374:    355(ptr) AccessChain 113(ubo) 155
+             375:          91 Load 374
+             376:          91 Load 273(gRotMat)
+             377:          91 MatrixTimesMatrix 375 376
+             378:   89(fvec4) CompositeExtract 377 0
+             379:   32(fvec3) VectorShuffle 378 378 0 1 2
+             380:   89(fvec4) CompositeExtract 377 1
+             381:   32(fvec3) VectorShuffle 380 380 0 1 2
+             382:   89(fvec4) CompositeExtract 377 2
+             383:   32(fvec3) VectorShuffle 382 382 0 1 2
+             384:         137 CompositeConstruct 379 381 383
+             385:         137 Load 243(rotMat)
+             386:         137 ExtInst 3(GLSL.std.450) 34(MatrixInverse) 385
+             387:         137 MatrixTimesMatrix 384 386
+             391:   32(fvec3) Load 388(inNormal)
+             392:   32(fvec3) MatrixTimesVector 387 391
+                              Store 371(outNormal) 392
+             393:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 394 394 12 12
+             395:    355(ptr) AccessChain 113(ubo) 155
+             396:          91 Load 395
+             397:   32(fvec3) Load 304(inPos)
+             398:   32(fvec3) Load 327(instancePos)
+             399:   32(fvec3) FAdd 397 398
+             400:   29(float) CompositeExtract 399 0
+             401:   29(float) CompositeExtract 399 1
+             402:   29(float) CompositeExtract 399 2
+             403:   89(fvec4) CompositeConstruct 400 401 402 164
+             404:   89(fvec4) MatrixTimesVector 396 403
+                              Store 316(pos) 404
+             405:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 406 406 12 12
+             410:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 408 407(lPos) 81
+             411:    355(ptr) AccessChain 113(ubo) 155
+             412:          91 Load 411
+             413:   89(fvec4) CompositeExtract 412 0
+             414:   32(fvec3) VectorShuffle 413 413 0 1 2
+             415:   89(fvec4) CompositeExtract 412 1
+             416:   32(fvec3) VectorShuffle 415 415 0 1 2
+             417:   89(fvec4) CompositeExtract 412 2
+             418:   32(fvec3) VectorShuffle 417 417 0 1 2
+             419:         137 CompositeConstruct 414 416 418
+             422:    420(ptr) AccessChain 113(ubo) 163
+             423:   89(fvec4) Load 422
+             424:   32(fvec3) VectorShuffle 423 423 0 1 2
+             425:   32(fvec3) MatrixTimesVector 419 424
+                              Store 407(lPos) 425
+             426:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 427 427 12 12
+             431:   32(fvec3) Load 407(lPos)
+             432:   89(fvec4) Load 316(pos)
+             433:   32(fvec3) VectorShuffle 432 432 0 1 2
+             434:   32(fvec3) FSub 431 433
+                              Store 428(outLightVec) 434
+             435:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 436 436 12 12
+             440:   89(fvec4) Load 316(pos)
+             441:   32(fvec3) VectorShuffle 440 440 0 1 2
+             442:   32(fvec3) FNegate 441
+                              Store 437(outViewVec) 442
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.debuginfo.hlsl.comp.out b/Test/baseResults/spv.debuginfo.hlsl.comp.out
index b427c61..b4dd837 100644
--- a/Test/baseResults/spv.debuginfo.hlsl.comp.out
+++ b/Test/baseResults/spv.debuginfo.hlsl.comp.out
@@ -1,20 +1,20 @@
 spv.debuginfo.hlsl.comp
 // Module Version 10000
 // Generated by (magic number): 8000b
-// Id's are bound by 976
+// Id's are bound by 966
 
                               Capability Shader
                               Extension  "SPV_KHR_non_semantic_info"
                2:             ExtInstImport  "NonSemantic.Shader.DebugInfo.100"
                3:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint GLCompute 6  "main" 971
+                              EntryPoint GLCompute 6  "main" 961
                               ExecutionMode 6 LocalSize 10 10 1
                1:             String  ""
-              10:             String  "float"
-              13:             String  "uint"
-              28:             String  "springForce"
-              31:             String  "// OpModuleProcessed auto-map-locations
+               9:             String  "float"
+              12:             String  "uint"
+              32:             String  "springForce"
+              35:             String  "// OpModuleProcessed auto-map-locations
 // OpModuleProcessed auto-map-bindings
 // OpModuleProcessed entry-point main
 // OpModuleProcessed client vulkan100
@@ -23,153 +23,153 @@
 // OpModuleProcessed hlsl-offsets
 #line 1
 "
-              40:             String  "p0"
-              44:             String  "p1"
-              48:             String  "restDist"
-              57:             String  "@main"
-              63:             String  "id"
-              71:             String  "dist"
-              83:             String  "int"
-              89:             String  "sphereRadius"
-             100:             String  "gravity"
-             105:             String  "particleCount"
-             108:             String  "UBO"
-             111:             String  "params"
-             115:             String  "ubo"
-             140:             String  "index"
-             163:             String  "bool"
-             177:             String  "normal"
-             184:             String  "pinned"
-             188:             String  "Particle"
-             193:             String  "@data"
-             197:             String  "particleIn"
-             219:             String  "particleOut"
-             244:             String  "force"
-             257:             String  "pos"
-             267:             String  "vel"
-             567:             String  "f"
-             616:             String  "sphereDist"
-             669:             String  "calculateNormals"
-             673:             String  "PushConstants"
-             676:             String  "pushConstants"
-             679:             String  "$Global"
-             719:             String  "a"
-             732:             String  "b"
-             749:             String  "c"
+              44:             String  "p0"
+              48:             String  "p1"
+              52:             String  "restDist"
+              63:             String  "@main"
+              69:             String  "id"
+              77:             String  "dist"
+              89:             String  "int"
+              95:             String  "sphereRadius"
+             106:             String  "gravity"
+             111:             String  "particleCount"
+             114:             String  "UBO"
+             117:             String  "params"
+             121:             String  "ubo"
+             149:             String  "index"
+             173:             String  "bool"
+             187:             String  "normal"
+             194:             String  "pinned"
+             198:             String  "Particle"
+             203:             String  "@data"
+             207:             String  "particleIn"
+             229:             String  "particleOut"
+             256:             String  "force"
+             269:             String  "pos"
+             279:             String  "vel"
+             563:             String  "f"
+             612:             String  "sphereDist"
+             664:             String  "calculateNormals"
+             668:             String  "PushConstants"
+             671:             String  "pushConstants"
+             674:             String  "$Global"
+             713:             String  "a"
+             726:             String  "b"
+             743:             String  "c"
                               Name 6  "main"
-                              Name 27  "springForce(vf3;vf3;f1;"
-                              Name 24  "p0"
-                              Name 25  "p1"
-                              Name 26  "restDist"
-                              Name 56  "@main(vu3;"
-                              Name 55  "id"
-                              Name 69  "dist"
-                              Name 87  "UBO"
-                              MemberName 87(UBO) 0  "deltaT"
-                              MemberName 87(UBO) 1  "particleMass"
-                              MemberName 87(UBO) 2  "springStiffness"
-                              MemberName 87(UBO) 3  "damping"
-                              MemberName 87(UBO) 4  "restDistH"
-                              MemberName 87(UBO) 5  "restDistV"
-                              MemberName 87(UBO) 6  "restDistD"
-                              MemberName 87(UBO) 7  "sphereRadius"
-                              MemberName 87(UBO) 8  "spherePos"
-                              MemberName 87(UBO) 9  "gravity"
-                              MemberName 87(UBO) 10  "particleCount"
-                              Name 109  "ubo"
-                              MemberName 109(ubo) 0  "params"
-                              Name 117  ""
-                              Name 138  "index"
-                              Name 175  "Particle"
-                              MemberName 175(Particle) 0  "pos"
-                              MemberName 175(Particle) 1  "vel"
-                              MemberName 175(Particle) 2  "uv"
-                              MemberName 175(Particle) 3  "normal"
-                              MemberName 175(Particle) 4  "pinned"
-                              Name 191  "particleIn"
-                              MemberName 191(particleIn) 0  "@data"
-                              Name 199  "particleIn"
-                              Name 215  "particleOut"
-                              MemberName 215(particleOut) 0  "@data"
-                              Name 221  "particleOut"
-                              Name 242  "force"
-                              Name 255  "pos"
-                              Name 265  "vel"
-                              Name 286  "param"
-                              Name 290  "param"
-                              Name 292  "param"
-                              Name 316  "param"
-                              Name 320  "param"
-                              Name 322  "param"
-                              Name 350  "param"
-                              Name 354  "param"
-                              Name 356  "param"
-                              Name 379  "param"
-                              Name 383  "param"
-                              Name 385  "param"
-                              Name 420  "param"
-                              Name 424  "param"
-                              Name 426  "param"
-                              Name 456  "param"
-                              Name 460  "param"
+                              Name 30  "springForce(vf3;vf3;f1;"
+                              Name 27  "p0"
+                              Name 28  "p1"
+                              Name 29  "restDist"
+                              Name 61  "@main(vu3;"
+                              Name 60  "id"
+                              Name 75  "dist"
+                              Name 93  "UBO"
+                              MemberName 93(UBO) 0  "deltaT"
+                              MemberName 93(UBO) 1  "particleMass"
+                              MemberName 93(UBO) 2  "springStiffness"
+                              MemberName 93(UBO) 3  "damping"
+                              MemberName 93(UBO) 4  "restDistH"
+                              MemberName 93(UBO) 5  "restDistV"
+                              MemberName 93(UBO) 6  "restDistD"
+                              MemberName 93(UBO) 7  "sphereRadius"
+                              MemberName 93(UBO) 8  "spherePos"
+                              MemberName 93(UBO) 9  "gravity"
+                              MemberName 93(UBO) 10  "particleCount"
+                              Name 115  "ubo"
+                              MemberName 115(ubo) 0  "params"
+                              Name 124  ""
+                              Name 147  "index"
+                              Name 185  "Particle"
+                              MemberName 185(Particle) 0  "pos"
+                              MemberName 185(Particle) 1  "vel"
+                              MemberName 185(Particle) 2  "uv"
+                              MemberName 185(Particle) 3  "normal"
+                              MemberName 185(Particle) 4  "pinned"
+                              Name 201  "particleIn"
+                              MemberName 201(particleIn) 0  "@data"
+                              Name 210  "particleIn"
+                              Name 225  "particleOut"
+                              MemberName 225(particleOut) 0  "@data"
+                              Name 232  "particleOut"
+                              Name 254  "force"
+                              Name 267  "pos"
+                              Name 277  "vel"
+                              Name 297  "param"
+                              Name 301  "param"
+                              Name 303  "param"
+                              Name 326  "param"
+                              Name 330  "param"
+                              Name 332  "param"
+                              Name 359  "param"
+                              Name 363  "param"
+                              Name 365  "param"
+                              Name 387  "param"
+                              Name 391  "param"
+                              Name 393  "param"
+                              Name 425  "param"
+                              Name 429  "param"
+                              Name 431  "param"
+                              Name 458  "param"
                               Name 462  "param"
-                              Name 500  "param"
-                              Name 504  "param"
-                              Name 506  "param"
+                              Name 464  "param"
+                              Name 499  "param"
+                              Name 503  "param"
+                              Name 505  "param"
+                              Name 536  "param"
                               Name 540  "param"
-                              Name 544  "param"
-                              Name 546  "param"
-                              Name 565  "f"
-                              Name 614  "sphereDist"
-                              Name 667  "PushConstants"
-                              MemberName 667(PushConstants) 0  "calculateNormals"
-                              Name 674  "$Global"
-                              MemberName 674($Global) 0  "pushConstants"
-                              Name 681  ""
-                              Name 693  "normal"
-                              Name 717  "a"
-                              Name 730  "b"
-                              Name 747  "c"
-                              Name 969  "id"
-                              Name 971  "id"
-                              Name 973  "param"
-                              MemberDecorate 87(UBO) 0 Offset 0
-                              MemberDecorate 87(UBO) 1 Offset 4
-                              MemberDecorate 87(UBO) 2 Offset 8
-                              MemberDecorate 87(UBO) 3 Offset 12
-                              MemberDecorate 87(UBO) 4 Offset 16
-                              MemberDecorate 87(UBO) 5 Offset 20
-                              MemberDecorate 87(UBO) 6 Offset 24
-                              MemberDecorate 87(UBO) 7 Offset 28
-                              MemberDecorate 87(UBO) 8 Offset 32
-                              MemberDecorate 87(UBO) 9 Offset 48
-                              MemberDecorate 87(UBO) 10 Offset 64
-                              MemberDecorate 109(ubo) 0 Offset 0
-                              Decorate 109(ubo) Block
-                              Decorate 117 DescriptorSet 0
-                              Decorate 117 Binding 2
-                              MemberDecorate 175(Particle) 0 Offset 0
-                              MemberDecorate 175(Particle) 1 Offset 16
-                              MemberDecorate 175(Particle) 2 Offset 32
-                              MemberDecorate 175(Particle) 3 Offset 48
-                              MemberDecorate 175(Particle) 4 Offset 64
-                              Decorate 189 ArrayStride 80
-                              MemberDecorate 191(particleIn) 0 NonWritable
-                              MemberDecorate 191(particleIn) 0 Offset 0
-                              Decorate 191(particleIn) BufferBlock
-                              Decorate 199(particleIn) DescriptorSet 0
-                              Decorate 199(particleIn) Binding 0
-                              Decorate 213 ArrayStride 80
-                              MemberDecorate 215(particleOut) 0 Offset 0
-                              Decorate 215(particleOut) BufferBlock
-                              Decorate 221(particleOut) DescriptorSet 0
-                              Decorate 221(particleOut) Binding 1
-                              MemberDecorate 667(PushConstants) 0 Offset 0
-                              MemberDecorate 674($Global) 0 Offset 0
-                              Decorate 674($Global) Block
-                              Decorate 681 DescriptorSet 0
-                              Decorate 681 Binding 3
-                              Decorate 971(id) BuiltIn GlobalInvocationId
+                              Name 542  "param"
+                              Name 561  "f"
+                              Name 610  "sphereDist"
+                              Name 662  "PushConstants"
+                              MemberName 662(PushConstants) 0  "calculateNormals"
+                              Name 669  "$Global"
+                              MemberName 669($Global) 0  "pushConstants"
+                              Name 677  ""
+                              Name 689  "normal"
+                              Name 711  "a"
+                              Name 724  "b"
+                              Name 741  "c"
+                              Name 959  "id"
+                              Name 961  "id"
+                              Name 963  "param"
+                              MemberDecorate 93(UBO) 0 Offset 0
+                              MemberDecorate 93(UBO) 1 Offset 4
+                              MemberDecorate 93(UBO) 2 Offset 8
+                              MemberDecorate 93(UBO) 3 Offset 12
+                              MemberDecorate 93(UBO) 4 Offset 16
+                              MemberDecorate 93(UBO) 5 Offset 20
+                              MemberDecorate 93(UBO) 6 Offset 24
+                              MemberDecorate 93(UBO) 7 Offset 28
+                              MemberDecorate 93(UBO) 8 Offset 32
+                              MemberDecorate 93(UBO) 9 Offset 48
+                              MemberDecorate 93(UBO) 10 Offset 64
+                              MemberDecorate 115(ubo) 0 Offset 0
+                              Decorate 115(ubo) Block
+                              Decorate 124 DescriptorSet 0
+                              Decorate 124 Binding 2
+                              MemberDecorate 185(Particle) 0 Offset 0
+                              MemberDecorate 185(Particle) 1 Offset 16
+                              MemberDecorate 185(Particle) 2 Offset 32
+                              MemberDecorate 185(Particle) 3 Offset 48
+                              MemberDecorate 185(Particle) 4 Offset 64
+                              Decorate 199 ArrayStride 80
+                              MemberDecorate 201(particleIn) 0 NonWritable
+                              MemberDecorate 201(particleIn) 0 Offset 0
+                              Decorate 201(particleIn) BufferBlock
+                              Decorate 210(particleIn) DescriptorSet 0
+                              Decorate 210(particleIn) Binding 0
+                              Decorate 223 ArrayStride 80
+                              MemberDecorate 225(particleOut) 0 Offset 0
+                              Decorate 225(particleOut) BufferBlock
+                              Decorate 232(particleOut) DescriptorSet 0
+                              Decorate 232(particleOut) Binding 1
+                              MemberDecorate 662(PushConstants) 0 Offset 0
+                              MemberDecorate 669($Global) 0 Offset 0
+                              Decorate 669($Global) Block
+                              Decorate 677 DescriptorSet 0
+                              Decorate 677 Binding 3
+                              Decorate 961(id) BuiltIn GlobalInvocationId
                4:             TypeVoid
                5:             TypeFunction 4
                8:             TypeFloat 32
@@ -177,1059 +177,1049 @@
               14:     11(int) Constant 32
               15:     11(int) Constant 6
               16:     11(int) Constant 0
-              12:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 13 14 15 16
+              13:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 12 14 15 16
               17:     11(int) Constant 3
-               9:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 10 14 17 16
+              10:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 9 14 17 16
               18:             TypeVector 8(float) 3
-              19:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 9 17
+              19:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 10 17
               20:             TypePointer Function 18(fvec3)
-              21:             TypePointer Function 8(float)
-              22:             TypeFunction 18(fvec3) 20(ptr) 20(ptr) 21(ptr)
-              23:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 17 19 19 19 9
-              30:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 1 31
-              33:     11(int) Constant 1
-              34:     11(int) Constant 4
-              35:     11(int) Constant 5
-              32:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 33 34 30 35
-              29:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 28 23 30 16 16 32 28 17 16
-              39:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 40 19 30 16 16 29 34 33
-              42:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
-              45:     11(int) Constant 2
-              43:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 44 19 30 16 16 29 34 45
-              47:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 48 9 30 16 16 29 34 17
-              50:             TypeVector 11(int) 3
-              51:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 12 17
-              52:             TypePointer Function 50(ivec3)
-              53:             TypeFunction 4 52(ptr)
-              54:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 17 4 51
-              58:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 57 54 30 16 16 32 57 17 16
-              62:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 63 51 30 16 16 58 34 33
-              68:     11(int) Constant 76
-              70:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 71 19 30 68 16 29 34
-              77:     11(int) Constant 77
-              80:             TypeVector 8(float) 4
-              81:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 9 34
-              82:             TypeInt 32 1
-              84:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 83 14 34 16
-              85:             TypeVector 82(int) 2
-              86:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 84 45
-         87(UBO):             TypeStruct 8(float) 8(float) 8(float) 8(float) 8(float) 8(float) 8(float) 8(float) 80(fvec4) 80(fvec4) 85(ivec2)
-              90:     11(int) Constant 48
-              91:     11(int) Constant 20
-              88:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 89 9 30 90 91 16 16 17
-              92:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 89 9 30 90 91 16 16 17
-              93:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 89 9 30 90 91 16 16 17
-              94:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 89 9 30 90 91 16 16 17
-              95:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 89 9 30 90 91 16 16 17
-              96:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 89 9 30 90 91 16 16 17
-              97:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 89 9 30 90 91 16 16 17
-              98:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 89 9 30 90 91 16 16 17
-             101:     11(int) Constant 50
-             102:     11(int) Constant 16
-              99:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 100 81 30 101 102 16 16 17
-             103:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 100 81 30 101 102 16 16 17
-             106:     11(int) Constant 51
-             104:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 105 86 30 106 91 16 16 17
-             107:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 108 33 30 77 16 32 108 16 17 88 92 93 94 95 96 97 98 99 103 104
-        109(ubo):             TypeStruct 87(UBO)
-             112:     11(int) Constant 56
-             113:     11(int) Constant 12
-             110:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 111 107 30 112 113 16 16 17
-             114:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 115 33 30 77 16 32 115 16 17 110
-             116:             TypePointer Uniform 109(ubo)
-             117:    116(ptr) Variable Uniform
-             119:     11(int) Constant 8
-             118:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 1 114 30 77 16 32 1 117 119
-             120:     82(int) Constant 0
-             121:     82(int) Constant 2
-             122:             TypePointer Uniform 8(float)
-             136:     11(int) Constant 83
-             137:             TypePointer Function 11(int)
-             139:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 140 12 30 136 16 58 34
-             144:     82(int) Constant 10
-             145:             TypePointer Uniform 82(int)
-             154:     11(int) Constant 84
-             162:             TypeBool
-             164:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 163 14 45 16
-             170:     11(int) Constant 85
-             174:     11(int) Constant 88
-   175(Particle):             TypeStruct 80(fvec4) 80(fvec4) 80(fvec4) 80(fvec4) 8(float)
-             178:     11(int) Constant 30
-             179:     11(int) Constant 15
-             176:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 177 81 30 178 179 16 16 17
-             180:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 177 81 30 178 179 16 16 17
-             181:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 177 81 30 178 179 16 16 17
-             182:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 177 81 30 178 179 16 16 17
-             185:     11(int) Constant 31
-             186:     11(int) Constant 14
-             183:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 184 9 30 185 186 16 16 17
-             187:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 188 33 30 174 16 32 188 16 17 176 180 181 182 183
-             189:             TypeRuntimeArray 175(Particle)
-             190:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 187 16
- 191(particleIn):             TypeStruct 189
-             194:     11(int) Constant 35
-             195:     11(int) Constant 28
-             192:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 193 190 30 194 195 16 16 17
-             196:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 197 33 30 174 16 32 197 16 17 192
-             198:             TypePointer Uniform 191(particleIn)
- 199(particleIn):    198(ptr) Variable Uniform
-             200:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 197 196 30 174 16 32 197 199(particleIn) 119
-             202:     82(int) Constant 4
-             205:    8(float) Constant 1065353216
-             206:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 163 14 45 16
-             212:     11(int) Constant 89
-             213:             TypeRuntimeArray 175(Particle)
-             214:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 187 16
-215(particleOut):             TypeStruct 213
-             217:     11(int) Constant 37
-             216:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 193 214 30 217 178 16 16 17
-             218:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 219 33 30 212 16 32 219 16 17 216
-             220:             TypePointer Uniform 215(particleOut)
-221(particleOut):    220(ptr) Variable Uniform
-             222:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 219 218 30 212 16 32 219 221(particleOut) 119
-             225:             TypePointer Uniform 80(fvec4)
-             230:     11(int) Constant 90
-             232:     82(int) Constant 1
-             233:    8(float) Constant 0
-             234:   80(fvec4) ConstantComposite 233 233 233 233
-             237:     11(int) Constant 91
-             241:     11(int) Constant 95
-             243:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 244 19 30 241 16 58 34
-             246:     82(int) Constant 9
-             254:     11(int) Constant 97
-             256:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 257 19 30 254 16 58 34
-             264:     11(int) Constant 98
-             266:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 267 19 30 264 16 58 34
-             274:     11(int) Constant 102
-             277:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 163 14 45 16
-             283:     11(int) Constant 103
-             300:     11(int) Constant 106
-             307:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 163 14 45 16
-             313:     11(int) Constant 107
-             330:     11(int) Constant 110
-             337:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 163 14 45 16
-             343:     11(int) Constant 111
-             349:     82(int) Constant 5
-             364:     11(int) Constant 114
-             367:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 163 14 45 16
-             373:     11(int) Constant 115
-             393:     11(int) Constant 118
-             396:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 163 14 45 16
-             404:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 163 14 45 16
-             406:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 163 14 45 16
-             412:     11(int) Constant 119
-             419:     82(int) Constant 6
-             434:     11(int) Constant 122
-             437:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 163 14 45 16
-             441:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 163 14 45 16
-             443:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 163 14 45 16
-             449:     11(int) Constant 123
-             470:     11(int) Constant 126
-             477:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 163 14 45 16
-             485:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 163 14 45 16
-             487:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 163 14 45 16
-             493:     11(int) Constant 127
-             514:     11(int) Constant 130
-             521:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 163 14 45 16
-             525:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 163 14 45 16
-             527:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 163 14 45 16
-             533:     11(int) Constant 131
-             554:     11(int) Constant 134
-             555:     82(int) Constant 3
-             564:     11(int) Constant 137
-             566:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 567 19 30 564 16 58 34
-             575:     11(int) Constant 138
-             583:    8(float) Constant 1056964608
-             599:     11(int) Constant 139
-             613:     11(int) Constant 142
-             615:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 616 19 30 613 16 58 34
-             622:     82(int) Constant 8
-             628:     11(int) Constant 143
-             631:     82(int) Constant 7
-             634:    8(float) Constant 1008981770
-             636:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 163 14 45 16
-             642:     11(int) Constant 145
-             661:     11(int) Constant 147
-             666:     11(int) Constant 151
-667(PushConstants):             TypeStruct 11(int)
-             670:     11(int) Constant 67
-             671:     11(int) Constant 23
-             668:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 669 12 30 670 671 16 16 17
-             672:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 673 33 30 666 16 32 673 16 17 668
-    674($Global):             TypeStruct 667(PushConstants)
-             677:     11(int) Constant 71
-             675:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 676 672 30 677 179 16 16 17
-             678:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 679 33 30 666 16 32 679 16 17 675
-             680:             TypePointer Uniform 674($Global)
-             681:    680(ptr) Variable Uniform
-             682:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 1 678 30 666 16 32 1 681 119
-             683:             TypePointer Uniform 11(int)
-             686:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 163 14 45 16
-             692:     11(int) Constant 152
-             694:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 177 19 30 692 16 58 34
-             696:   18(fvec3) ConstantComposite 233 233 233
-             698:     11(int) Constant 154
-             701:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 163 14 45 16
-             707:     11(int) Constant 155
-             710:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 163 14 45 16
-             716:     11(int) Constant 156
-             718:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 719 19 30 716 16 58 34
-             729:     11(int) Constant 157
-             731:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 732 19 30 729 16 58 34
-             746:     11(int) Constant 158
-             748:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 749 19 30 746 16 58 34
-             762:     11(int) Constant 159
-             774:     11(int) Constant 161
-             781:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 163 14 45 16
-             787:     11(int) Constant 162
-             799:     11(int) Constant 163
-             812:     11(int) Constant 164
-             821:     11(int) Constant 165
-             833:     11(int) Constant 168
-             840:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 163 14 45 16
-             846:     11(int) Constant 169
-             849:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 163 14 45 16
-             855:     11(int) Constant 170
-             867:     11(int) Constant 171
-             880:     11(int) Constant 172
-             889:     11(int) Constant 173
-             901:     11(int) Constant 175
-             908:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 163 14 45 16
-             914:     11(int) Constant 176
-             923:     11(int) Constant 177
-             936:     11(int) Constant 178
-             948:     11(int) Constant 179
-             960:     11(int) Constant 182
-             970:             TypePointer Input 50(ivec3)
-         971(id):    970(ptr) Variable Input
+              21:     11(int) Constant 7
+              22:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 19 21 16
+              23:             TypePointer Function 8(float)
+              24:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 10 21 16
+              25:             TypeFunction 18(fvec3) 20(ptr) 20(ptr) 23(ptr)
+              26:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 17 19 19 19 10
+              34:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 1 35
+              36:     11(int) Constant 75
+              38:     11(int) Constant 1
+              39:     11(int) Constant 4
+              40:     11(int) Constant 5
+              37:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 38 39 34 40
+              33:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 32 26 34 36 16 37 32 17 36
+              43:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 44 19 34 36 16 33 39 38
+              46:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
+              49:     11(int) Constant 2
+              47:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 48 19 34 36 16 33 39 49
+              51:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 52 10 34 36 16 33 39 17
+              54:             TypeVector 11(int) 3
+              55:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 13 17
+              56:             TypePointer Function 54(ivec3)
+              57:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 55 21 16
+              58:             TypeFunction 4 56(ptr)
+              59:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 17 4 55
+              65:     11(int) Constant 82
+              64:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 63 59 34 65 16 37 63 17 65
+              68:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 69 55 34 65 16 64 39 38
+              74:     11(int) Constant 76
+              76:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 77 19 34 74 16 33 39
+              83:     11(int) Constant 77
+              86:             TypeVector 8(float) 4
+              87:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 10 39
+              88:             TypeInt 32 1
+              90:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 89 14 39 16
+              91:             TypeVector 88(int) 2
+              92:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 90 49
+         93(UBO):             TypeStruct 8(float) 8(float) 8(float) 8(float) 8(float) 8(float) 8(float) 8(float) 86(fvec4) 86(fvec4) 91(ivec2)
+              96:     11(int) Constant 48
+              97:     11(int) Constant 20
+              94:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 95 10 34 96 97 16 16 17
+              98:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 95 10 34 96 97 16 16 17
+              99:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 95 10 34 96 97 16 16 17
+             100:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 95 10 34 96 97 16 16 17
+             101:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 95 10 34 96 97 16 16 17
+             102:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 95 10 34 96 97 16 16 17
+             103:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 95 10 34 96 97 16 16 17
+             104:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 95 10 34 96 97 16 16 17
+             107:     11(int) Constant 50
+             108:     11(int) Constant 16
+             105:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 106 87 34 107 108 16 16 17
+             109:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 106 87 34 107 108 16 16 17
+             112:     11(int) Constant 51
+             110:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 111 92 34 112 97 16 16 17
+             113:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 114 38 34 83 16 37 114 16 17 94 98 99 100 101 102 103 104 105 109 110
+        115(ubo):             TypeStruct 93(UBO)
+             118:     11(int) Constant 56
+             119:     11(int) Constant 12
+             116:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 117 113 34 118 119 16 16 17
+             120:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 121 38 34 83 16 37 121 16 17 116
+             122:             TypePointer Uniform 115(ubo)
+             123:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 120 49 16
+             124:    122(ptr) Variable Uniform
+             126:     11(int) Constant 8
+             125:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 1 120 34 83 16 37 1 124 126
+             127:     88(int) Constant 0
+             128:     88(int) Constant 2
+             129:             TypePointer Uniform 8(float)
+             130:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 10 49 16
+             144:     11(int) Constant 83
+             145:             TypePointer Function 11(int)
+             146:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 13 21 16
+             148:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 149 13 34 144 16 64 39
+             153:     88(int) Constant 10
+             154:             TypePointer Uniform 88(int)
+             155:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 90 49 16
+             164:     11(int) Constant 84
+             172:             TypeBool
+             174:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 173 14 49 16
+             180:     11(int) Constant 85
+             184:     11(int) Constant 88
+   185(Particle):             TypeStruct 86(fvec4) 86(fvec4) 86(fvec4) 86(fvec4) 8(float)
+             188:     11(int) Constant 30
+             189:     11(int) Constant 15
+             186:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 187 87 34 188 189 16 16 17
+             190:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 187 87 34 188 189 16 16 17
+             191:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 187 87 34 188 189 16 16 17
+             192:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 187 87 34 188 189 16 16 17
+             195:     11(int) Constant 31
+             196:     11(int) Constant 14
+             193:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 194 10 34 195 196 16 16 17
+             197:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 198 38 34 184 16 37 198 16 17 186 190 191 192 193
+             199:             TypeRuntimeArray 185(Particle)
+             200:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 197 16
+ 201(particleIn):             TypeStruct 199
+             204:     11(int) Constant 35
+             205:     11(int) Constant 28
+             202:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 203 200 34 204 205 16 16 17
+             206:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 207 38 34 184 16 37 207 16 17 202
+             208:             TypePointer Uniform 201(particleIn)
+             209:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 206 49 16
+ 210(particleIn):    208(ptr) Variable Uniform
+             211:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 207 206 34 184 16 37 207 210(particleIn) 126
+             213:     88(int) Constant 4
+             216:    8(float) Constant 1065353216
+             222:     11(int) Constant 89
+             223:             TypeRuntimeArray 185(Particle)
+             224:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 197 16
+225(particleOut):             TypeStruct 223
+             227:     11(int) Constant 37
+             226:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 203 224 34 227 188 16 16 17
+             228:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 229 38 34 222 16 37 229 16 17 226
+             230:             TypePointer Uniform 225(particleOut)
+             231:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 228 49 16
+232(particleOut):    230(ptr) Variable Uniform
+             233:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 229 228 34 222 16 37 229 232(particleOut) 126
+             236:             TypePointer Uniform 86(fvec4)
+             237:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 87 49 16
+             242:     11(int) Constant 90
+             244:     88(int) Constant 1
+             245:    8(float) Constant 0
+             246:   86(fvec4) ConstantComposite 245 245 245 245
+             249:     11(int) Constant 91
+             253:     11(int) Constant 95
+             255:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 256 19 34 253 16 64 39
+             258:     88(int) Constant 9
+             266:     11(int) Constant 97
+             268:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 269 19 34 266 16 64 39
+             276:     11(int) Constant 98
+             278:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 279 19 34 276 16 64 39
+             286:     11(int) Constant 102
+             294:     11(int) Constant 103
+             311:     11(int) Constant 106
+             323:     11(int) Constant 107
+             340:     11(int) Constant 110
+             352:     11(int) Constant 111
+             358:     88(int) Constant 5
+             373:     11(int) Constant 114
+             381:     11(int) Constant 115
+             401:     11(int) Constant 118
+             417:     11(int) Constant 119
+             424:     88(int) Constant 6
+             439:     11(int) Constant 122
+             451:     11(int) Constant 123
+             472:     11(int) Constant 126
+             492:     11(int) Constant 127
+             513:     11(int) Constant 130
+             529:     11(int) Constant 131
+             550:     11(int) Constant 134
+             551:     88(int) Constant 3
+             560:     11(int) Constant 137
+             562:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 563 19 34 560 16 64 39
+             571:     11(int) Constant 138
+             579:    8(float) Constant 1056964608
+             595:     11(int) Constant 139
+             609:     11(int) Constant 142
+             611:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 612 19 34 609 16 64 39
+             618:     88(int) Constant 8
+             624:     11(int) Constant 143
+             627:     88(int) Constant 7
+             630:    8(float) Constant 1008981770
+             637:     11(int) Constant 145
+             656:     11(int) Constant 147
+             661:     11(int) Constant 151
+662(PushConstants):             TypeStruct 11(int)
+             665:     11(int) Constant 67
+             666:     11(int) Constant 23
+             663:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 664 13 34 665 666 16 16 17
+             667:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 668 38 34 661 16 37 668 16 17 663
+    669($Global):             TypeStruct 662(PushConstants)
+             672:     11(int) Constant 71
+             670:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 671 667 34 672 189 16 16 17
+             673:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 674 38 34 661 16 37 674 16 17 670
+             675:             TypePointer Uniform 669($Global)
+             676:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 673 49 16
+             677:    675(ptr) Variable Uniform
+             678:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 1 673 34 661 16 37 1 677 126
+             679:             TypePointer Uniform 11(int)
+             680:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 13 49 16
+             688:     11(int) Constant 152
+             690:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 187 19 34 688 16 64 39
+             692:   18(fvec3) ConstantComposite 245 245 245
+             694:     11(int) Constant 154
+             702:     11(int) Constant 155
+             710:     11(int) Constant 156
+             712:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 713 19 34 710 16 64 39
+             723:     11(int) Constant 157
+             725:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 726 19 34 723 16 64 39
+             740:     11(int) Constant 158
+             742:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 743 19 34 740 16 64 39
+             756:     11(int) Constant 159
+             768:     11(int) Constant 161
+             780:     11(int) Constant 162
+             792:     11(int) Constant 163
+             805:     11(int) Constant 164
+             814:     11(int) Constant 165
+             826:     11(int) Constant 168
+             838:     11(int) Constant 169
+             846:     11(int) Constant 170
+             858:     11(int) Constant 171
+             871:     11(int) Constant 172
+             880:     11(int) Constant 173
+             892:     11(int) Constant 175
+             904:     11(int) Constant 176
+             913:     11(int) Constant 177
+             926:     11(int) Constant 178
+             938:     11(int) Constant 179
+             950:     11(int) Constant 182
+             960:             TypePointer Input 54(ivec3)
+         961(id):    960(ptr) Variable Input
                               Line 1 82 1
          6(main):           4 Function None 5
                7:             Label
-         969(id):     52(ptr) Variable Function
-      973(param):     52(ptr) Variable Function
+         959(id):     56(ptr) Variable Function
+      963(param):     56(ptr) Variable Function
                               Line 1 82 0
-             972:   50(ivec3) Load 971(id)
-                              Store 969(id) 972
-             974:   50(ivec3) Load 969(id)
-                              Store 973(param) 974
-             975:           4 FunctionCall 56(@main(vu3;) 973(param)
+             962:   54(ivec3) Load 961(id)
+                              Store 959(id) 962
+             964:   54(ivec3) Load 959(id)
+                              Store 963(param) 964
+             965:           4 FunctionCall 61(@main(vu3;) 963(param)
                               Return
                               FunctionEnd
                               Line 1 75 1
-27(springForce(vf3;vf3;f1;):   18(fvec3) Function None 22
-          24(p0):     20(ptr) FunctionParameter
-          25(p1):     20(ptr) FunctionParameter
-    26(restDist):     21(ptr) FunctionParameter
-              36:             Label
-        69(dist):     20(ptr) Variable Function
-              37:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 29
-              38:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 16 16 16 16
-              41:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 39 24(p0) 42
-              46:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 43 25(p1) 42
-              49:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 47 26(restDist) 42
-              65:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 29 27(springForce(vf3;vf3;f1;)
-              66:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 29
-              67:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 68 68 16 16
-              72:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 70 69(dist) 42
-              73:   18(fvec3) Load 24(p0)
-              74:   18(fvec3) Load 25(p1)
-              75:   18(fvec3) FSub 73 74
-                              Store 69(dist) 75
-              76:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 77 77 16 16
-              78:   18(fvec3) Load 69(dist)
-              79:   18(fvec3) ExtInst 3(GLSL.std.450) 69(Normalize) 78
-             123:    122(ptr) AccessChain 117 120 121
-             124:    8(float) Load 123
-             125:   18(fvec3) VectorTimesScalar 79 124
-             126:   18(fvec3) Load 69(dist)
-             127:    8(float) ExtInst 3(GLSL.std.450) 66(Length) 126
-             128:    8(float) Load 26(restDist)
-             129:    8(float) FSub 127 128
-             130:   18(fvec3) VectorTimesScalar 125 129
-                              ReturnValue 130
+30(springForce(vf3;vf3;f1;):   18(fvec3) Function None 25
+          27(p0):     20(ptr) FunctionParameter
+          28(p1):     20(ptr) FunctionParameter
+    29(restDist):     23(ptr) FunctionParameter
+              31:             Label
+        75(dist):     20(ptr) Variable Function
+              41:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 33
+              42:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 36 36 16 16
+              45:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 43 27(p0) 46
+              50:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 47 28(p1) 46
+              53:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 51 29(restDist) 46
+              71:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 33 30(springForce(vf3;vf3;f1;)
+              72:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 33
+              73:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 74 74 16 16
+              78:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 76 75(dist) 46
+              79:   18(fvec3) Load 27(p0)
+              80:   18(fvec3) Load 28(p1)
+              81:   18(fvec3) FSub 79 80
+                              Store 75(dist) 81
+              82:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 83 83 16 16
+              84:   18(fvec3) Load 75(dist)
+              85:   18(fvec3) ExtInst 3(GLSL.std.450) 69(Normalize) 84
+             131:    129(ptr) AccessChain 124 127 128
+             132:    8(float) Load 131
+             133:   18(fvec3) VectorTimesScalar 85 132
+             134:   18(fvec3) Load 75(dist)
+             135:    8(float) ExtInst 3(GLSL.std.450) 66(Length) 134
+             136:    8(float) Load 29(restDist)
+             137:    8(float) FSub 135 136
+             138:   18(fvec3) VectorTimesScalar 133 137
+                              ReturnValue 138
                               FunctionEnd
                               Line 1 82 1
-  56(@main(vu3;):           4 Function None 53
-          55(id):     52(ptr) FunctionParameter
-              59:             Label
-      138(index):    137(ptr) Variable Function
-      242(force):     20(ptr) Variable Function
-        255(pos):     20(ptr) Variable Function
-        265(vel):     20(ptr) Variable Function
-      286(param):     20(ptr) Variable Function
-      290(param):     20(ptr) Variable Function
-      292(param):     21(ptr) Variable Function
-      316(param):     20(ptr) Variable Function
-      320(param):     20(ptr) Variable Function
-      322(param):     21(ptr) Variable Function
-      350(param):     20(ptr) Variable Function
-      354(param):     20(ptr) Variable Function
-      356(param):     21(ptr) Variable Function
-      379(param):     20(ptr) Variable Function
-      383(param):     20(ptr) Variable Function
-      385(param):     21(ptr) Variable Function
-      420(param):     20(ptr) Variable Function
-      424(param):     20(ptr) Variable Function
-      426(param):     21(ptr) Variable Function
-      456(param):     20(ptr) Variable Function
-      460(param):     20(ptr) Variable Function
-      462(param):     21(ptr) Variable Function
-      500(param):     20(ptr) Variable Function
-      504(param):     20(ptr) Variable Function
-      506(param):     21(ptr) Variable Function
+  61(@main(vu3;):           4 Function None 58
+          60(id):     56(ptr) FunctionParameter
+              62:             Label
+      147(index):    145(ptr) Variable Function
+      254(force):     20(ptr) Variable Function
+        267(pos):     20(ptr) Variable Function
+        277(vel):     20(ptr) Variable Function
+      297(param):     20(ptr) Variable Function
+      301(param):     20(ptr) Variable Function
+      303(param):     23(ptr) Variable Function
+      326(param):     20(ptr) Variable Function
+      330(param):     20(ptr) Variable Function
+      332(param):     23(ptr) Variable Function
+      359(param):     20(ptr) Variable Function
+      363(param):     20(ptr) Variable Function
+      365(param):     23(ptr) Variable Function
+      387(param):     20(ptr) Variable Function
+      391(param):     20(ptr) Variable Function
+      393(param):     23(ptr) Variable Function
+      425(param):     20(ptr) Variable Function
+      429(param):     20(ptr) Variable Function
+      431(param):     23(ptr) Variable Function
+      458(param):     20(ptr) Variable Function
+      462(param):     20(ptr) Variable Function
+      464(param):     23(ptr) Variable Function
+      499(param):     20(ptr) Variable Function
+      503(param):     20(ptr) Variable Function
+      505(param):     23(ptr) Variable Function
+      536(param):     20(ptr) Variable Function
       540(param):     20(ptr) Variable Function
-      544(param):     20(ptr) Variable Function
-      546(param):     21(ptr) Variable Function
-          565(f):     20(ptr) Variable Function
- 614(sphereDist):     20(ptr) Variable Function
-     693(normal):     20(ptr) Variable Function
-          717(a):     20(ptr) Variable Function
-          730(b):     20(ptr) Variable Function
-          747(c):     20(ptr) Variable Function
-              60:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-              61:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 16 16 16 16
-              64:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 62 55(id) 42
-             133:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 58 56(@main(vu3;)
-             134:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-             135:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 136 136 16 16
-             141:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 139 138(index) 42
-             142:    137(ptr) AccessChain 55(id) 33
-             143:     11(int) Load 142
-             146:    145(ptr) AccessChain 117 120 144 16
-             147:     82(int) Load 146
-             148:     11(int) Bitcast 147
-             149:     11(int) IMul 143 148
-             150:    137(ptr) AccessChain 55(id) 16
-             151:     11(int) Load 150
-             152:     11(int) IAdd 149 151
-                              Store 138(index) 152
-             153:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 154 154 16 16
-             155:     11(int) Load 138(index)
-             156:    145(ptr) AccessChain 117 120 144 16
-             157:     82(int) Load 156
-             158:    145(ptr) AccessChain 117 120 144 33
-             159:     82(int) Load 158
-             160:     82(int) IMul 157 159
-             161:     11(int) Bitcast 160
-             165:   162(bool) UGreaterThan 155 161
-                              SelectionMerge 167 None
-                              BranchConditional 165 166 167
-             166:               Label
-             168:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-             169:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 170 170 16 16
+      542(param):     23(ptr) Variable Function
+          561(f):     20(ptr) Variable Function
+ 610(sphereDist):     20(ptr) Variable Function
+     689(normal):     20(ptr) Variable Function
+          711(a):     20(ptr) Variable Function
+          724(b):     20(ptr) Variable Function
+          741(c):     20(ptr) Variable Function
+              66:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+              67:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 65 65 16 16
+              70:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 68 60(id) 46
+             141:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 64 61(@main(vu3;)
+             142:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+             143:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 144 144 16 16
+             150:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 148 147(index) 46
+             151:    145(ptr) AccessChain 60(id) 38
+             152:     11(int) Load 151
+             156:    154(ptr) AccessChain 124 127 153 16
+             157:     88(int) Load 156
+             158:     11(int) Bitcast 157
+             159:     11(int) IMul 152 158
+             160:    145(ptr) AccessChain 60(id) 16
+             161:     11(int) Load 160
+             162:     11(int) IAdd 159 161
+                              Store 147(index) 162
+             163:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 164 164 16 16
+             165:     11(int) Load 147(index)
+             166:    154(ptr) AccessChain 124 127 153 16
+             167:     88(int) Load 166
+             168:    154(ptr) AccessChain 124 127 153 38
+             169:     88(int) Load 168
+             170:     88(int) IMul 167 169
+             171:     11(int) Bitcast 170
+             175:   172(bool) UGreaterThan 165 171
+                              SelectionMerge 177 None
+                              BranchConditional 175 176 177
+             176:               Label
+             178:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+             179:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 180 180 16 16
                                 Return
-             167:             Label
-             172:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-             173:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 174 174 16 16
-             201:     11(int) Load 138(index)
-             203:    122(ptr) AccessChain 199(particleIn) 120 201 202
-             204:    8(float) Load 203
-             207:   162(bool) FOrdEqual 204 205
-                              SelectionMerge 209 None
-                              BranchConditional 207 208 209
-             208:               Label
-             210:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-             211:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 212 212 16 16
-             223:     11(int)   Load 138(index)
-             224:     11(int)   Load 138(index)
-             226:    225(ptr)   AccessChain 221(particleOut) 120 224 120
-             227:   80(fvec4)   Load 226
-             228:    225(ptr)   AccessChain 221(particleOut) 120 223 120
-                                Store 228 227
-             229:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 230 230 16 16
-             231:     11(int)   Load 138(index)
-             235:    225(ptr)   AccessChain 221(particleOut) 120 231 232
-                                Store 235 234
-             236:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 237 237 16 16
+             177:             Label
+             182:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+             183:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 184 184 16 16
+             212:     11(int) Load 147(index)
+             214:    129(ptr) AccessChain 210(particleIn) 127 212 213
+             215:    8(float) Load 214
+             217:   172(bool) FOrdEqual 215 216
+                              SelectionMerge 219 None
+                              BranchConditional 217 218 219
+             218:               Label
+             220:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+             221:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 222 222 16 16
+             234:     11(int)   Load 147(index)
+             235:     11(int)   Load 147(index)
+             238:    236(ptr)   AccessChain 232(particleOut) 127 235 127
+             239:   86(fvec4)   Load 238
+             240:    236(ptr)   AccessChain 232(particleOut) 127 234 127
+                                Store 240 239
+             241:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 242 242 16 16
+             243:     11(int)   Load 147(index)
+             247:    236(ptr)   AccessChain 232(particleOut) 127 243 244
+                                Store 247 246
+             248:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 249 249 16 16
                                 Return
-             209:             Label
-             239:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-             240:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 241 241 16 16
-             245:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 243 242(force) 42
-             247:    225(ptr) AccessChain 117 120 246
-             248:   80(fvec4) Load 247
-             249:   18(fvec3) VectorShuffle 248 248 0 1 2
-             250:    122(ptr) AccessChain 117 120 232
-             251:    8(float) Load 250
-             252:   18(fvec3) VectorTimesScalar 249 251
-                              Store 242(force) 252
-             253:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 254 254 16 16
-             258:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 256 255(pos) 42
-             259:     11(int) Load 138(index)
-             260:    225(ptr) AccessChain 199(particleIn) 120 259 120
-             261:   80(fvec4) Load 260
-             262:   18(fvec3) VectorShuffle 261 261 0 1 2
-                              Store 255(pos) 262
-             263:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 264 264 16 16
-             268:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 266 265(vel) 42
-             269:     11(int) Load 138(index)
-             270:    225(ptr) AccessChain 199(particleIn) 120 269 232
-             271:   80(fvec4) Load 270
-             272:   18(fvec3) VectorShuffle 271 271 0 1 2
-                              Store 265(vel) 272
-             273:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 274 274 16 16
-             275:    137(ptr) AccessChain 55(id) 16
-             276:     11(int) Load 275
-             278:   162(bool) UGreaterThan 276 16
-                              SelectionMerge 280 None
-                              BranchConditional 278 279 280
-             279:               Label
-             281:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-             282:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 283 283 16 16
-             284:     11(int)   Load 138(index)
-             285:     11(int)   ISub 284 33
-             287:    225(ptr)   AccessChain 199(particleIn) 120 285 120
-             288:   80(fvec4)   Load 287
-             289:   18(fvec3)   VectorShuffle 288 288 0 1 2
-                                Store 286(param) 289
-             291:   18(fvec3)   Load 255(pos)
-                                Store 290(param) 291
-             293:    122(ptr)   AccessChain 117 120 202
-             294:    8(float)   Load 293
-                                Store 292(param) 294
-             295:   18(fvec3)   FunctionCall 27(springForce(vf3;vf3;f1;) 286(param) 290(param) 292(param)
-             296:   18(fvec3)   Load 242(force)
-             297:   18(fvec3)   FAdd 296 295
-                                Store 242(force) 297
-                                Branch 280
-             280:             Label
-             298:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-             299:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 300 300 16 16
-             301:    137(ptr) AccessChain 55(id) 16
-             302:     11(int) Load 301
-             303:    145(ptr) AccessChain 117 120 144 16
-             304:     82(int) Load 303
-             305:     82(int) ISub 304 232
-             306:     11(int) Bitcast 305
-             308:   162(bool) ULessThan 302 306
-                              SelectionMerge 310 None
-                              BranchConditional 308 309 310
-             309:               Label
-             311:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-             312:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 313 313 16 16
-             314:     11(int)   Load 138(index)
-             315:     11(int)   IAdd 314 33
-             317:    225(ptr)   AccessChain 199(particleIn) 120 315 120
-             318:   80(fvec4)   Load 317
-             319:   18(fvec3)   VectorShuffle 318 318 0 1 2
-                                Store 316(param) 319
-             321:   18(fvec3)   Load 255(pos)
-                                Store 320(param) 321
-             323:    122(ptr)   AccessChain 117 120 202
-             324:    8(float)   Load 323
-                                Store 322(param) 324
-             325:   18(fvec3)   FunctionCall 27(springForce(vf3;vf3;f1;) 316(param) 320(param) 322(param)
-             326:   18(fvec3)   Load 242(force)
-             327:   18(fvec3)   FAdd 326 325
-                                Store 242(force) 327
-                                Branch 310
-             310:             Label
-             328:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-             329:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 330 330 16 16
-             331:    137(ptr) AccessChain 55(id) 33
-             332:     11(int) Load 331
-             333:    145(ptr) AccessChain 117 120 144 33
-             334:     82(int) Load 333
-             335:     82(int) ISub 334 232
-             336:     11(int) Bitcast 335
-             338:   162(bool) ULessThan 332 336
-                              SelectionMerge 340 None
-                              BranchConditional 338 339 340
-             339:               Label
-             341:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-             342:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 343 343 16 16
-             344:     11(int)   Load 138(index)
-             345:    145(ptr)   AccessChain 117 120 144 16
-             346:     82(int)   Load 345
-             347:     11(int)   Bitcast 346
-             348:     11(int)   IAdd 344 347
-             351:    225(ptr)   AccessChain 199(particleIn) 120 348 120
-             352:   80(fvec4)   Load 351
-             353:   18(fvec3)   VectorShuffle 352 352 0 1 2
-                                Store 350(param) 353
-             355:   18(fvec3)   Load 255(pos)
-                                Store 354(param) 355
-             357:    122(ptr)   AccessChain 117 120 349
-             358:    8(float)   Load 357
-                                Store 356(param) 358
-             359:   18(fvec3)   FunctionCall 27(springForce(vf3;vf3;f1;) 350(param) 354(param) 356(param)
-             360:   18(fvec3)   Load 242(force)
-             361:   18(fvec3)   FAdd 360 359
-                                Store 242(force) 361
-                                Branch 340
-             340:             Label
-             362:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-             363:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 364 364 16 16
-             365:    137(ptr) AccessChain 55(id) 33
-             366:     11(int) Load 365
-             368:   162(bool) UGreaterThan 366 16
-                              SelectionMerge 370 None
-                              BranchConditional 368 369 370
-             369:               Label
-             371:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-             372:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 373 373 16 16
-             374:     11(int)   Load 138(index)
-             375:    145(ptr)   AccessChain 117 120 144 16
-             376:     82(int)   Load 375
-             377:     11(int)   Bitcast 376
-             378:     11(int)   ISub 374 377
-             380:    225(ptr)   AccessChain 199(particleIn) 120 378 120
-             381:   80(fvec4)   Load 380
-             382:   18(fvec3)   VectorShuffle 381 381 0 1 2
-                                Store 379(param) 382
-             384:   18(fvec3)   Load 255(pos)
-                                Store 383(param) 384
-             386:    122(ptr)   AccessChain 117 120 349
-             387:    8(float)   Load 386
-                                Store 385(param) 387
-             388:   18(fvec3)   FunctionCall 27(springForce(vf3;vf3;f1;) 379(param) 383(param) 385(param)
-             389:   18(fvec3)   Load 242(force)
-             390:   18(fvec3)   FAdd 389 388
-                                Store 242(force) 390
-                                Branch 370
-             370:             Label
-             391:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-             392:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 393 393 16 16
-             394:    137(ptr) AccessChain 55(id) 16
-             395:     11(int) Load 394
-             397:   162(bool) UGreaterThan 395 16
-             398:    137(ptr) AccessChain 55(id) 33
-             399:     11(int) Load 398
-             400:    145(ptr) AccessChain 117 120 144 33
-             401:     82(int) Load 400
-             402:     82(int) ISub 401 232
-             403:     11(int) Bitcast 402
-             405:   162(bool) ULessThan 399 403
-             407:   162(bool) LogicalAnd 397 405
-                              SelectionMerge 409 None
-                              BranchConditional 407 408 409
-             408:               Label
-             410:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-             411:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 412 412 16 16
-             413:     11(int)   Load 138(index)
-             414:    145(ptr)   AccessChain 117 120 144 16
-             415:     82(int)   Load 414
-             416:     11(int)   Bitcast 415
-             417:     11(int)   IAdd 413 416
-             418:     11(int)   ISub 417 33
-             421:    225(ptr)   AccessChain 199(particleIn) 120 418 120
-             422:   80(fvec4)   Load 421
-             423:   18(fvec3)   VectorShuffle 422 422 0 1 2
-                                Store 420(param) 423
-             425:   18(fvec3)   Load 255(pos)
-                                Store 424(param) 425
-             427:    122(ptr)   AccessChain 117 120 419
-             428:    8(float)   Load 427
-                                Store 426(param) 428
-             429:   18(fvec3)   FunctionCall 27(springForce(vf3;vf3;f1;) 420(param) 424(param) 426(param)
-             430:   18(fvec3)   Load 242(force)
-             431:   18(fvec3)   FAdd 430 429
-                                Store 242(force) 431
-                                Branch 409
-             409:             Label
-             432:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-             433:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 434 434 16 16
-             435:    137(ptr) AccessChain 55(id) 16
-             436:     11(int) Load 435
-             438:   162(bool) UGreaterThan 436 16
-             439:    137(ptr) AccessChain 55(id) 33
-             440:     11(int) Load 439
-             442:   162(bool) UGreaterThan 440 16
-             444:   162(bool) LogicalAnd 438 442
-                              SelectionMerge 446 None
-                              BranchConditional 444 445 446
-             445:               Label
-             447:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-             448:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 449 449 16 16
-             450:     11(int)   Load 138(index)
-             451:    145(ptr)   AccessChain 117 120 144 16
-             452:     82(int)   Load 451
-             453:     11(int)   Bitcast 452
-             454:     11(int)   ISub 450 453
-             455:     11(int)   ISub 454 33
-             457:    225(ptr)   AccessChain 199(particleIn) 120 455 120
-             458:   80(fvec4)   Load 457
-             459:   18(fvec3)   VectorShuffle 458 458 0 1 2
-                                Store 456(param) 459
-             461:   18(fvec3)   Load 255(pos)
-                                Store 460(param) 461
-             463:    122(ptr)   AccessChain 117 120 419
-             464:    8(float)   Load 463
-                                Store 462(param) 464
-             465:   18(fvec3)   FunctionCall 27(springForce(vf3;vf3;f1;) 456(param) 460(param) 462(param)
-             466:   18(fvec3)   Load 242(force)
-             467:   18(fvec3)   FAdd 466 465
-                                Store 242(force) 467
-                                Branch 446
-             446:             Label
-             468:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-             469:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 470 470 16 16
-             471:    137(ptr) AccessChain 55(id) 16
-             472:     11(int) Load 471
-             473:    145(ptr) AccessChain 117 120 144 16
-             474:     82(int) Load 473
-             475:     82(int) ISub 474 232
-             476:     11(int) Bitcast 475
-             478:   162(bool) ULessThan 472 476
-             479:    137(ptr) AccessChain 55(id) 33
-             480:     11(int) Load 479
-             481:    145(ptr) AccessChain 117 120 144 33
-             482:     82(int) Load 481
-             483:     82(int) ISub 482 232
-             484:     11(int) Bitcast 483
-             486:   162(bool) ULessThan 480 484
-             488:   162(bool) LogicalAnd 478 486
-                              SelectionMerge 490 None
-                              BranchConditional 488 489 490
-             489:               Label
-             491:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-             492:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 493 493 16 16
-             494:     11(int)   Load 138(index)
-             495:    145(ptr)   AccessChain 117 120 144 16
-             496:     82(int)   Load 495
-             497:     11(int)   Bitcast 496
-             498:     11(int)   IAdd 494 497
-             499:     11(int)   IAdd 498 33
-             501:    225(ptr)   AccessChain 199(particleIn) 120 499 120
-             502:   80(fvec4)   Load 501
-             503:   18(fvec3)   VectorShuffle 502 502 0 1 2
-                                Store 500(param) 503
-             505:   18(fvec3)   Load 255(pos)
-                                Store 504(param) 505
-             507:    122(ptr)   AccessChain 117 120 419
-             508:    8(float)   Load 507
-                                Store 506(param) 508
-             509:   18(fvec3)   FunctionCall 27(springForce(vf3;vf3;f1;) 500(param) 504(param) 506(param)
-             510:   18(fvec3)   Load 242(force)
-             511:   18(fvec3)   FAdd 510 509
-                                Store 242(force) 511
-                                Branch 490
-             490:             Label
-             512:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-             513:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 514 514 16 16
-             515:    137(ptr) AccessChain 55(id) 16
-             516:     11(int) Load 515
-             517:    145(ptr) AccessChain 117 120 144 16
-             518:     82(int) Load 517
-             519:     82(int) ISub 518 232
-             520:     11(int) Bitcast 519
-             522:   162(bool) ULessThan 516 520
-             523:    137(ptr) AccessChain 55(id) 33
-             524:     11(int) Load 523
-             526:   162(bool) UGreaterThan 524 16
-             528:   162(bool) LogicalAnd 522 526
-                              SelectionMerge 530 None
-                              BranchConditional 528 529 530
-             529:               Label
-             531:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-             532:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 533 533 16 16
-             534:     11(int)   Load 138(index)
-             535:    145(ptr)   AccessChain 117 120 144 16
-             536:     82(int)   Load 535
-             537:     11(int)   Bitcast 536
-             538:     11(int)   ISub 534 537
-             539:     11(int)   IAdd 538 33
-             541:    225(ptr)   AccessChain 199(particleIn) 120 539 120
-             542:   80(fvec4)   Load 541
-             543:   18(fvec3)   VectorShuffle 542 542 0 1 2
-                                Store 540(param) 543
-             545:   18(fvec3)   Load 255(pos)
-                                Store 544(param) 545
-             547:    122(ptr)   AccessChain 117 120 419
-             548:    8(float)   Load 547
-                                Store 546(param) 548
-             549:   18(fvec3)   FunctionCall 27(springForce(vf3;vf3;f1;) 540(param) 544(param) 546(param)
-             550:   18(fvec3)   Load 242(force)
-             551:   18(fvec3)   FAdd 550 549
-                                Store 242(force) 551
-                                Branch 530
-             530:             Label
-             552:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-             553:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 554 554 16 16
-             556:    122(ptr) AccessChain 117 120 555
-             557:    8(float) Load 556
-             558:    8(float) FNegate 557
-             559:   18(fvec3) Load 265(vel)
-             560:   18(fvec3) VectorTimesScalar 559 558
-             561:   18(fvec3) Load 242(force)
-             562:   18(fvec3) FAdd 561 560
-                              Store 242(force) 562
-             563:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 564 564 16 16
-             568:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 566 565(f) 42
-             569:   18(fvec3) Load 242(force)
-             570:    122(ptr) AccessChain 117 120 232
-             571:    8(float) Load 570
-             572:    8(float) FDiv 205 571
-             573:   18(fvec3) VectorTimesScalar 569 572
-                              Store 565(f) 573
-             574:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 575 575 16 16
-             576:     11(int) Load 138(index)
-             577:   18(fvec3) Load 255(pos)
-             578:   18(fvec3) Load 265(vel)
-             579:    122(ptr) AccessChain 117 120 120
-             580:    8(float) Load 579
-             581:   18(fvec3) VectorTimesScalar 578 580
-             582:   18(fvec3) FAdd 577 581
-             584:   18(fvec3) Load 565(f)
-             585:   18(fvec3) VectorTimesScalar 584 583
-             586:    122(ptr) AccessChain 117 120 120
-             587:    8(float) Load 586
-             588:   18(fvec3) VectorTimesScalar 585 587
-             589:    122(ptr) AccessChain 117 120 120
-             590:    8(float) Load 589
-             591:   18(fvec3) VectorTimesScalar 588 590
-             592:   18(fvec3) FAdd 582 591
-             593:    8(float) CompositeExtract 592 0
-             594:    8(float) CompositeExtract 592 1
-             595:    8(float) CompositeExtract 592 2
-             596:   80(fvec4) CompositeConstruct 593 594 595 205
-             597:    225(ptr) AccessChain 221(particleOut) 120 576 120
-                              Store 597 596
-             598:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 599 599 16 16
-             600:     11(int) Load 138(index)
-             601:   18(fvec3) Load 265(vel)
-             602:   18(fvec3) Load 565(f)
-             603:    122(ptr) AccessChain 117 120 120
-             604:    8(float) Load 603
-             605:   18(fvec3) VectorTimesScalar 602 604
-             606:   18(fvec3) FAdd 601 605
-             607:    8(float) CompositeExtract 606 0
-             608:    8(float) CompositeExtract 606 1
-             609:    8(float) CompositeExtract 606 2
-             610:   80(fvec4) CompositeConstruct 607 608 609 233
-             611:    225(ptr) AccessChain 221(particleOut) 120 600 232
-                              Store 611 610
-             612:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 613 613 16 16
-             617:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 615 614(sphereDist) 42
-             618:     11(int) Load 138(index)
-             619:    225(ptr) AccessChain 221(particleOut) 120 618 120
-             620:   80(fvec4) Load 619
+             219:             Label
+             251:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+             252:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 253 253 16 16
+             257:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 255 254(force) 46
+             259:    236(ptr) AccessChain 124 127 258
+             260:   86(fvec4) Load 259
+             261:   18(fvec3) VectorShuffle 260 260 0 1 2
+             262:    129(ptr) AccessChain 124 127 244
+             263:    8(float) Load 262
+             264:   18(fvec3) VectorTimesScalar 261 263
+                              Store 254(force) 264
+             265:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 266 266 16 16
+             270:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 268 267(pos) 46
+             271:     11(int) Load 147(index)
+             272:    236(ptr) AccessChain 210(particleIn) 127 271 127
+             273:   86(fvec4) Load 272
+             274:   18(fvec3) VectorShuffle 273 273 0 1 2
+                              Store 267(pos) 274
+             275:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 276 276 16 16
+             280:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 278 277(vel) 46
+             281:     11(int) Load 147(index)
+             282:    236(ptr) AccessChain 210(particleIn) 127 281 244
+             283:   86(fvec4) Load 282
+             284:   18(fvec3) VectorShuffle 283 283 0 1 2
+                              Store 277(vel) 284
+             285:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 286 286 16 16
+             287:    145(ptr) AccessChain 60(id) 16
+             288:     11(int) Load 287
+             289:   172(bool) UGreaterThan 288 16
+                              SelectionMerge 291 None
+                              BranchConditional 289 290 291
+             290:               Label
+             292:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+             293:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 294 294 16 16
+             295:     11(int)   Load 147(index)
+             296:     11(int)   ISub 295 38
+             298:    236(ptr)   AccessChain 210(particleIn) 127 296 127
+             299:   86(fvec4)   Load 298
+             300:   18(fvec3)   VectorShuffle 299 299 0 1 2
+                                Store 297(param) 300
+             302:   18(fvec3)   Load 267(pos)
+                                Store 301(param) 302
+             304:    129(ptr)   AccessChain 124 127 213
+             305:    8(float)   Load 304
+                                Store 303(param) 305
+             306:   18(fvec3)   FunctionCall 30(springForce(vf3;vf3;f1;) 297(param) 301(param) 303(param)
+             307:   18(fvec3)   Load 254(force)
+             308:   18(fvec3)   FAdd 307 306
+                                Store 254(force) 308
+                                Branch 291
+             291:             Label
+             309:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+             310:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 311 311 16 16
+             312:    145(ptr) AccessChain 60(id) 16
+             313:     11(int) Load 312
+             314:    154(ptr) AccessChain 124 127 153 16
+             315:     88(int) Load 314
+             316:     88(int) ISub 315 244
+             317:     11(int) Bitcast 316
+             318:   172(bool) ULessThan 313 317
+                              SelectionMerge 320 None
+                              BranchConditional 318 319 320
+             319:               Label
+             321:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+             322:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 323 323 16 16
+             324:     11(int)   Load 147(index)
+             325:     11(int)   IAdd 324 38
+             327:    236(ptr)   AccessChain 210(particleIn) 127 325 127
+             328:   86(fvec4)   Load 327
+             329:   18(fvec3)   VectorShuffle 328 328 0 1 2
+                                Store 326(param) 329
+             331:   18(fvec3)   Load 267(pos)
+                                Store 330(param) 331
+             333:    129(ptr)   AccessChain 124 127 213
+             334:    8(float)   Load 333
+                                Store 332(param) 334
+             335:   18(fvec3)   FunctionCall 30(springForce(vf3;vf3;f1;) 326(param) 330(param) 332(param)
+             336:   18(fvec3)   Load 254(force)
+             337:   18(fvec3)   FAdd 336 335
+                                Store 254(force) 337
+                                Branch 320
+             320:             Label
+             338:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+             339:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 340 340 16 16
+             341:    145(ptr) AccessChain 60(id) 38
+             342:     11(int) Load 341
+             343:    154(ptr) AccessChain 124 127 153 38
+             344:     88(int) Load 343
+             345:     88(int) ISub 344 244
+             346:     11(int) Bitcast 345
+             347:   172(bool) ULessThan 342 346
+                              SelectionMerge 349 None
+                              BranchConditional 347 348 349
+             348:               Label
+             350:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+             351:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 352 352 16 16
+             353:     11(int)   Load 147(index)
+             354:    154(ptr)   AccessChain 124 127 153 16
+             355:     88(int)   Load 354
+             356:     11(int)   Bitcast 355
+             357:     11(int)   IAdd 353 356
+             360:    236(ptr)   AccessChain 210(particleIn) 127 357 127
+             361:   86(fvec4)   Load 360
+             362:   18(fvec3)   VectorShuffle 361 361 0 1 2
+                                Store 359(param) 362
+             364:   18(fvec3)   Load 267(pos)
+                                Store 363(param) 364
+             366:    129(ptr)   AccessChain 124 127 358
+             367:    8(float)   Load 366
+                                Store 365(param) 367
+             368:   18(fvec3)   FunctionCall 30(springForce(vf3;vf3;f1;) 359(param) 363(param) 365(param)
+             369:   18(fvec3)   Load 254(force)
+             370:   18(fvec3)   FAdd 369 368
+                                Store 254(force) 370
+                                Branch 349
+             349:             Label
+             371:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+             372:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 373 373 16 16
+             374:    145(ptr) AccessChain 60(id) 38
+             375:     11(int) Load 374
+             376:   172(bool) UGreaterThan 375 16
+                              SelectionMerge 378 None
+                              BranchConditional 376 377 378
+             377:               Label
+             379:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+             380:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 381 381 16 16
+             382:     11(int)   Load 147(index)
+             383:    154(ptr)   AccessChain 124 127 153 16
+             384:     88(int)   Load 383
+             385:     11(int)   Bitcast 384
+             386:     11(int)   ISub 382 385
+             388:    236(ptr)   AccessChain 210(particleIn) 127 386 127
+             389:   86(fvec4)   Load 388
+             390:   18(fvec3)   VectorShuffle 389 389 0 1 2
+                                Store 387(param) 390
+             392:   18(fvec3)   Load 267(pos)
+                                Store 391(param) 392
+             394:    129(ptr)   AccessChain 124 127 358
+             395:    8(float)   Load 394
+                                Store 393(param) 395
+             396:   18(fvec3)   FunctionCall 30(springForce(vf3;vf3;f1;) 387(param) 391(param) 393(param)
+             397:   18(fvec3)   Load 254(force)
+             398:   18(fvec3)   FAdd 397 396
+                                Store 254(force) 398
+                                Branch 378
+             378:             Label
+             399:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+             400:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 401 401 16 16
+             402:    145(ptr) AccessChain 60(id) 16
+             403:     11(int) Load 402
+             404:   172(bool) UGreaterThan 403 16
+             405:    145(ptr) AccessChain 60(id) 38
+             406:     11(int) Load 405
+             407:    154(ptr) AccessChain 124 127 153 38
+             408:     88(int) Load 407
+             409:     88(int) ISub 408 244
+             410:     11(int) Bitcast 409
+             411:   172(bool) ULessThan 406 410
+             412:   172(bool) LogicalAnd 404 411
+                              SelectionMerge 414 None
+                              BranchConditional 412 413 414
+             413:               Label
+             415:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+             416:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 417 417 16 16
+             418:     11(int)   Load 147(index)
+             419:    154(ptr)   AccessChain 124 127 153 16
+             420:     88(int)   Load 419
+             421:     11(int)   Bitcast 420
+             422:     11(int)   IAdd 418 421
+             423:     11(int)   ISub 422 38
+             426:    236(ptr)   AccessChain 210(particleIn) 127 423 127
+             427:   86(fvec4)   Load 426
+             428:   18(fvec3)   VectorShuffle 427 427 0 1 2
+                                Store 425(param) 428
+             430:   18(fvec3)   Load 267(pos)
+                                Store 429(param) 430
+             432:    129(ptr)   AccessChain 124 127 424
+             433:    8(float)   Load 432
+                                Store 431(param) 433
+             434:   18(fvec3)   FunctionCall 30(springForce(vf3;vf3;f1;) 425(param) 429(param) 431(param)
+             435:   18(fvec3)   Load 254(force)
+             436:   18(fvec3)   FAdd 435 434
+                                Store 254(force) 436
+                                Branch 414
+             414:             Label
+             437:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+             438:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 439 439 16 16
+             440:    145(ptr) AccessChain 60(id) 16
+             441:     11(int) Load 440
+             442:   172(bool) UGreaterThan 441 16
+             443:    145(ptr) AccessChain 60(id) 38
+             444:     11(int) Load 443
+             445:   172(bool) UGreaterThan 444 16
+             446:   172(bool) LogicalAnd 442 445
+                              SelectionMerge 448 None
+                              BranchConditional 446 447 448
+             447:               Label
+             449:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+             450:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 451 451 16 16
+             452:     11(int)   Load 147(index)
+             453:    154(ptr)   AccessChain 124 127 153 16
+             454:     88(int)   Load 453
+             455:     11(int)   Bitcast 454
+             456:     11(int)   ISub 452 455
+             457:     11(int)   ISub 456 38
+             459:    236(ptr)   AccessChain 210(particleIn) 127 457 127
+             460:   86(fvec4)   Load 459
+             461:   18(fvec3)   VectorShuffle 460 460 0 1 2
+                                Store 458(param) 461
+             463:   18(fvec3)   Load 267(pos)
+                                Store 462(param) 463
+             465:    129(ptr)   AccessChain 124 127 424
+             466:    8(float)   Load 465
+                                Store 464(param) 466
+             467:   18(fvec3)   FunctionCall 30(springForce(vf3;vf3;f1;) 458(param) 462(param) 464(param)
+             468:   18(fvec3)   Load 254(force)
+             469:   18(fvec3)   FAdd 468 467
+                                Store 254(force) 469
+                                Branch 448
+             448:             Label
+             470:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+             471:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 472 472 16 16
+             473:    145(ptr) AccessChain 60(id) 16
+             474:     11(int) Load 473
+             475:    154(ptr) AccessChain 124 127 153 16
+             476:     88(int) Load 475
+             477:     88(int) ISub 476 244
+             478:     11(int) Bitcast 477
+             479:   172(bool) ULessThan 474 478
+             480:    145(ptr) AccessChain 60(id) 38
+             481:     11(int) Load 480
+             482:    154(ptr) AccessChain 124 127 153 38
+             483:     88(int) Load 482
+             484:     88(int) ISub 483 244
+             485:     11(int) Bitcast 484
+             486:   172(bool) ULessThan 481 485
+             487:   172(bool) LogicalAnd 479 486
+                              SelectionMerge 489 None
+                              BranchConditional 487 488 489
+             488:               Label
+             490:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+             491:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 492 492 16 16
+             493:     11(int)   Load 147(index)
+             494:    154(ptr)   AccessChain 124 127 153 16
+             495:     88(int)   Load 494
+             496:     11(int)   Bitcast 495
+             497:     11(int)   IAdd 493 496
+             498:     11(int)   IAdd 497 38
+             500:    236(ptr)   AccessChain 210(particleIn) 127 498 127
+             501:   86(fvec4)   Load 500
+             502:   18(fvec3)   VectorShuffle 501 501 0 1 2
+                                Store 499(param) 502
+             504:   18(fvec3)   Load 267(pos)
+                                Store 503(param) 504
+             506:    129(ptr)   AccessChain 124 127 424
+             507:    8(float)   Load 506
+                                Store 505(param) 507
+             508:   18(fvec3)   FunctionCall 30(springForce(vf3;vf3;f1;) 499(param) 503(param) 505(param)
+             509:   18(fvec3)   Load 254(force)
+             510:   18(fvec3)   FAdd 509 508
+                                Store 254(force) 510
+                                Branch 489
+             489:             Label
+             511:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+             512:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 513 513 16 16
+             514:    145(ptr) AccessChain 60(id) 16
+             515:     11(int) Load 514
+             516:    154(ptr) AccessChain 124 127 153 16
+             517:     88(int) Load 516
+             518:     88(int) ISub 517 244
+             519:     11(int) Bitcast 518
+             520:   172(bool) ULessThan 515 519
+             521:    145(ptr) AccessChain 60(id) 38
+             522:     11(int) Load 521
+             523:   172(bool) UGreaterThan 522 16
+             524:   172(bool) LogicalAnd 520 523
+                              SelectionMerge 526 None
+                              BranchConditional 524 525 526
+             525:               Label
+             527:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+             528:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 529 529 16 16
+             530:     11(int)   Load 147(index)
+             531:    154(ptr)   AccessChain 124 127 153 16
+             532:     88(int)   Load 531
+             533:     11(int)   Bitcast 532
+             534:     11(int)   ISub 530 533
+             535:     11(int)   IAdd 534 38
+             537:    236(ptr)   AccessChain 210(particleIn) 127 535 127
+             538:   86(fvec4)   Load 537
+             539:   18(fvec3)   VectorShuffle 538 538 0 1 2
+                                Store 536(param) 539
+             541:   18(fvec3)   Load 267(pos)
+                                Store 540(param) 541
+             543:    129(ptr)   AccessChain 124 127 424
+             544:    8(float)   Load 543
+                                Store 542(param) 544
+             545:   18(fvec3)   FunctionCall 30(springForce(vf3;vf3;f1;) 536(param) 540(param) 542(param)
+             546:   18(fvec3)   Load 254(force)
+             547:   18(fvec3)   FAdd 546 545
+                                Store 254(force) 547
+                                Branch 526
+             526:             Label
+             548:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+             549:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 550 550 16 16
+             552:    129(ptr) AccessChain 124 127 551
+             553:    8(float) Load 552
+             554:    8(float) FNegate 553
+             555:   18(fvec3) Load 277(vel)
+             556:   18(fvec3) VectorTimesScalar 555 554
+             557:   18(fvec3) Load 254(force)
+             558:   18(fvec3) FAdd 557 556
+                              Store 254(force) 558
+             559:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 560 560 16 16
+             564:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 562 561(f) 46
+             565:   18(fvec3) Load 254(force)
+             566:    129(ptr) AccessChain 124 127 244
+             567:    8(float) Load 566
+             568:    8(float) FDiv 216 567
+             569:   18(fvec3) VectorTimesScalar 565 568
+                              Store 561(f) 569
+             570:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 571 571 16 16
+             572:     11(int) Load 147(index)
+             573:   18(fvec3) Load 267(pos)
+             574:   18(fvec3) Load 277(vel)
+             575:    129(ptr) AccessChain 124 127 127
+             576:    8(float) Load 575
+             577:   18(fvec3) VectorTimesScalar 574 576
+             578:   18(fvec3) FAdd 573 577
+             580:   18(fvec3) Load 561(f)
+             581:   18(fvec3) VectorTimesScalar 580 579
+             582:    129(ptr) AccessChain 124 127 127
+             583:    8(float) Load 582
+             584:   18(fvec3) VectorTimesScalar 581 583
+             585:    129(ptr) AccessChain 124 127 127
+             586:    8(float) Load 585
+             587:   18(fvec3) VectorTimesScalar 584 586
+             588:   18(fvec3) FAdd 578 587
+             589:    8(float) CompositeExtract 588 0
+             590:    8(float) CompositeExtract 588 1
+             591:    8(float) CompositeExtract 588 2
+             592:   86(fvec4) CompositeConstruct 589 590 591 216
+             593:    236(ptr) AccessChain 232(particleOut) 127 572 127
+                              Store 593 592
+             594:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 595 595 16 16
+             596:     11(int) Load 147(index)
+             597:   18(fvec3) Load 277(vel)
+             598:   18(fvec3) Load 561(f)
+             599:    129(ptr) AccessChain 124 127 127
+             600:    8(float) Load 599
+             601:   18(fvec3) VectorTimesScalar 598 600
+             602:   18(fvec3) FAdd 597 601
+             603:    8(float) CompositeExtract 602 0
+             604:    8(float) CompositeExtract 602 1
+             605:    8(float) CompositeExtract 602 2
+             606:   86(fvec4) CompositeConstruct 603 604 605 245
+             607:    236(ptr) AccessChain 232(particleOut) 127 596 244
+                              Store 607 606
+             608:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 609 609 16 16
+             613:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 611 610(sphereDist) 46
+             614:     11(int) Load 147(index)
+             615:    236(ptr) AccessChain 232(particleOut) 127 614 127
+             616:   86(fvec4) Load 615
+             617:   18(fvec3) VectorShuffle 616 616 0 1 2
+             619:    236(ptr) AccessChain 124 127 618
+             620:   86(fvec4) Load 619
              621:   18(fvec3) VectorShuffle 620 620 0 1 2
-             623:    225(ptr) AccessChain 117 120 622
-             624:   80(fvec4) Load 623
-             625:   18(fvec3) VectorShuffle 624 624 0 1 2
-             626:   18(fvec3) FSub 621 625
-                              Store 614(sphereDist) 626
-             627:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 628 628 16 16
-             629:   18(fvec3) Load 614(sphereDist)
-             630:    8(float) ExtInst 3(GLSL.std.450) 66(Length) 629
-             632:    122(ptr) AccessChain 117 120 631
-             633:    8(float) Load 632
-             635:    8(float) FAdd 633 634
-             637:   162(bool) FOrdLessThan 630 635
-                              SelectionMerge 639 None
-                              BranchConditional 637 638 639
-             638:               Label
-             640:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-             641:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 642 642 16 16
-             643:     11(int)   Load 138(index)
-             644:    225(ptr)   AccessChain 117 120 622
-             645:   80(fvec4)   Load 644
-             646:   18(fvec3)   VectorShuffle 645 645 0 1 2
-             647:   18(fvec3)   Load 614(sphereDist)
-             648:   18(fvec3)   ExtInst 3(GLSL.std.450) 69(Normalize) 647
-             649:    122(ptr)   AccessChain 117 120 631
-             650:    8(float)   Load 649
-             651:    8(float)   FAdd 650 634
-             652:   18(fvec3)   VectorTimesScalar 648 651
-             653:   18(fvec3)   FAdd 646 652
-             654:    122(ptr)   AccessChain 221(particleOut) 120 643 120 16
-             655:    8(float)   CompositeExtract 653 0
-                                Store 654 655
-             656:    122(ptr)   AccessChain 221(particleOut) 120 643 120 33
-             657:    8(float)   CompositeExtract 653 1
-                                Store 656 657
-             658:    122(ptr)   AccessChain 221(particleOut) 120 643 120 45
-             659:    8(float)   CompositeExtract 653 2
-                                Store 658 659
-             660:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 661 661 16 16
-             662:     11(int)   Load 138(index)
-             663:    225(ptr)   AccessChain 221(particleOut) 120 662 232
-                                Store 663 234
-                                Branch 639
-             639:             Label
-             664:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-             665:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 666 666 16 16
-             684:    683(ptr) AccessChain 681 120 120
-             685:     11(int) Load 684
-             687:   162(bool) IEqual 685 33
-                              SelectionMerge 689 None
-                              BranchConditional 687 688 689
-             688:               Label
-             690:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-             691:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 692 692 16 16
-             695:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 694 693(normal) 42
-                                Store 693(normal) 696
-             697:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 698 698 16 16
-             699:    137(ptr)   AccessChain 55(id) 33
-             700:     11(int)   Load 699
-             702:   162(bool)   UGreaterThan 700 16
-                                SelectionMerge 704 None
-                                BranchConditional 702 703 704
-             703:                 Label
-             705:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-             706:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 707 707 16 16
-             708:    137(ptr)     AccessChain 55(id) 16
-             709:     11(int)     Load 708
-             711:   162(bool)     UGreaterThan 709 16
-                                  SelectionMerge 713 None
-                                  BranchConditional 711 712 713
-             712:                   Label
-             714:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-             715:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 716 716 16 16
-             720:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 718 717(a) 42
-             721:     11(int)       Load 138(index)
-             722:     11(int)       ISub 721 33
-             723:    225(ptr)       AccessChain 199(particleIn) 120 722 120
-             724:   80(fvec4)       Load 723
-             725:   18(fvec3)       VectorShuffle 724 724 0 1 2
-             726:   18(fvec3)       Load 255(pos)
-             727:   18(fvec3)       FSub 725 726
-                                    Store 717(a) 727
-             728:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 729 729 16 16
-             733:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 731 730(b) 42
-             734:     11(int)       Load 138(index)
-             735:    145(ptr)       AccessChain 117 120 144 16
-             736:     82(int)       Load 735
-             737:     11(int)       Bitcast 736
-             738:     11(int)       ISub 734 737
-             739:     11(int)       ISub 738 33
-             740:    225(ptr)       AccessChain 199(particleIn) 120 739 120
-             741:   80(fvec4)       Load 740
-             742:   18(fvec3)       VectorShuffle 741 741 0 1 2
-             743:   18(fvec3)       Load 255(pos)
-             744:   18(fvec3)       FSub 742 743
-                                    Store 730(b) 744
-             745:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 746 746 16 16
-             750:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 748 747(c) 42
-             751:     11(int)       Load 138(index)
-             752:    145(ptr)       AccessChain 117 120 144 16
-             753:     82(int)       Load 752
-             754:     11(int)       Bitcast 753
-             755:     11(int)       ISub 751 754
-             756:    225(ptr)       AccessChain 199(particleIn) 120 755 120
-             757:   80(fvec4)       Load 756
-             758:   18(fvec3)       VectorShuffle 757 757 0 1 2
-             759:   18(fvec3)       Load 255(pos)
-             760:   18(fvec3)       FSub 758 759
-                                    Store 747(c) 760
-             761:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 762 762 16 16
-             763:   18(fvec3)       Load 717(a)
-             764:   18(fvec3)       Load 730(b)
-             765:   18(fvec3)       ExtInst 3(GLSL.std.450) 68(Cross) 763 764
-             766:   18(fvec3)       Load 730(b)
-             767:   18(fvec3)       Load 747(c)
-             768:   18(fvec3)       ExtInst 3(GLSL.std.450) 68(Cross) 766 767
-             769:   18(fvec3)       FAdd 765 768
-             770:   18(fvec3)       Load 693(normal)
-             771:   18(fvec3)       FAdd 770 769
-                                    Store 693(normal) 771
-                                    Branch 713
-             713:                 Label
-             772:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-             773:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 774 774 16 16
-             775:    137(ptr)     AccessChain 55(id) 16
-             776:     11(int)     Load 775
-             777:    145(ptr)     AccessChain 117 120 144 16
-             778:     82(int)     Load 777
-             779:     82(int)     ISub 778 232
-             780:     11(int)     Bitcast 779
-             782:   162(bool)     ULessThan 776 780
-                                  SelectionMerge 784 None
-                                  BranchConditional 782 783 784
-             783:                   Label
-             785:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-             786:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 787 787 16 16
-             788:     11(int)       Load 138(index)
-             789:    145(ptr)       AccessChain 117 120 144 16
-             790:     82(int)       Load 789
-             791:     11(int)       Bitcast 790
-             792:     11(int)       ISub 788 791
-             793:    225(ptr)       AccessChain 199(particleIn) 120 792 120
-             794:   80(fvec4)       Load 793
-             795:   18(fvec3)       VectorShuffle 794 794 0 1 2
-             796:   18(fvec3)       Load 255(pos)
-             797:   18(fvec3)       FSub 795 796
-                                    Store 717(a) 797
-             798:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 799 799 16 16
-             800:     11(int)       Load 138(index)
-             801:    145(ptr)       AccessChain 117 120 144 16
-             802:     82(int)       Load 801
-             803:     11(int)       Bitcast 802
-             804:     11(int)       ISub 800 803
-             805:     11(int)       IAdd 804 33
-             806:    225(ptr)       AccessChain 199(particleIn) 120 805 120
-             807:   80(fvec4)       Load 806
-             808:   18(fvec3)       VectorShuffle 807 807 0 1 2
-             809:   18(fvec3)       Load 255(pos)
-             810:   18(fvec3)       FSub 808 809
-                                    Store 730(b) 810
-             811:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 812 812 16 16
-             813:     11(int)       Load 138(index)
-             814:     11(int)       IAdd 813 33
-             815:    225(ptr)       AccessChain 199(particleIn) 120 814 120
-             816:   80(fvec4)       Load 815
-             817:   18(fvec3)       VectorShuffle 816 816 0 1 2
-             818:   18(fvec3)       Load 255(pos)
-             819:   18(fvec3)       FSub 817 818
-                                    Store 747(c) 819
-             820:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 821 821 16 16
-             822:   18(fvec3)       Load 717(a)
-             823:   18(fvec3)       Load 730(b)
-             824:   18(fvec3)       ExtInst 3(GLSL.std.450) 68(Cross) 822 823
-             825:   18(fvec3)       Load 730(b)
-             826:   18(fvec3)       Load 747(c)
-             827:   18(fvec3)       ExtInst 3(GLSL.std.450) 68(Cross) 825 826
-             828:   18(fvec3)       FAdd 824 827
-             829:   18(fvec3)       Load 693(normal)
-             830:   18(fvec3)       FAdd 829 828
-                                    Store 693(normal) 830
-                                    Branch 784
-             784:                 Label
-                                  Branch 704
-             704:               Label
-             831:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-             832:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 833 833 16 16
-             834:    137(ptr)   AccessChain 55(id) 33
-             835:     11(int)   Load 834
-             836:    145(ptr)   AccessChain 117 120 144 33
-             837:     82(int)   Load 836
-             838:     82(int)   ISub 837 232
-             839:     11(int)   Bitcast 838
-             841:   162(bool)   ULessThan 835 839
-                                SelectionMerge 843 None
-                                BranchConditional 841 842 843
-             842:                 Label
-             844:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-             845:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 846 846 16 16
-             847:    137(ptr)     AccessChain 55(id) 16
-             848:     11(int)     Load 847
-             850:   162(bool)     UGreaterThan 848 16
-                                  SelectionMerge 852 None
-                                  BranchConditional 850 851 852
-             851:                   Label
-             853:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-             854:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 855 855 16 16
-             856:     11(int)       Load 138(index)
-             857:    145(ptr)       AccessChain 117 120 144 16
-             858:     82(int)       Load 857
-             859:     11(int)       Bitcast 858
-             860:     11(int)       IAdd 856 859
-             861:    225(ptr)       AccessChain 199(particleIn) 120 860 120
-             862:   80(fvec4)       Load 861
-             863:   18(fvec3)       VectorShuffle 862 862 0 1 2
-             864:   18(fvec3)       Load 255(pos)
-             865:   18(fvec3)       FSub 863 864
-                                    Store 717(a) 865
-             866:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 867 867 16 16
-             868:     11(int)       Load 138(index)
-             869:    145(ptr)       AccessChain 117 120 144 16
-             870:     82(int)       Load 869
-             871:     11(int)       Bitcast 870
-             872:     11(int)       IAdd 868 871
-             873:     11(int)       ISub 872 33
-             874:    225(ptr)       AccessChain 199(particleIn) 120 873 120
-             875:   80(fvec4)       Load 874
+             622:   18(fvec3) FSub 617 621
+                              Store 610(sphereDist) 622
+             623:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 624 624 16 16
+             625:   18(fvec3) Load 610(sphereDist)
+             626:    8(float) ExtInst 3(GLSL.std.450) 66(Length) 625
+             628:    129(ptr) AccessChain 124 127 627
+             629:    8(float) Load 628
+             631:    8(float) FAdd 629 630
+             632:   172(bool) FOrdLessThan 626 631
+                              SelectionMerge 634 None
+                              BranchConditional 632 633 634
+             633:               Label
+             635:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+             636:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 637 637 16 16
+             638:     11(int)   Load 147(index)
+             639:    236(ptr)   AccessChain 124 127 618
+             640:   86(fvec4)   Load 639
+             641:   18(fvec3)   VectorShuffle 640 640 0 1 2
+             642:   18(fvec3)   Load 610(sphereDist)
+             643:   18(fvec3)   ExtInst 3(GLSL.std.450) 69(Normalize) 642
+             644:    129(ptr)   AccessChain 124 127 627
+             645:    8(float)   Load 644
+             646:    8(float)   FAdd 645 630
+             647:   18(fvec3)   VectorTimesScalar 643 646
+             648:   18(fvec3)   FAdd 641 647
+             649:    129(ptr)   AccessChain 232(particleOut) 127 638 127 16
+             650:    8(float)   CompositeExtract 648 0
+                                Store 649 650
+             651:    129(ptr)   AccessChain 232(particleOut) 127 638 127 38
+             652:    8(float)   CompositeExtract 648 1
+                                Store 651 652
+             653:    129(ptr)   AccessChain 232(particleOut) 127 638 127 49
+             654:    8(float)   CompositeExtract 648 2
+                                Store 653 654
+             655:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 656 656 16 16
+             657:     11(int)   Load 147(index)
+             658:    236(ptr)   AccessChain 232(particleOut) 127 657 244
+                                Store 658 246
+                                Branch 634
+             634:             Label
+             659:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+             660:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 661 661 16 16
+             681:    679(ptr) AccessChain 677 127 127
+             682:     11(int) Load 681
+             683:   172(bool) IEqual 682 38
+                              SelectionMerge 685 None
+                              BranchConditional 683 684 685
+             684:               Label
+             686:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+             687:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 688 688 16 16
+             691:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 690 689(normal) 46
+                                Store 689(normal) 692
+             693:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 694 694 16 16
+             695:    145(ptr)   AccessChain 60(id) 38
+             696:     11(int)   Load 695
+             697:   172(bool)   UGreaterThan 696 16
+                                SelectionMerge 699 None
+                                BranchConditional 697 698 699
+             698:                 Label
+             700:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+             701:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 702 702 16 16
+             703:    145(ptr)     AccessChain 60(id) 16
+             704:     11(int)     Load 703
+             705:   172(bool)     UGreaterThan 704 16
+                                  SelectionMerge 707 None
+                                  BranchConditional 705 706 707
+             706:                   Label
+             708:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+             709:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 710 710 16 16
+             714:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 712 711(a) 46
+             715:     11(int)       Load 147(index)
+             716:     11(int)       ISub 715 38
+             717:    236(ptr)       AccessChain 210(particleIn) 127 716 127
+             718:   86(fvec4)       Load 717
+             719:   18(fvec3)       VectorShuffle 718 718 0 1 2
+             720:   18(fvec3)       Load 267(pos)
+             721:   18(fvec3)       FSub 719 720
+                                    Store 711(a) 721
+             722:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 723 723 16 16
+             727:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 725 724(b) 46
+             728:     11(int)       Load 147(index)
+             729:    154(ptr)       AccessChain 124 127 153 16
+             730:     88(int)       Load 729
+             731:     11(int)       Bitcast 730
+             732:     11(int)       ISub 728 731
+             733:     11(int)       ISub 732 38
+             734:    236(ptr)       AccessChain 210(particleIn) 127 733 127
+             735:   86(fvec4)       Load 734
+             736:   18(fvec3)       VectorShuffle 735 735 0 1 2
+             737:   18(fvec3)       Load 267(pos)
+             738:   18(fvec3)       FSub 736 737
+                                    Store 724(b) 738
+             739:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 740 740 16 16
+             744:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 742 741(c) 46
+             745:     11(int)       Load 147(index)
+             746:    154(ptr)       AccessChain 124 127 153 16
+             747:     88(int)       Load 746
+             748:     11(int)       Bitcast 747
+             749:     11(int)       ISub 745 748
+             750:    236(ptr)       AccessChain 210(particleIn) 127 749 127
+             751:   86(fvec4)       Load 750
+             752:   18(fvec3)       VectorShuffle 751 751 0 1 2
+             753:   18(fvec3)       Load 267(pos)
+             754:   18(fvec3)       FSub 752 753
+                                    Store 741(c) 754
+             755:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 756 756 16 16
+             757:   18(fvec3)       Load 711(a)
+             758:   18(fvec3)       Load 724(b)
+             759:   18(fvec3)       ExtInst 3(GLSL.std.450) 68(Cross) 757 758
+             760:   18(fvec3)       Load 724(b)
+             761:   18(fvec3)       Load 741(c)
+             762:   18(fvec3)       ExtInst 3(GLSL.std.450) 68(Cross) 760 761
+             763:   18(fvec3)       FAdd 759 762
+             764:   18(fvec3)       Load 689(normal)
+             765:   18(fvec3)       FAdd 764 763
+                                    Store 689(normal) 765
+                                    Branch 707
+             707:                 Label
+             766:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+             767:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 768 768 16 16
+             769:    145(ptr)     AccessChain 60(id) 16
+             770:     11(int)     Load 769
+             771:    154(ptr)     AccessChain 124 127 153 16
+             772:     88(int)     Load 771
+             773:     88(int)     ISub 772 244
+             774:     11(int)     Bitcast 773
+             775:   172(bool)     ULessThan 770 774
+                                  SelectionMerge 777 None
+                                  BranchConditional 775 776 777
+             776:                   Label
+             778:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+             779:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 780 780 16 16
+             781:     11(int)       Load 147(index)
+             782:    154(ptr)       AccessChain 124 127 153 16
+             783:     88(int)       Load 782
+             784:     11(int)       Bitcast 783
+             785:     11(int)       ISub 781 784
+             786:    236(ptr)       AccessChain 210(particleIn) 127 785 127
+             787:   86(fvec4)       Load 786
+             788:   18(fvec3)       VectorShuffle 787 787 0 1 2
+             789:   18(fvec3)       Load 267(pos)
+             790:   18(fvec3)       FSub 788 789
+                                    Store 711(a) 790
+             791:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 792 792 16 16
+             793:     11(int)       Load 147(index)
+             794:    154(ptr)       AccessChain 124 127 153 16
+             795:     88(int)       Load 794
+             796:     11(int)       Bitcast 795
+             797:     11(int)       ISub 793 796
+             798:     11(int)       IAdd 797 38
+             799:    236(ptr)       AccessChain 210(particleIn) 127 798 127
+             800:   86(fvec4)       Load 799
+             801:   18(fvec3)       VectorShuffle 800 800 0 1 2
+             802:   18(fvec3)       Load 267(pos)
+             803:   18(fvec3)       FSub 801 802
+                                    Store 724(b) 803
+             804:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 805 805 16 16
+             806:     11(int)       Load 147(index)
+             807:     11(int)       IAdd 806 38
+             808:    236(ptr)       AccessChain 210(particleIn) 127 807 127
+             809:   86(fvec4)       Load 808
+             810:   18(fvec3)       VectorShuffle 809 809 0 1 2
+             811:   18(fvec3)       Load 267(pos)
+             812:   18(fvec3)       FSub 810 811
+                                    Store 741(c) 812
+             813:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 814 814 16 16
+             815:   18(fvec3)       Load 711(a)
+             816:   18(fvec3)       Load 724(b)
+             817:   18(fvec3)       ExtInst 3(GLSL.std.450) 68(Cross) 815 816
+             818:   18(fvec3)       Load 724(b)
+             819:   18(fvec3)       Load 741(c)
+             820:   18(fvec3)       ExtInst 3(GLSL.std.450) 68(Cross) 818 819
+             821:   18(fvec3)       FAdd 817 820
+             822:   18(fvec3)       Load 689(normal)
+             823:   18(fvec3)       FAdd 822 821
+                                    Store 689(normal) 823
+                                    Branch 777
+             777:                 Label
+                                  Branch 699
+             699:               Label
+             824:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+             825:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 826 826 16 16
+             827:    145(ptr)   AccessChain 60(id) 38
+             828:     11(int)   Load 827
+             829:    154(ptr)   AccessChain 124 127 153 38
+             830:     88(int)   Load 829
+             831:     88(int)   ISub 830 244
+             832:     11(int)   Bitcast 831
+             833:   172(bool)   ULessThan 828 832
+                                SelectionMerge 835 None
+                                BranchConditional 833 834 835
+             834:                 Label
+             836:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+             837:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 838 838 16 16
+             839:    145(ptr)     AccessChain 60(id) 16
+             840:     11(int)     Load 839
+             841:   172(bool)     UGreaterThan 840 16
+                                  SelectionMerge 843 None
+                                  BranchConditional 841 842 843
+             842:                   Label
+             844:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+             845:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 846 846 16 16
+             847:     11(int)       Load 147(index)
+             848:    154(ptr)       AccessChain 124 127 153 16
+             849:     88(int)       Load 848
+             850:     11(int)       Bitcast 849
+             851:     11(int)       IAdd 847 850
+             852:    236(ptr)       AccessChain 210(particleIn) 127 851 127
+             853:   86(fvec4)       Load 852
+             854:   18(fvec3)       VectorShuffle 853 853 0 1 2
+             855:   18(fvec3)       Load 267(pos)
+             856:   18(fvec3)       FSub 854 855
+                                    Store 711(a) 856
+             857:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 858 858 16 16
+             859:     11(int)       Load 147(index)
+             860:    154(ptr)       AccessChain 124 127 153 16
+             861:     88(int)       Load 860
+             862:     11(int)       Bitcast 861
+             863:     11(int)       IAdd 859 862
+             864:     11(int)       ISub 863 38
+             865:    236(ptr)       AccessChain 210(particleIn) 127 864 127
+             866:   86(fvec4)       Load 865
+             867:   18(fvec3)       VectorShuffle 866 866 0 1 2
+             868:   18(fvec3)       Load 267(pos)
+             869:   18(fvec3)       FSub 867 868
+                                    Store 724(b) 869
+             870:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 871 871 16 16
+             872:     11(int)       Load 147(index)
+             873:     11(int)       ISub 872 38
+             874:    236(ptr)       AccessChain 210(particleIn) 127 873 127
+             875:   86(fvec4)       Load 874
              876:   18(fvec3)       VectorShuffle 875 875 0 1 2
-             877:   18(fvec3)       Load 255(pos)
+             877:   18(fvec3)       Load 267(pos)
              878:   18(fvec3)       FSub 876 877
-                                    Store 730(b) 878
-             879:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 880 880 16 16
-             881:     11(int)       Load 138(index)
-             882:     11(int)       ISub 881 33
-             883:    225(ptr)       AccessChain 199(particleIn) 120 882 120
-             884:   80(fvec4)       Load 883
-             885:   18(fvec3)       VectorShuffle 884 884 0 1 2
-             886:   18(fvec3)       Load 255(pos)
-             887:   18(fvec3)       FSub 885 886
-                                    Store 747(c) 887
-             888:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 889 889 16 16
-             890:   18(fvec3)       Load 717(a)
-             891:   18(fvec3)       Load 730(b)
-             892:   18(fvec3)       ExtInst 3(GLSL.std.450) 68(Cross) 890 891
-             893:   18(fvec3)       Load 730(b)
-             894:   18(fvec3)       Load 747(c)
-             895:   18(fvec3)       ExtInst 3(GLSL.std.450) 68(Cross) 893 894
-             896:   18(fvec3)       FAdd 892 895
-             897:   18(fvec3)       Load 693(normal)
-             898:   18(fvec3)       FAdd 897 896
-                                    Store 693(normal) 898
-                                    Branch 852
-             852:                 Label
-             899:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-             900:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 901 901 16 16
-             902:    137(ptr)     AccessChain 55(id) 16
-             903:     11(int)     Load 902
-             904:    145(ptr)     AccessChain 117 120 144 16
-             905:     82(int)     Load 904
-             906:     82(int)     ISub 905 232
-             907:     11(int)     Bitcast 906
-             909:   162(bool)     ULessThan 903 907
-                                  SelectionMerge 911 None
-                                  BranchConditional 909 910 911
-             910:                   Label
-             912:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-             913:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 914 914 16 16
-             915:     11(int)       Load 138(index)
-             916:     11(int)       IAdd 915 33
-             917:    225(ptr)       AccessChain 199(particleIn) 120 916 120
-             918:   80(fvec4)       Load 917
-             919:   18(fvec3)       VectorShuffle 918 918 0 1 2
-             920:   18(fvec3)       Load 255(pos)
-             921:   18(fvec3)       FSub 919 920
-                                    Store 717(a) 921
-             922:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 923 923 16 16
-             924:     11(int)       Load 138(index)
-             925:    145(ptr)       AccessChain 117 120 144 16
-             926:     82(int)       Load 925
-             927:     11(int)       Bitcast 926
-             928:     11(int)       IAdd 924 927
-             929:     11(int)       IAdd 928 33
-             930:    225(ptr)       AccessChain 199(particleIn) 120 929 120
-             931:   80(fvec4)       Load 930
-             932:   18(fvec3)       VectorShuffle 931 931 0 1 2
-             933:   18(fvec3)       Load 255(pos)
-             934:   18(fvec3)       FSub 932 933
-                                    Store 730(b) 934
-             935:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 936 936 16 16
-             937:     11(int)       Load 138(index)
-             938:    145(ptr)       AccessChain 117 120 144 16
-             939:     82(int)       Load 938
-             940:     11(int)       Bitcast 939
-             941:     11(int)       IAdd 937 940
-             942:    225(ptr)       AccessChain 199(particleIn) 120 941 120
-             943:   80(fvec4)       Load 942
-             944:   18(fvec3)       VectorShuffle 943 943 0 1 2
-             945:   18(fvec3)       Load 255(pos)
-             946:   18(fvec3)       FSub 944 945
-                                    Store 747(c) 946
-             947:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 948 948 16 16
-             949:   18(fvec3)       Load 717(a)
-             950:   18(fvec3)       Load 730(b)
-             951:   18(fvec3)       ExtInst 3(GLSL.std.450) 68(Cross) 949 950
-             952:   18(fvec3)       Load 730(b)
-             953:   18(fvec3)       Load 747(c)
-             954:   18(fvec3)       ExtInst 3(GLSL.std.450) 68(Cross) 952 953
-             955:   18(fvec3)       FAdd 951 954
-             956:   18(fvec3)       Load 693(normal)
-             957:   18(fvec3)       FAdd 956 955
-                                    Store 693(normal) 957
-                                    Branch 911
-             911:                 Label
-                                  Branch 843
-             843:               Label
-             958:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-             959:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 960 960 16 16
-             961:     11(int)   Load 138(index)
-             962:   18(fvec3)   Load 693(normal)
-             963:   18(fvec3)   ExtInst 3(GLSL.std.450) 69(Normalize) 962
-             964:    8(float)   CompositeExtract 963 0
-             965:    8(float)   CompositeExtract 963 1
-             966:    8(float)   CompositeExtract 963 2
-             967:   80(fvec4)   CompositeConstruct 964 965 966 233
-             968:    225(ptr)   AccessChain 221(particleOut) 120 961 555
-                                Store 968 967
-                                Branch 689
-             689:             Label
+                                    Store 741(c) 878
+             879:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 880 880 16 16
+             881:   18(fvec3)       Load 711(a)
+             882:   18(fvec3)       Load 724(b)
+             883:   18(fvec3)       ExtInst 3(GLSL.std.450) 68(Cross) 881 882
+             884:   18(fvec3)       Load 724(b)
+             885:   18(fvec3)       Load 741(c)
+             886:   18(fvec3)       ExtInst 3(GLSL.std.450) 68(Cross) 884 885
+             887:   18(fvec3)       FAdd 883 886
+             888:   18(fvec3)       Load 689(normal)
+             889:   18(fvec3)       FAdd 888 887
+                                    Store 689(normal) 889
+                                    Branch 843
+             843:                 Label
+             890:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+             891:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 892 892 16 16
+             893:    145(ptr)     AccessChain 60(id) 16
+             894:     11(int)     Load 893
+             895:    154(ptr)     AccessChain 124 127 153 16
+             896:     88(int)     Load 895
+             897:     88(int)     ISub 896 244
+             898:     11(int)     Bitcast 897
+             899:   172(bool)     ULessThan 894 898
+                                  SelectionMerge 901 None
+                                  BranchConditional 899 900 901
+             900:                   Label
+             902:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+             903:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 904 904 16 16
+             905:     11(int)       Load 147(index)
+             906:     11(int)       IAdd 905 38
+             907:    236(ptr)       AccessChain 210(particleIn) 127 906 127
+             908:   86(fvec4)       Load 907
+             909:   18(fvec3)       VectorShuffle 908 908 0 1 2
+             910:   18(fvec3)       Load 267(pos)
+             911:   18(fvec3)       FSub 909 910
+                                    Store 711(a) 911
+             912:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 913 913 16 16
+             914:     11(int)       Load 147(index)
+             915:    154(ptr)       AccessChain 124 127 153 16
+             916:     88(int)       Load 915
+             917:     11(int)       Bitcast 916
+             918:     11(int)       IAdd 914 917
+             919:     11(int)       IAdd 918 38
+             920:    236(ptr)       AccessChain 210(particleIn) 127 919 127
+             921:   86(fvec4)       Load 920
+             922:   18(fvec3)       VectorShuffle 921 921 0 1 2
+             923:   18(fvec3)       Load 267(pos)
+             924:   18(fvec3)       FSub 922 923
+                                    Store 724(b) 924
+             925:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 926 926 16 16
+             927:     11(int)       Load 147(index)
+             928:    154(ptr)       AccessChain 124 127 153 16
+             929:     88(int)       Load 928
+             930:     11(int)       Bitcast 929
+             931:     11(int)       IAdd 927 930
+             932:    236(ptr)       AccessChain 210(particleIn) 127 931 127
+             933:   86(fvec4)       Load 932
+             934:   18(fvec3)       VectorShuffle 933 933 0 1 2
+             935:   18(fvec3)       Load 267(pos)
+             936:   18(fvec3)       FSub 934 935
+                                    Store 741(c) 936
+             937:           4       ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 938 938 16 16
+             939:   18(fvec3)       Load 711(a)
+             940:   18(fvec3)       Load 724(b)
+             941:   18(fvec3)       ExtInst 3(GLSL.std.450) 68(Cross) 939 940
+             942:   18(fvec3)       Load 724(b)
+             943:   18(fvec3)       Load 741(c)
+             944:   18(fvec3)       ExtInst 3(GLSL.std.450) 68(Cross) 942 943
+             945:   18(fvec3)       FAdd 941 944
+             946:   18(fvec3)       Load 689(normal)
+             947:   18(fvec3)       FAdd 946 945
+                                    Store 689(normal) 947
+                                    Branch 901
+             901:                 Label
+                                  Branch 835
+             835:               Label
+             948:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 64
+             949:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 950 950 16 16
+             951:     11(int)   Load 147(index)
+             952:   18(fvec3)   Load 689(normal)
+             953:   18(fvec3)   ExtInst 3(GLSL.std.450) 69(Normalize) 952
+             954:    8(float)   CompositeExtract 953 0
+             955:    8(float)   CompositeExtract 953 1
+             956:    8(float)   CompositeExtract 953 2
+             957:   86(fvec4)   CompositeConstruct 954 955 956 245
+             958:    236(ptr)   AccessChain 232(particleOut) 127 951 551
+                                Store 958 957
+                                Branch 685
+             685:             Label
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.debuginfo.hlsl.frag.out b/Test/baseResults/spv.debuginfo.hlsl.frag.out
index 5dad549..b76a7d7 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
 // Module Version 10000
 // Generated by (magic number): 8000b
-// Id's are bound by 886
+// Id's are bound by 895
 
                               Capability Shader
                               Capability ImageQuery
@@ -9,13 +9,13 @@
                2:             ExtInstImport  "NonSemantic.Shader.DebugInfo.100"
                3:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 6  "main" 879 882
+                              EntryPoint Fragment 6  "main" 888 891
                               ExecutionMode 6 OriginUpperLeft
                1:             String  ""
-              10:             String  "float"
-              13:             String  "uint"
-              33:             String  "textureProj"
-              36:             String  "// OpModuleProcessed auto-map-locations
+               9:             String  "float"
+              12:             String  "uint"
+              38:             String  "textureProj"
+              41:             String  "// OpModuleProcessed auto-map-locations
 // OpModuleProcessed auto-map-bindings
 // OpModuleProcessed entry-point main
 // OpModuleProcessed client vulkan100
@@ -24,191 +24,191 @@
 // OpModuleProcessed hlsl-offsets
 #line 1
 "
-              44:             String  "P"
-              48:             String  "layer"
-              51:             String  "offset"
-              58:             String  "filterPCF"
-              64:             String  "sc"
-              76:             String  "shadow"
-              82:             String  "fragcolor"
-              85:             String  "fragPos"
-              91:             String  "@main"
-              97:             String  "inUV"
-             111:             String  "shadowCoord"
-             136:             String  "bool"
-             152:             String  "dist"
-             156:             String  "type.2d.image"
-             157:             String  "@type.2d.image"
-             162:             String  "textureShadowMap"
-             167:             String  "type.sampler"
-             168:             String  "@type.sampler"
-             172:             String  "samplerShadowMap"
-             176:             String  "type.sampled.image"
-             177:             String  "@type.sampled.image"
-             224:             String  "sizeQueryTemp"
-             229:             String  "int"
-             236:             String  "texDim"
-             250:             String  "elements"
-             257:             String  "levels"
-             266:             String  "scale"
-             273:             String  "dx"
-             285:             String  "dy"
-             297:             String  "shadowFactor"
-             303:             String  "count"
-             310:             String  "range"
-             317:             String  "x"
-             339:             String  "y"
-             403:             String  "i"
-             423:             String  "shadowClip"
-             435:             String  "color"
-             441:             String  "viewMatrix"
-             445:             String  "Light"
-             451:             String  "lights"
-             454:             String  "displayDebugTarget"
-             459:             String  "UBO"
-             462:             String  "ubo"
-             512:             String  "textureposition"
-             517:             String  "samplerposition"
-             529:             String  "normal"
-             533:             String  "textureNormal"
-             538:             String  "samplerNormal"
-             548:             String  "albedo"
-             552:             String  "textureAlbedo"
-             557:             String  "samplerAlbedo"
-             647:             String  "N"
-             673:             String  "L"
-             697:             String  "V"
-             712:             String  "lightCosInnerAngle"
-             719:             String  "lightCosOuterAngle"
-             726:             String  "lightRange"
-             733:             String  "dir"
-             749:             String  "cosDir"
-             758:             String  "spotEffect"
-             768:             String  "heightAttenuation"
-             777:             String  "NdotL"
-             787:             String  "diff"
-             795:             String  "R"
-             805:             String  "NdotR"
-             815:             String  "spec"
+              49:             String  "P"
+              53:             String  "layer"
+              56:             String  "offset"
+              64:             String  "filterPCF"
+              70:             String  "sc"
+              84:             String  "shadow"
+              90:             String  "fragcolor"
+              93:             String  "fragPos"
+             100:             String  "@main"
+             106:             String  "inUV"
+             120:             String  "shadowCoord"
+             145:             String  "bool"
+             159:             String  "dist"
+             163:             String  "type.2d.image"
+             164:             String  "@type.2d.image"
+             170:             String  "textureShadowMap"
+             175:             String  "type.sampler"
+             176:             String  "@type.sampler"
+             181:             String  "samplerShadowMap"
+             185:             String  "type.sampled.image"
+             186:             String  "@type.sampled.image"
+             231:             String  "sizeQueryTemp"
+             236:             String  "int"
+             244:             String  "texDim"
+             260:             String  "elements"
+             267:             String  "levels"
+             276:             String  "scale"
+             283:             String  "dx"
+             295:             String  "dy"
+             307:             String  "shadowFactor"
+             313:             String  "count"
+             320:             String  "range"
+             327:             String  "x"
+             348:             String  "y"
+             411:             String  "i"
+             430:             String  "shadowClip"
+             442:             String  "color"
+             448:             String  "viewMatrix"
+             452:             String  "Light"
+             458:             String  "lights"
+             461:             String  "displayDebugTarget"
+             466:             String  "UBO"
+             469:             String  "ubo"
+             522:             String  "textureposition"
+             527:             String  "samplerposition"
+             539:             String  "normal"
+             543:             String  "textureNormal"
+             548:             String  "samplerNormal"
+             558:             String  "albedo"
+             562:             String  "textureAlbedo"
+             567:             String  "samplerAlbedo"
+             657:             String  "N"
+             682:             String  "L"
+             707:             String  "V"
+             722:             String  "lightCosInnerAngle"
+             729:             String  "lightCosOuterAngle"
+             736:             String  "lightRange"
+             743:             String  "dir"
+             759:             String  "cosDir"
+             768:             String  "spotEffect"
+             778:             String  "heightAttenuation"
+             787:             String  "NdotL"
+             797:             String  "diff"
+             805:             String  "R"
+             815:             String  "NdotR"
+             825:             String  "spec"
                               Name 6  "main"
-                              Name 32  "textureProj(vf4;f1;vf2;"
-                              Name 29  "P"
-                              Name 30  "layer"
-                              Name 31  "offset"
-                              Name 57  "filterPCF(vf4;f1;"
-                              Name 55  "sc"
-                              Name 56  "layer"
-                              Name 75  "shadow(vf3;vf3;"
-                              Name 73  "fragcolor"
-                              Name 74  "fragPos"
-                              Name 90  "@main(vf2;"
-                              Name 89  "inUV"
-                              Name 103  "shadow"
-                              Name 109  "shadowCoord"
-                              Name 150  "dist"
-                              Name 160  "textureShadowMap"
-                              Name 170  "samplerShadowMap"
-                              Name 222  "sizeQueryTemp"
-                              Name 234  "texDim"
-                              Name 248  "elements"
-                              Name 255  "levels"
-                              Name 264  "scale"
-                              Name 271  "dx"
-                              Name 283  "dy"
-                              Name 295  "shadowFactor"
-                              Name 301  "count"
-                              Name 308  "range"
-                              Name 315  "x"
-                              Name 337  "y"
-                              Name 368  "param"
-                              Name 370  "param"
-                              Name 372  "param"
-                              Name 401  "i"
-                              Name 421  "shadowClip"
-                              Name 433  "Light"
-                              MemberName 433(Light) 0  "position"
-                              MemberName 433(Light) 1  "target"
-                              MemberName 433(Light) 2  "color"
-                              MemberName 433(Light) 3  "viewMatrix"
-                              Name 448  "UBO"
-                              MemberName 448(UBO) 0  "viewPos"
-                              MemberName 448(UBO) 1  "lights"
-                              MemberName 448(UBO) 2  "useShadows"
-                              MemberName 448(UBO) 3  "displayDebugTarget"
-                              Name 460  "ubo"
-                              MemberName 460(ubo) 0  "ubo"
-                              Name 467  ""
-                              Name 476  "shadowFactor"
-                              Name 481  "param"
-                              Name 483  "param"
-                              Name 504  "fragPos"
-                              Name 510  "textureposition"
-                              Name 515  "samplerposition"
-                              Name 527  "normal"
-                              Name 531  "textureNormal"
-                              Name 536  "samplerNormal"
-                              Name 546  "albedo"
-                              Name 550  "textureAlbedo"
-                              Name 555  "samplerAlbedo"
-                              Name 585  "fragcolor"
-                              Name 589  "param"
-                              Name 590  "param"
-                              Name 645  "N"
-                              Name 653  "i"
-                              Name 671  "L"
-                              Name 684  "dist"
-                              Name 695  "V"
-                              Name 710  "lightCosInnerAngle"
-                              Name 717  "lightCosOuterAngle"
-                              Name 724  "lightRange"
-                              Name 731  "dir"
-                              Name 747  "cosDir"
-                              Name 756  "spotEffect"
-                              Name 766  "heightAttenuation"
-                              Name 775  "NdotL"
-                              Name 785  "diff"
-                              Name 793  "R"
-                              Name 803  "NdotR"
-                              Name 813  "spec"
-                              Name 862  "param"
-                              Name 864  "param"
-                              Name 877  "inUV"
-                              Name 879  "inUV"
-                              Name 882  "@entryPointOutput"
-                              Name 883  "param"
-                              Decorate 160(textureShadowMap) DescriptorSet 0
-                              Decorate 160(textureShadowMap) Binding 5
-                              Decorate 170(samplerShadowMap) DescriptorSet 0
-                              Decorate 170(samplerShadowMap) Binding 5
-                              MemberDecorate 433(Light) 0 Offset 0
-                              MemberDecorate 433(Light) 1 Offset 16
-                              MemberDecorate 433(Light) 2 Offset 32
-                              MemberDecorate 433(Light) 3 RowMajor
-                              MemberDecorate 433(Light) 3 Offset 48
-                              MemberDecorate 433(Light) 3 MatrixStride 16
-                              Decorate 446 ArrayStride 112
-                              MemberDecorate 448(UBO) 0 Offset 0
-                              MemberDecorate 448(UBO) 1 Offset 16
-                              MemberDecorate 448(UBO) 2 Offset 352
-                              MemberDecorate 448(UBO) 3 Offset 356
-                              MemberDecorate 460(ubo) 0 Offset 0
-                              Decorate 460(ubo) Block
-                              Decorate 467 DescriptorSet 0
-                              Decorate 467 Binding 4
-                              Decorate 510(textureposition) DescriptorSet 0
-                              Decorate 510(textureposition) Binding 1
-                              Decorate 515(samplerposition) DescriptorSet 0
-                              Decorate 515(samplerposition) Binding 1
-                              Decorate 531(textureNormal) DescriptorSet 0
-                              Decorate 531(textureNormal) Binding 2
-                              Decorate 536(samplerNormal) DescriptorSet 0
-                              Decorate 536(samplerNormal) Binding 2
-                              Decorate 550(textureAlbedo) DescriptorSet 0
-                              Decorate 550(textureAlbedo) Binding 3
-                              Decorate 555(samplerAlbedo) DescriptorSet 0
-                              Decorate 555(samplerAlbedo) Binding 3
-                              Decorate 879(inUV) Location 0
-                              Decorate 882(@entryPointOutput) Location 0
+                              Name 36  "textureProj(vf4;f1;vf2;"
+                              Name 33  "P"
+                              Name 34  "layer"
+                              Name 35  "offset"
+                              Name 62  "filterPCF(vf4;f1;"
+                              Name 60  "sc"
+                              Name 61  "layer"
+                              Name 82  "shadow(vf3;vf3;"
+                              Name 80  "fragcolor"
+                              Name 81  "fragPos"
+                              Name 98  "@main(vf2;"
+                              Name 97  "inUV"
+                              Name 112  "shadow"
+                              Name 118  "shadowCoord"
+                              Name 157  "dist"
+                              Name 168  "textureShadowMap"
+                              Name 179  "samplerShadowMap"
+                              Name 229  "sizeQueryTemp"
+                              Name 242  "texDim"
+                              Name 258  "elements"
+                              Name 265  "levels"
+                              Name 274  "scale"
+                              Name 281  "dx"
+                              Name 293  "dy"
+                              Name 305  "shadowFactor"
+                              Name 311  "count"
+                              Name 318  "range"
+                              Name 325  "x"
+                              Name 346  "y"
+                              Name 376  "param"
+                              Name 378  "param"
+                              Name 380  "param"
+                              Name 409  "i"
+                              Name 428  "shadowClip"
+                              Name 440  "Light"
+                              MemberName 440(Light) 0  "position"
+                              MemberName 440(Light) 1  "target"
+                              MemberName 440(Light) 2  "color"
+                              MemberName 440(Light) 3  "viewMatrix"
+                              Name 455  "UBO"
+                              MemberName 455(UBO) 0  "viewPos"
+                              MemberName 455(UBO) 1  "lights"
+                              MemberName 455(UBO) 2  "useShadows"
+                              MemberName 455(UBO) 3  "displayDebugTarget"
+                              Name 467  "ubo"
+                              MemberName 467(ubo) 0  "ubo"
+                              Name 475  ""
+                              Name 485  "shadowFactor"
+                              Name 490  "param"
+                              Name 492  "param"
+                              Name 513  "fragPos"
+                              Name 520  "textureposition"
+                              Name 525  "samplerposition"
+                              Name 537  "normal"
+                              Name 541  "textureNormal"
+                              Name 546  "samplerNormal"
+                              Name 556  "albedo"
+                              Name 560  "textureAlbedo"
+                              Name 565  "samplerAlbedo"
+                              Name 595  "fragcolor"
+                              Name 599  "param"
+                              Name 600  "param"
+                              Name 655  "N"
+                              Name 663  "i"
+                              Name 680  "L"
+                              Name 694  "dist"
+                              Name 705  "V"
+                              Name 720  "lightCosInnerAngle"
+                              Name 727  "lightCosOuterAngle"
+                              Name 734  "lightRange"
+                              Name 741  "dir"
+                              Name 757  "cosDir"
+                              Name 766  "spotEffect"
+                              Name 776  "heightAttenuation"
+                              Name 785  "NdotL"
+                              Name 795  "diff"
+                              Name 803  "R"
+                              Name 813  "NdotR"
+                              Name 823  "spec"
+                              Name 871  "param"
+                              Name 873  "param"
+                              Name 886  "inUV"
+                              Name 888  "inUV"
+                              Name 891  "@entryPointOutput"
+                              Name 892  "param"
+                              Decorate 168(textureShadowMap) DescriptorSet 0
+                              Decorate 168(textureShadowMap) Binding 5
+                              Decorate 179(samplerShadowMap) DescriptorSet 0
+                              Decorate 179(samplerShadowMap) Binding 5
+                              MemberDecorate 440(Light) 0 Offset 0
+                              MemberDecorate 440(Light) 1 Offset 16
+                              MemberDecorate 440(Light) 2 Offset 32
+                              MemberDecorate 440(Light) 3 RowMajor
+                              MemberDecorate 440(Light) 3 Offset 48
+                              MemberDecorate 440(Light) 3 MatrixStride 16
+                              Decorate 453 ArrayStride 112
+                              MemberDecorate 455(UBO) 0 Offset 0
+                              MemberDecorate 455(UBO) 1 Offset 16
+                              MemberDecorate 455(UBO) 2 Offset 352
+                              MemberDecorate 455(UBO) 3 Offset 356
+                              MemberDecorate 467(ubo) 0 Offset 0
+                              Decorate 467(ubo) Block
+                              Decorate 475 DescriptorSet 0
+                              Decorate 475 Binding 4
+                              Decorate 520(textureposition) DescriptorSet 0
+                              Decorate 520(textureposition) Binding 1
+                              Decorate 525(samplerposition) DescriptorSet 0
+                              Decorate 525(samplerposition) Binding 1
+                              Decorate 541(textureNormal) DescriptorSet 0
+                              Decorate 541(textureNormal) Binding 2
+                              Decorate 546(samplerNormal) DescriptorSet 0
+                              Decorate 546(samplerNormal) Binding 2
+                              Decorate 560(textureAlbedo) DescriptorSet 0
+                              Decorate 560(textureAlbedo) Binding 3
+                              Decorate 565(samplerAlbedo) DescriptorSet 0
+                              Decorate 565(samplerAlbedo) Binding 3
+                              Decorate 888(inUV) Location 0
+                              Decorate 891(@entryPointOutput) Location 0
                4:             TypeVoid
                5:             TypeFunction 4
                8:             TypeFloat 32
@@ -216,928 +216,937 @@
               14:     11(int) Constant 32
               15:     11(int) Constant 6
               16:     11(int) Constant 0
-              12:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 13 14 15 16
+              13:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 12 14 15 16
               17:     11(int) Constant 3
-               9:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 10 14 17 16
+              10:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 9 14 17 16
               18:             TypeVector 8(float) 4
               19:     11(int) Constant 4
-              20:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 9 19
+              20:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 10 19
               21:             TypePointer Function 18(fvec4)
-              22:             TypePointer Function 8(float)
-              23:             TypeVector 8(float) 2
-              24:     11(int) Constant 2
-              25:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 9 24
-              26:             TypePointer Function 23(fvec2)
-              27:             TypeFunction 8(float) 21(ptr) 22(ptr) 26(ptr)
-              28:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 17 9 20 9 25
-              35:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 1 36
-              38:     11(int) Constant 1
-              39:     11(int) Constant 5
-              37:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 38 19 35 39
-              34:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 33 28 35 16 16 37 33 17 16
-              43:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 44 20 35 16 16 34 19 38
-              46:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
-              47:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 48 9 35 16 16 34 19 24
-              50:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 51 25 35 16 16 34 19 17
-              53:             TypeFunction 8(float) 21(ptr) 22(ptr)
-              54:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 17 9 20 9
-              59:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 58 54 35 16 16 37 58 17 16
-              63:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 64 20 35 16 16 59 19 38
-              66:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 48 9 35 16 16 59 19 24
-              68:             TypeVector 8(float) 3
-              69:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 9 17
-              70:             TypePointer Function 68(fvec3)
-              71:             TypeFunction 68(fvec3) 70(ptr) 70(ptr)
-              72:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 17 69 69 69
-              77:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 76 72 35 16 16 37 76 17 16
-              81:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 82 69 35 16 16 77 19 38
-              84:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 85 69 35 16 16 77 19 24
-              87:             TypeFunction 18(fvec4) 26(ptr)
-              88:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 17 20 25
-              92:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 91 88 35 16 16 37 91 17 16
-              96:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 97 25 35 16 16 92 19 38
-             102:     11(int) Constant 62
-             104:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 76 9 35 102 16 34 19
-             106:    8(float) Constant 1065353216
-             108:     11(int) Constant 63
-             110:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 111 20 35 108 16 34 19
-             119:     11(int) Constant 64
-             122:    8(float) Constant 1056964608
-             131:     11(int) Constant 66
-             134:    8(float) Constant 3212836864
-             135:             TypeBool
-             137:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 136 14 24 16
-             141:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 136 14 24 16
-             143:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 136 14 24 16
-             149:     11(int) Constant 68
-             151:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 152 9 35 149 16 34 19
-             154:             TypeImage 8(float) 2D array sampled format:Unknown
-             158:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 0(DebugInfoNone)
-             155:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 156 16 35 149 16 37 157 158 17
-             159:             TypePointer UniformConstant 154
-160(textureShadowMap):    159(ptr) Variable UniformConstant
-             163:     11(int) Constant 8
-             161:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 162 155 35 149 16 37 162 160(textureShadowMap) 163
-             165:             TypeSampler
-             166:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 167 38 35 149 16 37 168 158 17
-             169:             TypePointer UniformConstant 165
-170(samplerShadowMap):    169(ptr) Variable UniformConstant
-             171:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 172 166 35 149 16 37 172 170(samplerShadowMap) 163
-             174:             TypeSampledImage 154
-             175:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 176 16 35 149 16 37 177 158 17
-             190:     11(int) Constant 69
-             193:    8(float) Constant 0
-             194:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 136 14 24 16
-             199:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 136 14 24 16
-             201:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 136 14 24 16
-             207:     11(int) Constant 71
-             208:    8(float) Constant 1048576000
-             211:     11(int) Constant 74
-             218:     11(int) Constant 80
-             219:             TypeVector 11(int) 3
-             220:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 12 17
-             221:             TypePointer Function 219(ivec3)
-             223:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 224 220 35 218 16 59 19
-             228:             TypeInt 32 1
-             230:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 229 14 19 16
-             231:             TypeVector 228(int) 2
-             232:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 230 24
-             233:             TypePointer Function 231(ivec2)
-             235:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 236 232 35 218 16 59 19
-             238:             TypePointer Function 11(int)
-             242:             TypePointer Function 228(int)
-             249:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 250 230 35 218 16 59 19
-             256:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 257 230 35 218 16 59 19
-             263:     11(int) Constant 81
-             265:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 266 9 35 263 16 59 19
-             268:    8(float) Constant 1069547520
-             270:     11(int) Constant 82
-             272:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 273 9 35 270 16 59 19
-             282:     11(int) Constant 83
-             284:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 285 9 35 282 16 59 19
-             294:     11(int) Constant 85
-             296:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 297 9 35 294 16 59 19
-             300:     11(int) Constant 86
-             302:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 303 230 35 300 16 59 19
-             305:    228(int) Constant 0
-             307:     11(int) Constant 87
-             309:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 310 230 35 307 16 59 19
-             312:    228(int) Constant 1
-             314:     11(int) Constant 89
-             316:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 317 230 35 314 16 59 19
-             332:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 136 14 24 16
-             336:     11(int) Constant 91
-             338:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 339 230 35 336 16 59 19
-             354:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 136 14 24 16
-             358:     11(int) Constant 93
-             377:     11(int) Constant 94
-             390:     11(int) Constant 98
-             400:     11(int) Constant 102
-             402:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 403 230 35 400 16 77 19
-             415:    228(int) Constant 3
-             416:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 136 14 24 16
-             420:     11(int) Constant 104
-             422:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 423 20 35 420 16 77 19
-             430:             TypeMatrix 18(fvec4) 4
-             432:   135(bool) ConstantTrue
-             431:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 20 19 432
-      433(Light):             TypeStruct 18(fvec4) 18(fvec4) 18(fvec4) 430
-             436:     11(int) Constant 46
-             437:     11(int) Constant 14
-             434:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 435 20 35 436 437 16 16 17
-             438:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 435 20 35 436 437 16 16 17
-             439:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 435 20 35 436 437 16 16 17
-             442:     11(int) Constant 47
-             443:     11(int) Constant 21
-             440:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 441 431 35 442 443 16 16 17
-             444:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 445 38 35 420 16 37 445 16 17 434 438 439 440
-             446:             TypeArray 433(Light) 17
-             447:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 444 17
-        448(UBO):             TypeStruct 18(fvec4) 446 228(int) 228(int)
-             449:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 435 20 35 436 437 16 16 17
-             452:     11(int) Constant 53
-             450:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 451 447 35 452 437 16 16 17
-             455:     11(int) Constant 55
-             456:     11(int) Constant 24
-             453:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 454 230 35 455 456 16 16 17
-             457:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 454 230 35 455 456 16 16 17
-             458:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 459 38 35 420 16 37 459 16 17 449 450 453 457
-        460(ubo):             TypeStruct 448(UBO)
-             463:     11(int) Constant 58
-             464:     11(int) Constant 37
-             461:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 462 458 35 463 464 16 16 17
-             465:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 462 38 35 420 16 37 462 16 17 461
-             466:             TypePointer Uniform 460(ubo)
-             467:    466(ptr) Variable Uniform
-             468:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 1 465 35 420 16 37 1 467 163
-             470:             TypePointer Uniform 430
-             475:     11(int) Constant 108
-             477:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 297 9 35 475 16 77 19
-             486:     11(int) Constant 113
-             496:     11(int) Constant 115
-             503:     11(int) Constant 121
-             505:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 85 69 35 503 16 92 19
-             507:             TypeImage 8(float) 2D sampled format:Unknown
-             508:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 156 16 35 503 16 37 157 158 17
-             509:             TypePointer UniformConstant 507
-510(textureposition):    509(ptr) Variable UniformConstant
-             511:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 512 508 35 503 16 37 512 510(textureposition) 163
-             514:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 167 38 35 503 16 37 168 158 17
-515(samplerposition):    169(ptr) Variable UniformConstant
-             516:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 517 514 35 503 16 37 517 515(samplerposition) 163
-             519:             TypeSampledImage 507
-             520:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 176 16 35 503 16 37 177 158 17
-             526:     11(int) Constant 122
-             528:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 529 69 35 526 16 92 19
-531(textureNormal):    509(ptr) Variable UniformConstant
-             532:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 533 508 35 526 16 37 533 531(textureNormal) 163
-             535:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 167 38 35 526 16 37 168 158 17
-536(samplerNormal):    169(ptr) Variable UniformConstant
-             537:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 538 535 35 526 16 37 538 536(samplerNormal) 163
-             545:     11(int) Constant 123
-             547:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 548 20 35 545 16 92 19
-550(textureAlbedo):    509(ptr) Variable UniformConstant
-             551:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 552 508 35 545 16 37 552 550(textureAlbedo) 163
-             554:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 167 38 35 545 16 37 168 158 17
-555(samplerAlbedo):    169(ptr) Variable UniformConstant
-             556:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 557 554 35 545 16 37 557 555(samplerAlbedo) 163
-             563:     11(int) Constant 128
-             564:             TypePointer Uniform 228(int)
-             567:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 136 14 24 16
-             573:     11(int) Constant 129
-             584:     11(int) Constant 131
-             586:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 82 69 35 584 16 92 19
-             588:   68(fvec3) ConstantComposite 106 106 106
-             594:     11(int) Constant 132
-             598:     11(int) Constant 134
-             601:     11(int) Constant 135
-             605:     11(int) Constant 137
-             608:     11(int) Constant 138
-             612:     11(int) Constant 140
-             616:     11(int) Constant 141
-             620:     11(int) Constant 143
-             624:     11(int) Constant 144
-             629:     11(int) Constant 146
-             638:     11(int) Constant 150
-             641:    8(float) Constant 1036831949
-             644:     11(int) Constant 152
-             646:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 647 69 35 644 16 92 19
-             652:     11(int) Constant 154
-             654:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 403 230 35 652 16 92 19
-             666:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 136 14 24 16
-             670:     11(int) Constant 157
-             672:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 673 69 35 670 16 92 19
-             676:             TypePointer Uniform 18(fvec4)
-             683:     11(int) Constant 159
-             685:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 152 9 35 683 16 92 19
-             690:     11(int) Constant 160
-             694:     11(int) Constant 163
-             696:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 697 69 35 694 16 92 19
-             705:     11(int) Constant 164
-             709:     11(int) Constant 166
-             711:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 712 9 35 709 16 92 19
-             714:    8(float) Constant 1064781546
-             716:     11(int) Constant 167
-             718:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 719 9 35 716 16 92 19
-             721:    8(float) Constant 1063781322
-             723:     11(int) Constant 168
-             725:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 726 9 35 723 16 92 19
-             728:    8(float) Constant 1120403456
-             730:     11(int) Constant 171
-             732:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 733 69 35 730 16 92 19
-             746:     11(int) Constant 174
-             748:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 749 9 35 746 16 92 19
-             755:     11(int) Constant 175
-             757:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 758 9 35 755 16 92 19
-             765:     11(int) Constant 176
-             767:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 768 9 35 765 16 92 19
-             774:     11(int) Constant 179
-             776:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 777 9 35 774 16 92 19
-             784:     11(int) Constant 180
-             786:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 787 69 35 784 16 92 19
-             792:     11(int) Constant 183
-             794:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 795 69 35 792 16 92 19
-             802:     11(int) Constant 184
-             804:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 805 9 35 802 16 92 19
-             812:     11(int) Constant 185
-             814:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 815 69 35 812 16 92 19
-             818:    8(float) Constant 1098907648
-             823:    8(float) Constant 1075838976
-             827:     11(int) Constant 187
-             836:    228(int) Constant 2
-             852:     11(int) Constant 191
-             855:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 136 14 24 16
-             861:     11(int) Constant 193
-             869:     11(int) Constant 196
-             878:             TypePointer Input 23(fvec2)
-       879(inUV):    878(ptr) Variable Input
-             881:             TypePointer Output 18(fvec4)
-882(@entryPointOutput):    881(ptr) Variable Output
+              22:     11(int) Constant 7
+              23:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 20 22 16
+              24:             TypePointer Function 8(float)
+              25:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 10 22 16
+              26:             TypeVector 8(float) 2
+              27:     11(int) Constant 2
+              28:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 10 27
+              29:             TypePointer Function 26(fvec2)
+              30:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 28 22 16
+              31:             TypeFunction 8(float) 21(ptr) 24(ptr) 29(ptr)
+              32:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 17 10 20 10 28
+              40:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 1 41
+              42:     11(int) Constant 61
+              44:     11(int) Constant 1
+              45:     11(int) Constant 5
+              43:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 44 19 40 45
+              39:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 38 32 40 42 16 43 38 17 42
+              48:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 49 20 40 42 16 39 19 44
+              51:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
+              52:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 53 10 40 42 16 39 19 27
+              55:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 56 28 40 42 16 39 19 17
+              58:             TypeFunction 8(float) 21(ptr) 24(ptr)
+              59:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 17 10 20 10
+              66:     11(int) Constant 78
+              65:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 64 59 40 66 16 43 64 17 66
+              69:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 70 20 40 66 16 65 19 44
+              72:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 53 10 40 66 16 65 19 27
+              74:             TypeVector 8(float) 3
+              75:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 10 17
+              76:             TypePointer Function 74(fvec3)
+              77:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 75 22 16
+              78:             TypeFunction 74(fvec3) 76(ptr) 76(ptr)
+              79:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 17 75 75 75
+              86:     11(int) Constant 101
+              85:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 84 79 40 86 16 43 84 17 86
+              89:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 90 75 40 86 16 85 19 44
+              92:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 93 75 40 86 16 85 19 27
+              95:             TypeFunction 18(fvec4) 29(ptr)
+              96:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 17 20 28
+             102:     11(int) Constant 119
+             101:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 100 96 40 102 16 43 100 17 102
+             105:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 106 28 40 102 16 101 19 44
+             111:     11(int) Constant 62
+             113:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 84 10 40 111 16 39 19
+             115:    8(float) Constant 1065353216
+             117:     11(int) Constant 63
+             119:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 120 20 40 117 16 39 19
+             128:     11(int) Constant 64
+             131:    8(float) Constant 1056964608
+             140:     11(int) Constant 66
+             143:    8(float) Constant 3212836864
+             144:             TypeBool
+             146:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 145 14 27 16
+             156:     11(int) Constant 68
+             158:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 159 10 40 156 16 39 19
+             161:             TypeImage 8(float) 2D array sampled format:Unknown
+             165:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 0(DebugInfoNone)
+             162:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 163 16 40 156 16 43 164 165 17
+             166:             TypePointer UniformConstant 161
+             167:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 162 16 16
+168(textureShadowMap):    166(ptr) Variable UniformConstant
+             171:     11(int) Constant 8
+             169:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 170 162 40 156 16 43 170 168(textureShadowMap) 171
+             173:             TypeSampler
+             174:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 175 44 40 156 16 43 176 165 17
+             177:             TypePointer UniformConstant 173
+             178:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 174 16 16
+179(samplerShadowMap):    177(ptr) Variable UniformConstant
+             180:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 181 174 40 156 16 43 181 179(samplerShadowMap) 171
+             183:             TypeSampledImage 161
+             184:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 185 16 40 156 16 43 186 165 17
+             199:     11(int) Constant 69
+             202:    8(float) Constant 0
+             213:     11(int) Constant 71
+             214:    8(float) Constant 1048576000
+             217:     11(int) Constant 74
+             224:     11(int) Constant 80
+             225:             TypeVector 11(int) 3
+             226:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 13 17
+             227:             TypePointer Function 225(ivec3)
+             228:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 226 22 16
+             230:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 231 226 40 224 16 65 19
+             235:             TypeInt 32 1
+             237:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 236 14 19 16
+             238:             TypeVector 235(int) 2
+             239:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 237 27
+             240:             TypePointer Function 238(ivec2)
+             241:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 239 22 16
+             243:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 244 239 40 224 16 65 19
+             246:             TypePointer Function 11(int)
+             247:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 13 22 16
+             251:             TypePointer Function 235(int)
+             252:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 237 22 16
+             259:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 260 237 40 224 16 65 19
+             266:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 267 237 40 224 16 65 19
+             273:     11(int) Constant 81
+             275:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 276 10 40 273 16 65 19
+             278:    8(float) Constant 1069547520
+             280:     11(int) Constant 82
+             282:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 283 10 40 280 16 65 19
+             292:     11(int) Constant 83
+             294:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 295 10 40 292 16 65 19
+             304:     11(int) Constant 85
+             306:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 307 10 40 304 16 65 19
+             310:     11(int) Constant 86
+             312:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 313 237 40 310 16 65 19
+             315:    235(int) Constant 0
+             317:     11(int) Constant 87
+             319:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 320 237 40 317 16 65 19
+             322:    235(int) Constant 1
+             324:     11(int) Constant 89
+             326:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 327 237 40 324 16 65 19
+             345:     11(int) Constant 91
+             347:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 348 237 40 345 16 65 19
+             366:     11(int) Constant 93
+             385:     11(int) Constant 94
+             398:     11(int) Constant 98
+             408:     11(int) Constant 102
+             410:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 411 237 40 408 16 85 19
+             423:    235(int) Constant 3
+             427:     11(int) Constant 104
+             429:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 430 20 40 427 16 85 19
+             437:             TypeMatrix 18(fvec4) 4
+             439:   144(bool) ConstantTrue
+             438:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 20 19 439
+      440(Light):             TypeStruct 18(fvec4) 18(fvec4) 18(fvec4) 437
+             443:     11(int) Constant 46
+             444:     11(int) Constant 14
+             441:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 442 20 40 443 444 16 16 17
+             445:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 442 20 40 443 444 16 16 17
+             446:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 442 20 40 443 444 16 16 17
+             449:     11(int) Constant 47
+             450:     11(int) Constant 21
+             447:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 448 438 40 449 450 16 16 17
+             451:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 452 44 40 427 16 43 452 16 17 441 445 446 447
+             453:             TypeArray 440(Light) 17
+             454:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 451 17
+        455(UBO):             TypeStruct 18(fvec4) 453 235(int) 235(int)
+             456:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 442 20 40 443 444 16 16 17
+             459:     11(int) Constant 53
+             457:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 458 454 40 459 444 16 16 17
+             462:     11(int) Constant 55
+             463:     11(int) Constant 24
+             460:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 461 237 40 462 463 16 16 17
+             464:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 461 237 40 462 463 16 16 17
+             465:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 466 44 40 427 16 43 466 16 17 456 457 460 464
+        467(ubo):             TypeStruct 455(UBO)
+             470:     11(int) Constant 58
+             471:     11(int) Constant 37
+             468:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 469 465 40 470 471 16 16 17
+             472:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 469 44 40 427 16 43 469 16 17 468
+             473:             TypePointer Uniform 467(ubo)
+             474:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 472 27 16
+             475:    473(ptr) Variable Uniform
+             476:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 1 472 40 427 16 43 1 475 171
+             478:             TypePointer Uniform 437
+             479:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 438 27 16
+             484:     11(int) Constant 108
+             486:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 307 10 40 484 16 85 19
+             495:     11(int) Constant 113
+             505:     11(int) Constant 115
+             512:     11(int) Constant 121
+             514:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 93 75 40 512 16 101 19
+             516:             TypeImage 8(float) 2D sampled format:Unknown
+             517:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 163 16 40 512 16 43 164 165 17
+             518:             TypePointer UniformConstant 516
+             519:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 517 16 16
+520(textureposition):    518(ptr) Variable UniformConstant
+             521:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 522 517 40 512 16 43 522 520(textureposition) 171
+             524:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 175 44 40 512 16 43 176 165 17
+525(samplerposition):    177(ptr) Variable UniformConstant
+             526:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 527 524 40 512 16 43 527 525(samplerposition) 171
+             529:             TypeSampledImage 516
+             530:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 185 16 40 512 16 43 186 165 17
+             536:     11(int) Constant 122
+             538:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 539 75 40 536 16 101 19
+541(textureNormal):    518(ptr) Variable UniformConstant
+             542:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 543 517 40 536 16 43 543 541(textureNormal) 171
+             545:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 175 44 40 536 16 43 176 165 17
+546(samplerNormal):    177(ptr) Variable UniformConstant
+             547:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 548 545 40 536 16 43 548 546(samplerNormal) 171
+             555:     11(int) Constant 123
+             557:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 558 20 40 555 16 101 19
+560(textureAlbedo):    518(ptr) Variable UniformConstant
+             561:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 562 517 40 555 16 43 562 560(textureAlbedo) 171
+             564:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 175 44 40 555 16 43 176 165 17
+565(samplerAlbedo):    177(ptr) Variable UniformConstant
+             566:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 567 564 40 555 16 43 567 565(samplerAlbedo) 171
+             573:     11(int) Constant 128
+             574:             TypePointer Uniform 235(int)
+             575:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 237 27 16
+             583:     11(int) Constant 129
+             594:     11(int) Constant 131
+             596:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 90 75 40 594 16 101 19
+             598:   74(fvec3) ConstantComposite 115 115 115
+             604:     11(int) Constant 132
+             608:     11(int) Constant 134
+             611:     11(int) Constant 135
+             615:     11(int) Constant 137
+             618:     11(int) Constant 138
+             622:     11(int) Constant 140
+             626:     11(int) Constant 141
+             630:     11(int) Constant 143
+             634:     11(int) Constant 144
+             639:     11(int) Constant 146
+             648:     11(int) Constant 150
+             651:    8(float) Constant 1036831949
+             654:     11(int) Constant 152
+             656:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 657 75 40 654 16 101 19
+             662:     11(int) Constant 154
+             664:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 411 237 40 662 16 101 19
+             679:     11(int) Constant 157
+             681:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 682 75 40 679 16 101 19
+             685:             TypePointer Uniform 18(fvec4)
+             686:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 20 27 16
+             693:     11(int) Constant 159
+             695:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 159 10 40 693 16 101 19
+             700:     11(int) Constant 160
+             704:     11(int) Constant 163
+             706:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 707 75 40 704 16 101 19
+             715:     11(int) Constant 164
+             719:     11(int) Constant 166
+             721:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 722 10 40 719 16 101 19
+             724:    8(float) Constant 1064781546
+             726:     11(int) Constant 167
+             728:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 729 10 40 726 16 101 19
+             731:    8(float) Constant 1063781322
+             733:     11(int) Constant 168
+             735:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 736 10 40 733 16 101 19
+             738:    8(float) Constant 1120403456
+             740:     11(int) Constant 171
+             742:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 743 75 40 740 16 101 19
+             756:     11(int) Constant 174
+             758:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 759 10 40 756 16 101 19
+             765:     11(int) Constant 175
+             767:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 768 10 40 765 16 101 19
+             775:     11(int) Constant 176
+             777:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 778 10 40 775 16 101 19
+             784:     11(int) Constant 179
+             786:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 787 10 40 784 16 101 19
+             794:     11(int) Constant 180
+             796:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 797 75 40 794 16 101 19
+             802:     11(int) Constant 183
+             804:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 805 75 40 802 16 101 19
+             812:     11(int) Constant 184
+             814:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 815 10 40 812 16 101 19
+             822:     11(int) Constant 185
+             824:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 825 75 40 822 16 101 19
+             828:    8(float) Constant 1098907648
+             833:    8(float) Constant 1075838976
+             837:     11(int) Constant 187
+             846:    235(int) Constant 2
+             862:     11(int) Constant 191
+             870:     11(int) Constant 193
+             878:     11(int) Constant 196
+             887:             TypePointer Input 26(fvec2)
+       888(inUV):    887(ptr) Variable Input
+             890:             TypePointer Output 18(fvec4)
+891(@entryPointOutput):    890(ptr) Variable Output
                               Line 1 119 1
          6(main):           4 Function None 5
                7:             Label
-       877(inUV):     26(ptr) Variable Function
-      883(param):     26(ptr) Variable Function
+       886(inUV):     29(ptr) Variable Function
+      892(param):     29(ptr) Variable Function
                               Line 1 119 0
-             880:   23(fvec2) Load 879(inUV)
-                              Store 877(inUV) 880
-             884:   23(fvec2) Load 877(inUV)
-                              Store 883(param) 884
-             885:   18(fvec4) FunctionCall 90(@main(vf2;) 883(param)
-                              Store 882(@entryPointOutput) 885
+             889:   26(fvec2) Load 888(inUV)
+                              Store 886(inUV) 889
+             893:   26(fvec2) Load 886(inUV)
+                              Store 892(param) 893
+             894:   18(fvec4) FunctionCall 98(@main(vf2;) 892(param)
+                              Store 891(@entryPointOutput) 894
                               Return
                               FunctionEnd
                               Line 1 61 1
-32(textureProj(vf4;f1;vf2;):    8(float) Function None 27
-           29(P):     21(ptr) FunctionParameter
-       30(layer):     22(ptr) FunctionParameter
-      31(offset):     26(ptr) FunctionParameter
-              40:             Label
-     103(shadow):     22(ptr) Variable Function
-109(shadowCoord):     21(ptr) Variable Function
-       150(dist):     22(ptr) Variable Function
-              41:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 34
-              42:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 16 16 16 16
-              45:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 43 29(P) 46
-              49:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 47 30(layer) 46
-              52:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 50 31(offset) 46
-              99:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 34 32(textureProj(vf4;f1;vf2;)
-             100:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 34
-             101:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 102 102 16 16
-             105:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 104 103(shadow) 46
-                              Store 103(shadow) 106
-             107:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 108 108 16 16
-             112:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 110 109(shadowCoord) 46
-             113:   18(fvec4) Load 29(P)
-             114:     22(ptr) AccessChain 29(P) 17
-             115:    8(float) Load 114
-             116:   18(fvec4) CompositeConstruct 115 115 115 115
-             117:   18(fvec4) FDiv 113 116
-                              Store 109(shadowCoord) 117
-             118:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 119 119 16 16
-             120:   18(fvec4) Load 109(shadowCoord)
-             121:   23(fvec2) VectorShuffle 120 120 0 1
-             123:   23(fvec2) VectorTimesScalar 121 122
-             124:   23(fvec2) CompositeConstruct 122 122
-             125:   23(fvec2) FAdd 123 124
-             126:     22(ptr) AccessChain 109(shadowCoord) 16
-             127:    8(float) CompositeExtract 125 0
-                              Store 126 127
-             128:     22(ptr) AccessChain 109(shadowCoord) 38
-             129:    8(float) CompositeExtract 125 1
-                              Store 128 129
-             130:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 131 131 16 16
-             132:     22(ptr) AccessChain 109(shadowCoord) 24
-             133:    8(float) Load 132
-             138:   135(bool) FOrdGreaterThan 133 134
-             139:     22(ptr) AccessChain 109(shadowCoord) 24
-             140:    8(float) Load 139
-             142:   135(bool) FOrdLessThan 140 106
-             144:   135(bool) LogicalAnd 138 142
-                              SelectionMerge 146 None
-                              BranchConditional 144 145 146
-             145:               Label
-             147:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 34
-             148:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 149 149 16 16
-             153:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 151 150(dist) 46
-             164:         154   Load 160(textureShadowMap)
-             173:         165   Load 170(samplerShadowMap)
-             178:         174   SampledImage 164 173
-             179:   18(fvec4)   Load 109(shadowCoord)
-             180:   23(fvec2)   VectorShuffle 179 179 0 1
-             181:   23(fvec2)   Load 31(offset)
-             182:   23(fvec2)   FAdd 180 181
-             183:    8(float)   Load 30(layer)
-             184:    8(float)   CompositeExtract 182 0
-             185:    8(float)   CompositeExtract 182 1
-             186:   68(fvec3)   CompositeConstruct 184 185 183
-             187:   18(fvec4)   ImageSampleImplicitLod 178 186
-             188:    8(float)   CompositeExtract 187 0
-                                Store 150(dist) 188
-             189:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 190 190 16 16
-             191:     22(ptr)   AccessChain 109(shadowCoord) 17
-             192:    8(float)   Load 191
-             195:   135(bool)   FOrdGreaterThan 192 193
-             196:    8(float)   Load 150(dist)
-             197:     22(ptr)   AccessChain 109(shadowCoord) 24
-             198:    8(float)   Load 197
-             200:   135(bool)   FOrdLessThan 196 198
-             202:   135(bool)   LogicalAnd 195 200
-                                SelectionMerge 204 None
-                                BranchConditional 202 203 204
-             203:                 Label
-             205:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 34
-             206:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 207 207 16 16
-                                  Store 103(shadow) 208
-                                  Branch 204
-             204:               Label
-                                Branch 146
-             146:             Label
-             209:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 34
-             210:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 211 211 16 16
-             212:    8(float) Load 103(shadow)
-                              ReturnValue 212
+36(textureProj(vf4;f1;vf2;):    8(float) Function None 31
+           33(P):     21(ptr) FunctionParameter
+       34(layer):     24(ptr) FunctionParameter
+      35(offset):     29(ptr) FunctionParameter
+              37:             Label
+     112(shadow):     24(ptr) Variable Function
+118(shadowCoord):     21(ptr) Variable Function
+       157(dist):     24(ptr) Variable Function
+              46:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 39
+              47:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 42 42 16 16
+              50:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 48 33(P) 51
+              54:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 52 34(layer) 51
+              57:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 55 35(offset) 51
+             108:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 39 36(textureProj(vf4;f1;vf2;)
+             109:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 39
+             110:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 111 111 16 16
+             114:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 113 112(shadow) 51
+                              Store 112(shadow) 115
+             116:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 117 117 16 16
+             121:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 119 118(shadowCoord) 51
+             122:   18(fvec4) Load 33(P)
+             123:     24(ptr) AccessChain 33(P) 17
+             124:    8(float) Load 123
+             125:   18(fvec4) CompositeConstruct 124 124 124 124
+             126:   18(fvec4) FDiv 122 125
+                              Store 118(shadowCoord) 126
+             127:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 128 128 16 16
+             129:   18(fvec4) Load 118(shadowCoord)
+             130:   26(fvec2) VectorShuffle 129 129 0 1
+             132:   26(fvec2) VectorTimesScalar 130 131
+             133:   26(fvec2) CompositeConstruct 131 131
+             134:   26(fvec2) FAdd 132 133
+             135:     24(ptr) AccessChain 118(shadowCoord) 16
+             136:    8(float) CompositeExtract 134 0
+                              Store 135 136
+             137:     24(ptr) AccessChain 118(shadowCoord) 44
+             138:    8(float) CompositeExtract 134 1
+                              Store 137 138
+             139:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 140 140 16 16
+             141:     24(ptr) AccessChain 118(shadowCoord) 27
+             142:    8(float) Load 141
+             147:   144(bool) FOrdGreaterThan 142 143
+             148:     24(ptr) AccessChain 118(shadowCoord) 27
+             149:    8(float) Load 148
+             150:   144(bool) FOrdLessThan 149 115
+             151:   144(bool) LogicalAnd 147 150
+                              SelectionMerge 153 None
+                              BranchConditional 151 152 153
+             152:               Label
+             154:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 39
+             155:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 156 156 16 16
+             160:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 158 157(dist) 51
+             172:         161   Load 168(textureShadowMap)
+             182:         173   Load 179(samplerShadowMap)
+             187:         183   SampledImage 172 182
+             188:   18(fvec4)   Load 118(shadowCoord)
+             189:   26(fvec2)   VectorShuffle 188 188 0 1
+             190:   26(fvec2)   Load 35(offset)
+             191:   26(fvec2)   FAdd 189 190
+             192:    8(float)   Load 34(layer)
+             193:    8(float)   CompositeExtract 191 0
+             194:    8(float)   CompositeExtract 191 1
+             195:   74(fvec3)   CompositeConstruct 193 194 192
+             196:   18(fvec4)   ImageSampleImplicitLod 187 195
+             197:    8(float)   CompositeExtract 196 0
+                                Store 157(dist) 197
+             198:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 199 199 16 16
+             200:     24(ptr)   AccessChain 118(shadowCoord) 17
+             201:    8(float)   Load 200
+             203:   144(bool)   FOrdGreaterThan 201 202
+             204:    8(float)   Load 157(dist)
+             205:     24(ptr)   AccessChain 118(shadowCoord) 27
+             206:    8(float)   Load 205
+             207:   144(bool)   FOrdLessThan 204 206
+             208:   144(bool)   LogicalAnd 203 207
+                                SelectionMerge 210 None
+                                BranchConditional 208 209 210
+             209:                 Label
+             211:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 39
+             212:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 213 213 16 16
+                                  Store 112(shadow) 214
+                                  Branch 210
+             210:               Label
+                                Branch 153
+             153:             Label
+             215:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 39
+             216:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 217 217 16 16
+             218:    8(float) Load 112(shadow)
+                              ReturnValue 218
                               FunctionEnd
                               Line 1 78 1
-57(filterPCF(vf4;f1;):    8(float) Function None 53
-          55(sc):     21(ptr) FunctionParameter
-       56(layer):     22(ptr) FunctionParameter
-              60:             Label
-222(sizeQueryTemp):    221(ptr) Variable Function
-     234(texDim):    233(ptr) Variable Function
-   248(elements):    242(ptr) Variable Function
-     255(levels):    242(ptr) Variable Function
-      264(scale):     22(ptr) Variable Function
-         271(dx):     22(ptr) Variable Function
-         283(dy):     22(ptr) Variable Function
-295(shadowFactor):     22(ptr) Variable Function
-      301(count):    242(ptr) Variable Function
-      308(range):    242(ptr) Variable Function
-          315(x):    242(ptr) Variable Function
-          337(y):    242(ptr) Variable Function
-      368(param):     21(ptr) Variable Function
-      370(param):     22(ptr) Variable Function
-      372(param):     26(ptr) Variable Function
-              61:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59
-              62:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 16 16 16 16
-              65:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 63 55(sc) 46
-              67:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 66 56(layer) 46
-             215:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 59 57(filterPCF(vf4;f1;)
-             216:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59
-             217:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 218 218 16 16
-             225:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 223 222(sizeQueryTemp) 46
-             226:         154 Load 160(textureShadowMap)
-             227:  219(ivec3) ImageQuerySizeLod 226 16
-                              Store 222(sizeQueryTemp) 227
-             237:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 235 234(texDim) 46
-             239:    238(ptr) AccessChain 222(sizeQueryTemp) 16
-             240:     11(int) Load 239
-             241:    228(int) Bitcast 240
-             243:    242(ptr) AccessChain 234(texDim) 16
-                              Store 243 241
-             244:    238(ptr) AccessChain 222(sizeQueryTemp) 38
-             245:     11(int) Load 244
-             246:    228(int) Bitcast 245
-             247:    242(ptr) AccessChain 234(texDim) 38
-                              Store 247 246
-             251:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 249 248(elements) 46
-             252:    238(ptr) AccessChain 222(sizeQueryTemp) 24
-             253:     11(int) Load 252
-             254:    228(int) Bitcast 253
-                              Store 248(elements) 254
-             258:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 256 255(levels) 46
-             259:         154 Load 160(textureShadowMap)
-             260:     11(int) ImageQueryLevels 259
-             261:    228(int) Bitcast 260
-                              Store 255(levels) 261
-             262:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 263 263 16 16
-             267:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 265 264(scale) 46
-                              Store 264(scale) 268
-             269:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 270 270 16 16
-             274:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 272 271(dx) 46
-             275:    8(float) Load 264(scale)
-             276:    8(float) FMul 275 106
-             277:    242(ptr) AccessChain 234(texDim) 16
-             278:    228(int) Load 277
-             279:    8(float) ConvertSToF 278
-             280:    8(float) FDiv 276 279
-                              Store 271(dx) 280
-             281:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 282 282 16 16
-             286:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 284 283(dy) 46
-             287:    8(float) Load 264(scale)
-             288:    8(float) FMul 287 106
-             289:    242(ptr) AccessChain 234(texDim) 38
-             290:    228(int) Load 289
-             291:    8(float) ConvertSToF 290
-             292:    8(float) FDiv 288 291
-                              Store 283(dy) 292
-             293:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 294 294 16 16
-             298:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 296 295(shadowFactor) 46
-                              Store 295(shadowFactor) 193
-             299:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 300 300 16 16
-             304:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 302 301(count) 46
-                              Store 301(count) 305
-             306:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 307 307 16 16
-             311:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 309 308(range) 46
-                              Store 308(range) 312
-             313:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 314 314 16 16
-             318:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 316 315(x) 46
-             319:    228(int) Load 308(range)
-             320:    228(int) SNegate 319
-                              Store 315(x) 320
-                              Branch 321
-             321:             Label
-             325:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59
-             326:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 314 314 16 16
-                              LoopMerge 323 324 None
-                              Branch 327
-             327:             Label
-             328:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59
-             329:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 314 314 16 16
-             330:    228(int) Load 315(x)
-             331:    228(int) Load 308(range)
-             333:   135(bool) SLessThanEqual 330 331
-                              BranchConditional 333 322 323
-             322:               Label
-             334:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59
-             335:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 336 336 16 16
-             340:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 338 337(y) 46
-             341:    228(int)   Load 308(range)
-             342:    228(int)   SNegate 341
-                                Store 337(y) 342
-                                Branch 343
-             343:               Label
-             347:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59
-             348:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 336 336 16 16
-                                LoopMerge 345 346 None
-                                Branch 349
-             349:               Label
-             350:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59
-             351:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 336 336 16 16
-             352:    228(int)   Load 337(y)
-             353:    228(int)   Load 308(range)
-             355:   135(bool)   SLessThanEqual 352 353
-                                BranchConditional 355 344 345
-             344:                 Label
-             356:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59
-             357:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 358 358 16 16
-             359:    8(float)     Load 271(dx)
-             360:    228(int)     Load 315(x)
-             361:    8(float)     ConvertSToF 360
-             362:    8(float)     FMul 359 361
-             363:    8(float)     Load 283(dy)
-             364:    228(int)     Load 337(y)
-             365:    8(float)     ConvertSToF 364
-             366:    8(float)     FMul 363 365
-             367:   23(fvec2)     CompositeConstruct 362 366
-             369:   18(fvec4)     Load 55(sc)
-                                  Store 368(param) 369
-             371:    8(float)     Load 56(layer)
-                                  Store 370(param) 371
-                                  Store 372(param) 367
-             373:    8(float)     FunctionCall 32(textureProj(vf4;f1;vf2;) 368(param) 370(param) 372(param)
-             374:    8(float)     Load 295(shadowFactor)
-             375:    8(float)     FAdd 374 373
-                                  Store 295(shadowFactor) 375
-             376:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 377 377 16 16
-             378:    228(int)     Load 301(count)
-             379:    228(int)     IAdd 378 312
-                                  Store 301(count) 379
-                                  Branch 346
-             346:                 Label
-             380:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59
-             381:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 336 336 16 16
-             382:    228(int)     Load 337(y)
-             383:    228(int)     IAdd 382 312
-                                  Store 337(y) 383
-                                  Branch 343
-             345:               Label
-                                Branch 324
-             324:               Label
-             384:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59
-             385:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 314 314 16 16
-             386:    228(int)   Load 315(x)
-             387:    228(int)   IAdd 386 312
-                                Store 315(x) 387
-                                Branch 321
-             323:             Label
-             388:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 59
-             389:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 390 390 16 16
-             391:    8(float) Load 295(shadowFactor)
-             392:    228(int) Load 301(count)
-             393:    8(float) ConvertSToF 392
-             394:    8(float) FDiv 391 393
-                              ReturnValue 394
+62(filterPCF(vf4;f1;):    8(float) Function None 58
+          60(sc):     21(ptr) FunctionParameter
+       61(layer):     24(ptr) FunctionParameter
+              63:             Label
+229(sizeQueryTemp):    227(ptr) Variable Function
+     242(texDim):    240(ptr) Variable Function
+   258(elements):    251(ptr) Variable Function
+     265(levels):    251(ptr) Variable Function
+      274(scale):     24(ptr) Variable Function
+         281(dx):     24(ptr) Variable Function
+         293(dy):     24(ptr) Variable Function
+305(shadowFactor):     24(ptr) Variable Function
+      311(count):    251(ptr) Variable Function
+      318(range):    251(ptr) Variable Function
+          325(x):    251(ptr) Variable Function
+          346(y):    251(ptr) Variable Function
+      376(param):     21(ptr) Variable Function
+      378(param):     24(ptr) Variable Function
+      380(param):     29(ptr) Variable Function
+              67:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65
+              68:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 66 66 16 16
+              71:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 69 60(sc) 51
+              73:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 72 61(layer) 51
+             221:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 65 62(filterPCF(vf4;f1;)
+             222:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65
+             223:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 224 224 16 16
+             232:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 230 229(sizeQueryTemp) 51
+             233:         161 Load 168(textureShadowMap)
+             234:  225(ivec3) ImageQuerySizeLod 233 16
+                              Store 229(sizeQueryTemp) 234
+             245:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 243 242(texDim) 51
+             248:    246(ptr) AccessChain 229(sizeQueryTemp) 16
+             249:     11(int) Load 248
+             250:    235(int) Bitcast 249
+             253:    251(ptr) AccessChain 242(texDim) 16
+                              Store 253 250
+             254:    246(ptr) AccessChain 229(sizeQueryTemp) 44
+             255:     11(int) Load 254
+             256:    235(int) Bitcast 255
+             257:    251(ptr) AccessChain 242(texDim) 44
+                              Store 257 256
+             261:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 259 258(elements) 51
+             262:    246(ptr) AccessChain 229(sizeQueryTemp) 27
+             263:     11(int) Load 262
+             264:    235(int) Bitcast 263
+                              Store 258(elements) 264
+             268:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 266 265(levels) 51
+             269:         161 Load 168(textureShadowMap)
+             270:     11(int) ImageQueryLevels 269
+             271:    235(int) Bitcast 270
+                              Store 265(levels) 271
+             272:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 273 273 16 16
+             277:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 275 274(scale) 51
+                              Store 274(scale) 278
+             279:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 280 280 16 16
+             284:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 282 281(dx) 51
+             285:    8(float) Load 274(scale)
+             286:    8(float) FMul 285 115
+             287:    251(ptr) AccessChain 242(texDim) 16
+             288:    235(int) Load 287
+             289:    8(float) ConvertSToF 288
+             290:    8(float) FDiv 286 289
+                              Store 281(dx) 290
+             291:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 292 292 16 16
+             296:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 294 293(dy) 51
+             297:    8(float) Load 274(scale)
+             298:    8(float) FMul 297 115
+             299:    251(ptr) AccessChain 242(texDim) 44
+             300:    235(int) Load 299
+             301:    8(float) ConvertSToF 300
+             302:    8(float) FDiv 298 301
+                              Store 293(dy) 302
+             303:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 304 304 16 16
+             308:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 306 305(shadowFactor) 51
+                              Store 305(shadowFactor) 202
+             309:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 310 310 16 16
+             314:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 312 311(count) 51
+                              Store 311(count) 315
+             316:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 317 317 16 16
+             321:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 319 318(range) 51
+                              Store 318(range) 322
+             323:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 324 324 16 16
+             328:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 326 325(x) 51
+             329:    235(int) Load 318(range)
+             330:    235(int) SNegate 329
+                              Store 325(x) 330
+                              Branch 331
+             331:             Label
+             335:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65
+             336:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 324 324 16 16
+                              LoopMerge 333 334 None
+                              Branch 337
+             337:             Label
+             338:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65
+             339:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 324 324 16 16
+             340:    235(int) Load 325(x)
+             341:    235(int) Load 318(range)
+             342:   144(bool) SLessThanEqual 340 341
+                              BranchConditional 342 332 333
+             332:               Label
+             343:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65
+             344:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 345 345 16 16
+             349:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 347 346(y) 51
+             350:    235(int)   Load 318(range)
+             351:    235(int)   SNegate 350
+                                Store 346(y) 351
+                                Branch 352
+             352:               Label
+             356:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65
+             357:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 345 345 16 16
+                                LoopMerge 354 355 None
+                                Branch 358
+             358:               Label
+             359:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65
+             360:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 345 345 16 16
+             361:    235(int)   Load 346(y)
+             362:    235(int)   Load 318(range)
+             363:   144(bool)   SLessThanEqual 361 362
+                                BranchConditional 363 353 354
+             353:                 Label
+             364:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65
+             365:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 366 366 16 16
+             367:    8(float)     Load 281(dx)
+             368:    235(int)     Load 325(x)
+             369:    8(float)     ConvertSToF 368
+             370:    8(float)     FMul 367 369
+             371:    8(float)     Load 293(dy)
+             372:    235(int)     Load 346(y)
+             373:    8(float)     ConvertSToF 372
+             374:    8(float)     FMul 371 373
+             375:   26(fvec2)     CompositeConstruct 370 374
+             377:   18(fvec4)     Load 60(sc)
+                                  Store 376(param) 377
+             379:    8(float)     Load 61(layer)
+                                  Store 378(param) 379
+                                  Store 380(param) 375
+             381:    8(float)     FunctionCall 36(textureProj(vf4;f1;vf2;) 376(param) 378(param) 380(param)
+             382:    8(float)     Load 305(shadowFactor)
+             383:    8(float)     FAdd 382 381
+                                  Store 305(shadowFactor) 383
+             384:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 385 385 16 16
+             386:    235(int)     Load 311(count)
+             387:    235(int)     IAdd 386 322
+                                  Store 311(count) 387
+                                  Branch 355
+             355:                 Label
+             388:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65
+             389:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 345 345 16 16
+             390:    235(int)     Load 346(y)
+             391:    235(int)     IAdd 390 322
+                                  Store 346(y) 391
+                                  Branch 352
+             354:               Label
+                                Branch 334
+             334:               Label
+             392:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65
+             393:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 324 324 16 16
+             394:    235(int)   Load 325(x)
+             395:    235(int)   IAdd 394 322
+                                Store 325(x) 395
+                                Branch 331
+             333:             Label
+             396:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 65
+             397:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 398 398 16 16
+             399:    8(float) Load 305(shadowFactor)
+             400:    235(int) Load 311(count)
+             401:    8(float) ConvertSToF 400
+             402:    8(float) FDiv 399 401
+                              ReturnValue 402
                               FunctionEnd
                               Line 1 101 49
-75(shadow(vf3;vf3;):   68(fvec3) Function None 71
-   73(fragcolor):     70(ptr) FunctionParameter
-     74(fragPos):     70(ptr) FunctionParameter
-              78:             Label
-          401(i):    242(ptr) Variable Function
- 421(shadowClip):     21(ptr) Variable Function
-476(shadowFactor):     22(ptr) Variable Function
-      481(param):     21(ptr) Variable Function
-      483(param):     22(ptr) Variable Function
-              79:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 77
-              80:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 16 16 16 16
-              83:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 81 73(fragcolor) 46
-              86:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 84 74(fragPos) 46
-             397:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 77 75(shadow(vf3;vf3;)
-             398:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 77
-             399:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 400 400 16 16
-             404:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 402 401(i) 46
-                              Store 401(i) 305
-                              Branch 405
-             405:             Label
-             409:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 77
-             410:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 400 400 16 16
-                              LoopMerge 407 408 None
-                              Branch 411
-             411:             Label
-             412:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 77
-             413:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 400 400 16 16
-             414:    228(int) Load 401(i)
-             417:   135(bool) SLessThan 414 415
-                              BranchConditional 417 406 407
-             406:               Label
-             418:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 77
-             419:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 420 420 16 16
-             424:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 422 421(shadowClip) 46
-             425:   68(fvec3)   Load 74(fragPos)
-             426:    8(float)   CompositeExtract 425 0
-             427:    8(float)   CompositeExtract 425 1
-             428:    8(float)   CompositeExtract 425 2
-             429:   18(fvec4)   CompositeConstruct 426 427 428 106
-             469:    228(int)   Load 401(i)
-             471:    470(ptr)   AccessChain 467 305 312 469 415
-             472:         430   Load 471
-             473:   18(fvec4)   VectorTimesMatrix 429 472
-                                Store 421(shadowClip) 473
-             474:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 475 475 16 16
-             478:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 477 476(shadowFactor) 46
-             479:    228(int)   Load 401(i)
-             480:    8(float)   ConvertSToF 479
-             482:   18(fvec4)   Load 421(shadowClip)
-                                Store 481(param) 482
-                                Store 483(param) 480
-             484:    8(float)   FunctionCall 57(filterPCF(vf4;f1;) 481(param) 483(param)
-                                Store 476(shadowFactor) 484
-             485:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 486 486 16 16
-             487:    8(float)   Load 476(shadowFactor)
-             488:   68(fvec3)   Load 73(fragcolor)
-             489:   68(fvec3)   VectorTimesScalar 488 487
-                                Store 73(fragcolor) 489
-                                Branch 408
-             408:               Label
-             490:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 77
-             491:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 400 400 16 16
-             492:    228(int)   Load 401(i)
-             493:    228(int)   IAdd 492 312
-                                Store 401(i) 493
-                                Branch 405
-             407:             Label
-             494:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 77
-             495:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 496 496 16 16
-             497:   68(fvec3) Load 73(fragcolor)
-                              ReturnValue 497
+82(shadow(vf3;vf3;):   74(fvec3) Function None 78
+   80(fragcolor):     76(ptr) FunctionParameter
+     81(fragPos):     76(ptr) FunctionParameter
+              83:             Label
+          409(i):    251(ptr) Variable Function
+ 428(shadowClip):     21(ptr) Variable Function
+485(shadowFactor):     24(ptr) Variable Function
+      490(param):     21(ptr) Variable Function
+      492(param):     24(ptr) Variable Function
+              87:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 85
+              88:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 86 86 16 16
+              91:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 89 80(fragcolor) 51
+              94:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 92 81(fragPos) 51
+             405:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 85 82(shadow(vf3;vf3;)
+             406:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 85
+             407:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 408 408 16 16
+             412:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 410 409(i) 51
+                              Store 409(i) 315
+                              Branch 413
+             413:             Label
+             417:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 85
+             418:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 408 408 16 16
+                              LoopMerge 415 416 None
+                              Branch 419
+             419:             Label
+             420:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 85
+             421:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 408 408 16 16
+             422:    235(int) Load 409(i)
+             424:   144(bool) SLessThan 422 423
+                              BranchConditional 424 414 415
+             414:               Label
+             425:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 85
+             426:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 427 427 16 16
+             431:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 429 428(shadowClip) 51
+             432:   74(fvec3)   Load 81(fragPos)
+             433:    8(float)   CompositeExtract 432 0
+             434:    8(float)   CompositeExtract 432 1
+             435:    8(float)   CompositeExtract 432 2
+             436:   18(fvec4)   CompositeConstruct 433 434 435 115
+             477:    235(int)   Load 409(i)
+             480:    478(ptr)   AccessChain 475 315 322 477 423
+             481:         437   Load 480
+             482:   18(fvec4)   VectorTimesMatrix 436 481
+                                Store 428(shadowClip) 482
+             483:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 484 484 16 16
+             487:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 486 485(shadowFactor) 51
+             488:    235(int)   Load 409(i)
+             489:    8(float)   ConvertSToF 488
+             491:   18(fvec4)   Load 428(shadowClip)
+                                Store 490(param) 491
+                                Store 492(param) 489
+             493:    8(float)   FunctionCall 62(filterPCF(vf4;f1;) 490(param) 492(param)
+                                Store 485(shadowFactor) 493
+             494:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 495 495 16 16
+             496:    8(float)   Load 485(shadowFactor)
+             497:   74(fvec3)   Load 80(fragcolor)
+             498:   74(fvec3)   VectorTimesScalar 497 496
+                                Store 80(fragcolor) 498
+                                Branch 416
+             416:               Label
+             499:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 85
+             500:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 408 408 16 16
+             501:    235(int)   Load 409(i)
+             502:    235(int)   IAdd 501 322
+                                Store 409(i) 502
+                                Branch 413
+             415:             Label
+             503:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 85
+             504:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 505 505 16 16
+             506:   74(fvec3) Load 80(fragcolor)
+                              ReturnValue 506
                               FunctionEnd
                               Line 1 119 1
-  90(@main(vf2;):   18(fvec4) Function None 87
-        89(inUV):     26(ptr) FunctionParameter
-              93:             Label
-    504(fragPos):     70(ptr) Variable Function
-     527(normal):     70(ptr) Variable Function
-     546(albedo):     21(ptr) Variable Function
-  585(fragcolor):     70(ptr) Variable Function
-      589(param):     70(ptr) Variable Function
-      590(param):     70(ptr) Variable Function
-          645(N):     70(ptr) Variable Function
-          653(i):    242(ptr) Variable Function
-          671(L):     70(ptr) Variable Function
-       684(dist):     22(ptr) Variable Function
-          695(V):     70(ptr) Variable Function
-710(lightCosInnerAngle):     22(ptr) Variable Function
-717(lightCosOuterAngle):     22(ptr) Variable Function
- 724(lightRange):     22(ptr) Variable Function
-        731(dir):     70(ptr) Variable Function
-     747(cosDir):     22(ptr) Variable Function
- 756(spotEffect):     22(ptr) Variable Function
-766(heightAttenuation):     22(ptr) Variable Function
-      775(NdotL):     22(ptr) Variable Function
-       785(diff):     70(ptr) Variable Function
-          793(R):     70(ptr) Variable Function
-      803(NdotR):     22(ptr) Variable Function
-       813(spec):     70(ptr) Variable Function
-      862(param):     70(ptr) Variable Function
-      864(param):     70(ptr) Variable Function
-              94:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 92
-              95:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 16 16 16 16
-              98:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 96 89(inUV) 46
-             500:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 92 90(@main(vf2;)
-             501:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 92
-             502:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 503 503 16 16
-             506:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 505 504(fragPos) 46
-             513:         507 Load 510(textureposition)
-             518:         165 Load 515(samplerposition)
-             521:         519 SampledImage 513 518
-             522:   23(fvec2) Load 89(inUV)
-             523:   18(fvec4) ImageSampleImplicitLod 521 522
-             524:   68(fvec3) VectorShuffle 523 523 0 1 2
-                              Store 504(fragPos) 524
-             525:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 526 526 16 16
-             530:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 528 527(normal) 46
-             534:         507 Load 531(textureNormal)
-             539:         165 Load 536(samplerNormal)
-             540:         519 SampledImage 534 539
-             541:   23(fvec2) Load 89(inUV)
-             542:   18(fvec4) ImageSampleImplicitLod 540 541
-             543:   68(fvec3) VectorShuffle 542 542 0 1 2
-                              Store 527(normal) 543
-             544:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 545 545 16 16
-             549:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 547 546(albedo) 46
-             553:         507 Load 550(textureAlbedo)
-             558:         165 Load 555(samplerAlbedo)
-             559:         519 SampledImage 553 558
-             560:   23(fvec2) Load 89(inUV)
-             561:   18(fvec4) ImageSampleImplicitLod 559 560
-                              Store 546(albedo) 561
-             562:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 563 563 16 16
-             565:    564(ptr) AccessChain 467 305 415
-             566:    228(int) Load 565
-             568:   135(bool) SGreaterThan 566 305
-                              SelectionMerge 570 None
-                              BranchConditional 568 569 570
-             569:               Label
-             571:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 92
-             572:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 573 573 16 16
-             574:    564(ptr)   AccessChain 467 305 415
-             575:    228(int)   Load 574
-                                SelectionMerge 581 None
-                                Switch 575 581 
-                                       case 1: 576
-                                       case 2: 577
-                                       case 3: 578
-                                       case 4: 579
-                                       case 5: 580
-             576:                 Label
-             582:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 92
-             583:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 584 584 16 16
-             587:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 586 585(fragcolor) 46
-                                  Store 589(param) 588
-             591:   68(fvec3)     Load 504(fragPos)
-                                  Store 590(param) 591
-             592:   68(fvec3)     FunctionCall 75(shadow(vf3;vf3;) 589(param) 590(param)
-                                  Store 585(fragcolor) 592
-             593:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 594 594 16 16
-                                  Branch 581
-             577:                 Label
-             596:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 92
-             597:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 598 598 16 16
-             599:   68(fvec3)     Load 504(fragPos)
-                                  Store 585(fragcolor) 599
-             600:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 601 601 16 16
-                                  Branch 581
-             578:                 Label
-             603:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 92
-             604:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 605 605 16 16
-             606:   68(fvec3)     Load 527(normal)
-                                  Store 585(fragcolor) 606
-             607:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 608 608 16 16
-                                  Branch 581
-             579:                 Label
-             610:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 92
-             611:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 612 612 16 16
-             613:   18(fvec4)     Load 546(albedo)
-             614:   68(fvec3)     VectorShuffle 613 613 0 1 2
-                                  Store 585(fragcolor) 614
-             615:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 616 616 16 16
-                                  Branch 581
-             580:                 Label
-             618:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 92
-             619:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 620 620 16 16
-             621:   18(fvec4)     Load 546(albedo)
-             622:   68(fvec3)     VectorShuffle 621 621 3 3 3
-                                  Store 585(fragcolor) 622
-             623:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 624 624 16 16
-                                  Branch 581
-             581:               Label
-             627:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 92
-             628:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 629 629 16 16
-             630:   68(fvec3)   Load 585(fragcolor)
-             631:    8(float)   CompositeExtract 630 0
-             632:    8(float)   CompositeExtract 630 1
-             633:    8(float)   CompositeExtract 630 2
-             634:   18(fvec4)   CompositeConstruct 631 632 633 106
-                                ReturnValue 634
-             570:             Label
-             636:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 92
-             637:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 638 638 16 16
-             639:   18(fvec4) Load 546(albedo)
-             640:   68(fvec3) VectorShuffle 639 639 0 1 2
-             642:   68(fvec3) VectorTimesScalar 640 641
-                              Store 585(fragcolor) 642
-             643:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 644 644 16 16
-             648:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 646 645(N) 46
-             649:   68(fvec3) Load 527(normal)
-             650:   68(fvec3) ExtInst 3(GLSL.std.450) 69(Normalize) 649
-                              Store 645(N) 650
-             651:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 652 652 16 16
-             655:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 654 653(i) 46
-                              Store 653(i) 305
-                              Branch 656
-             656:             Label
-             660:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 92
-             661:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 652 652 16 16
-                              LoopMerge 658 659 None
-                              Branch 662
-             662:             Label
-             663:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 92
-             664:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 652 652 16 16
-             665:    228(int) Load 653(i)
-             667:   135(bool) SLessThan 665 415
-                              BranchConditional 667 657 658
-             657:               Label
-             668:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 92
-             669:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 670 670 16 16
-             674:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 672 671(L) 46
-             675:    228(int)   Load 653(i)
-             677:    676(ptr)   AccessChain 467 305 312 675 305
-             678:   18(fvec4)   Load 677
-             679:   68(fvec3)   VectorShuffle 678 678 0 1 2
-             680:   68(fvec3)   Load 504(fragPos)
-             681:   68(fvec3)   FSub 679 680
-                                Store 671(L) 681
-             682:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 683 683 16 16
-             686:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 685 684(dist) 46
-             687:   68(fvec3)   Load 671(L)
-             688:    8(float)   ExtInst 3(GLSL.std.450) 66(Length) 687
-                                Store 684(dist) 688
-             689:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 690 690 16 16
-             691:   68(fvec3)   Load 671(L)
-             692:   68(fvec3)   ExtInst 3(GLSL.std.450) 69(Normalize) 691
-                                Store 671(L) 692
-             693:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 694 694 16 16
-             698:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 696 695(V) 46
-             699:    676(ptr)   AccessChain 467 305 305
-             700:   18(fvec4)   Load 699
-             701:   68(fvec3)   VectorShuffle 700 700 0 1 2
-             702:   68(fvec3)   Load 504(fragPos)
-             703:   68(fvec3)   FSub 701 702
-                                Store 695(V) 703
-             704:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 705 705 16 16
-             706:   68(fvec3)   Load 695(V)
-             707:   68(fvec3)   ExtInst 3(GLSL.std.450) 69(Normalize) 706
-                                Store 695(V) 707
-             708:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 709 709 16 16
-             713:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 711 710(lightCosInnerAngle) 46
-                                Store 710(lightCosInnerAngle) 714
-             715:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 716 716 16 16
-             720:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 718 717(lightCosOuterAngle) 46
-                                Store 717(lightCosOuterAngle) 721
-             722:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 723 723 16 16
-             727:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 725 724(lightRange) 46
-                                Store 724(lightRange) 728
-             729:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 730 730 16 16
-             734:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 732 731(dir) 46
-             735:    228(int)   Load 653(i)
-             736:    676(ptr)   AccessChain 467 305 312 735 305
-             737:   18(fvec4)   Load 736
-             738:   68(fvec3)   VectorShuffle 737 737 0 1 2
-             739:    228(int)   Load 653(i)
-             740:    676(ptr)   AccessChain 467 305 312 739 312
-             741:   18(fvec4)   Load 740
-             742:   68(fvec3)   VectorShuffle 741 741 0 1 2
-             743:   68(fvec3)   FSub 738 742
-             744:   68(fvec3)   ExtInst 3(GLSL.std.450) 69(Normalize) 743
-                                Store 731(dir) 744
-             745:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 746 746 16 16
-             750:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 748 747(cosDir) 46
-             751:   68(fvec3)   Load 671(L)
-             752:   68(fvec3)   Load 731(dir)
-             753:    8(float)   Dot 751 752
-                                Store 747(cosDir) 753
-             754:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 755 755 16 16
-             759:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 757 756(spotEffect) 46
-             760:    8(float)   Load 717(lightCosOuterAngle)
-             761:    8(float)   Load 710(lightCosInnerAngle)
-             762:    8(float)   Load 747(cosDir)
-             763:    8(float)   ExtInst 3(GLSL.std.450) 49(SmoothStep) 760 761 762
-                                Store 756(spotEffect) 763
-             764:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 765 765 16 16
-             769:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 767 766(heightAttenuation) 46
-             770:    8(float)   Load 724(lightRange)
-             771:    8(float)   Load 684(dist)
-             772:    8(float)   ExtInst 3(GLSL.std.450) 49(SmoothStep) 770 193 771
-                                Store 766(heightAttenuation) 772
-             773:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 774 774 16 16
-             778:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 776 775(NdotL) 46
-             779:   68(fvec3)   Load 645(N)
-             780:   68(fvec3)   Load 671(L)
-             781:    8(float)   Dot 779 780
-             782:    8(float)   ExtInst 3(GLSL.std.450) 40(FMax) 193 781
-                                Store 775(NdotL) 782
-             783:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 784 784 16 16
-             788:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 786 785(diff) 46
-             789:    8(float)   Load 775(NdotL)
-             790:   68(fvec3)   CompositeConstruct 789 789 789
-                                Store 785(diff) 790
-             791:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 792 792 16 16
-             796:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 794 793(R) 46
-             797:   68(fvec3)   Load 671(L)
-             798:   68(fvec3)   FNegate 797
-             799:   68(fvec3)   Load 645(N)
-             800:   68(fvec3)   ExtInst 3(GLSL.std.450) 71(Reflect) 798 799
-                                Store 793(R) 800
-             801:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 802 802 16 16
-             806:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 804 803(NdotR) 46
-             807:   68(fvec3)   Load 793(R)
-             808:   68(fvec3)   Load 695(V)
-             809:    8(float)   Dot 807 808
-             810:    8(float)   ExtInst 3(GLSL.std.450) 40(FMax) 193 809
-                                Store 803(NdotR) 810
-             811:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 812 812 16 16
-             816:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 814 813(spec) 46
-             817:    8(float)   Load 803(NdotR)
-             819:    8(float)   ExtInst 3(GLSL.std.450) 26(Pow) 817 818
-             820:     22(ptr)   AccessChain 546(albedo) 17
-             821:    8(float)   Load 820
-             822:    8(float)   FMul 819 821
-             824:    8(float)   FMul 822 823
-             825:   68(fvec3)   CompositeConstruct 824 824 824
-                                Store 813(spec) 825
-             826:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 827 827 16 16
-             828:   68(fvec3)   Load 785(diff)
-             829:   68(fvec3)   Load 813(spec)
-             830:   68(fvec3)   FAdd 828 829
-             831:    8(float)   Load 756(spotEffect)
-             832:   68(fvec3)   VectorTimesScalar 830 831
-             833:    8(float)   Load 766(heightAttenuation)
-             834:   68(fvec3)   VectorTimesScalar 832 833
-             835:    228(int)   Load 653(i)
-             837:    676(ptr)   AccessChain 467 305 312 835 836
-             838:   18(fvec4)   Load 837
-             839:   68(fvec3)   VectorShuffle 838 838 0 1 2
-             840:   68(fvec3)   FMul 834 839
-             841:   18(fvec4)   Load 546(albedo)
-             842:   68(fvec3)   VectorShuffle 841 841 0 1 2
-             843:   68(fvec3)   FMul 840 842
-             844:   68(fvec3)   Load 585(fragcolor)
-             845:   68(fvec3)   FAdd 844 843
-                                Store 585(fragcolor) 845
-                                Branch 659
-             659:               Label
-             846:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 92
-             847:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 652 652 16 16
-             848:    228(int)   Load 653(i)
-             849:    228(int)   IAdd 848 312
-                                Store 653(i) 849
-                                Branch 656
-             658:             Label
-             850:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 92
-             851:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 852 852 16 16
-             853:    564(ptr) AccessChain 467 305 836
-             854:    228(int) Load 853
-             856:   135(bool) SGreaterThan 854 305
-                              SelectionMerge 858 None
-                              BranchConditional 856 857 858
-             857:               Label
-             859:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 92
-             860:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 861 861 16 16
-             863:   68(fvec3)   Load 585(fragcolor)
-                                Store 862(param) 863
-             865:   68(fvec3)   Load 504(fragPos)
-                                Store 864(param) 865
-             866:   68(fvec3)   FunctionCall 75(shadow(vf3;vf3;) 862(param) 864(param)
-                                Store 585(fragcolor) 866
-                                Branch 858
-             858:             Label
-             867:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 92
-             868:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 35 869 869 16 16
-             870:   68(fvec3) Load 585(fragcolor)
-             871:    8(float) CompositeExtract 870 0
-             872:    8(float) CompositeExtract 870 1
-             873:    8(float) CompositeExtract 870 2
-             874:   18(fvec4) CompositeConstruct 871 872 873 106
-                              ReturnValue 874
+  98(@main(vf2;):   18(fvec4) Function None 95
+        97(inUV):     29(ptr) FunctionParameter
+              99:             Label
+    513(fragPos):     76(ptr) Variable Function
+     537(normal):     76(ptr) Variable Function
+     556(albedo):     21(ptr) Variable Function
+  595(fragcolor):     76(ptr) Variable Function
+      599(param):     76(ptr) Variable Function
+      600(param):     76(ptr) Variable Function
+          655(N):     76(ptr) Variable Function
+          663(i):    251(ptr) Variable Function
+          680(L):     76(ptr) Variable Function
+       694(dist):     24(ptr) Variable Function
+          705(V):     76(ptr) Variable Function
+720(lightCosInnerAngle):     24(ptr) Variable Function
+727(lightCosOuterAngle):     24(ptr) Variable Function
+ 734(lightRange):     24(ptr) Variable Function
+        741(dir):     76(ptr) Variable Function
+     757(cosDir):     24(ptr) Variable Function
+ 766(spotEffect):     24(ptr) Variable Function
+776(heightAttenuation):     24(ptr) Variable Function
+      785(NdotL):     24(ptr) Variable Function
+       795(diff):     76(ptr) Variable Function
+          803(R):     76(ptr) Variable Function
+      813(NdotR):     24(ptr) Variable Function
+       823(spec):     76(ptr) Variable Function
+      871(param):     76(ptr) Variable Function
+      873(param):     76(ptr) Variable Function
+             103:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 101
+             104:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 102 102 16 16
+             107:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 105 97(inUV) 51
+             509:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 101 98(@main(vf2;)
+             510:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 101
+             511:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 512 512 16 16
+             515:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 514 513(fragPos) 51
+             523:         516 Load 520(textureposition)
+             528:         173 Load 525(samplerposition)
+             531:         529 SampledImage 523 528
+             532:   26(fvec2) Load 97(inUV)
+             533:   18(fvec4) ImageSampleImplicitLod 531 532
+             534:   74(fvec3) VectorShuffle 533 533 0 1 2
+                              Store 513(fragPos) 534
+             535:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 536 536 16 16
+             540:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 538 537(normal) 51
+             544:         516 Load 541(textureNormal)
+             549:         173 Load 546(samplerNormal)
+             550:         529 SampledImage 544 549
+             551:   26(fvec2) Load 97(inUV)
+             552:   18(fvec4) ImageSampleImplicitLod 550 551
+             553:   74(fvec3) VectorShuffle 552 552 0 1 2
+                              Store 537(normal) 553
+             554:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 555 555 16 16
+             559:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 557 556(albedo) 51
+             563:         516 Load 560(textureAlbedo)
+             568:         173 Load 565(samplerAlbedo)
+             569:         529 SampledImage 563 568
+             570:   26(fvec2) Load 97(inUV)
+             571:   18(fvec4) ImageSampleImplicitLod 569 570
+                              Store 556(albedo) 571
+             572:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 573 573 16 16
+             576:    574(ptr) AccessChain 475 315 423
+             577:    235(int) Load 576
+             578:   144(bool) SGreaterThan 577 315
+                              SelectionMerge 580 None
+                              BranchConditional 578 579 580
+             579:               Label
+             581:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 101
+             582:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 583 583 16 16
+             584:    574(ptr)   AccessChain 475 315 423
+             585:    235(int)   Load 584
+                                SelectionMerge 591 None
+                                Switch 585 591 
+                                       case 1: 586
+                                       case 2: 587
+                                       case 3: 588
+                                       case 4: 589
+                                       case 5: 590
+             586:                 Label
+             592:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 101
+             593:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 594 594 16 16
+             597:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 596 595(fragcolor) 51
+                                  Store 599(param) 598
+             601:   74(fvec3)     Load 513(fragPos)
+                                  Store 600(param) 601
+             602:   74(fvec3)     FunctionCall 82(shadow(vf3;vf3;) 599(param) 600(param)
+                                  Store 595(fragcolor) 602
+             603:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 604 604 16 16
+                                  Branch 591
+             587:                 Label
+             606:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 101
+             607:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 608 608 16 16
+             609:   74(fvec3)     Load 513(fragPos)
+                                  Store 595(fragcolor) 609
+             610:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 611 611 16 16
+                                  Branch 591
+             588:                 Label
+             613:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 101
+             614:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 615 615 16 16
+             616:   74(fvec3)     Load 537(normal)
+                                  Store 595(fragcolor) 616
+             617:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 618 618 16 16
+                                  Branch 591
+             589:                 Label
+             620:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 101
+             621:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 622 622 16 16
+             623:   18(fvec4)     Load 556(albedo)
+             624:   74(fvec3)     VectorShuffle 623 623 0 1 2
+                                  Store 595(fragcolor) 624
+             625:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 626 626 16 16
+                                  Branch 591
+             590:                 Label
+             628:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 101
+             629:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 630 630 16 16
+             631:   18(fvec4)     Load 556(albedo)
+             632:   74(fvec3)     VectorShuffle 631 631 3 3 3
+                                  Store 595(fragcolor) 632
+             633:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 634 634 16 16
+                                  Branch 591
+             591:               Label
+             637:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 101
+             638:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 639 639 16 16
+             640:   74(fvec3)   Load 595(fragcolor)
+             641:    8(float)   CompositeExtract 640 0
+             642:    8(float)   CompositeExtract 640 1
+             643:    8(float)   CompositeExtract 640 2
+             644:   18(fvec4)   CompositeConstruct 641 642 643 115
+                                ReturnValue 644
+             580:             Label
+             646:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 101
+             647:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 648 648 16 16
+             649:   18(fvec4) Load 556(albedo)
+             650:   74(fvec3) VectorShuffle 649 649 0 1 2
+             652:   74(fvec3) VectorTimesScalar 650 651
+                              Store 595(fragcolor) 652
+             653:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 654 654 16 16
+             658:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 656 655(N) 51
+             659:   74(fvec3) Load 537(normal)
+             660:   74(fvec3) ExtInst 3(GLSL.std.450) 69(Normalize) 659
+                              Store 655(N) 660
+             661:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 662 662 16 16
+             665:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 664 663(i) 51
+                              Store 663(i) 315
+                              Branch 666
+             666:             Label
+             670:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 101
+             671:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 662 662 16 16
+                              LoopMerge 668 669 None
+                              Branch 672
+             672:             Label
+             673:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 101
+             674:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 662 662 16 16
+             675:    235(int) Load 663(i)
+             676:   144(bool) SLessThan 675 423
+                              BranchConditional 676 667 668
+             667:               Label
+             677:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 101
+             678:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 679 679 16 16
+             683:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 681 680(L) 51
+             684:    235(int)   Load 663(i)
+             687:    685(ptr)   AccessChain 475 315 322 684 315
+             688:   18(fvec4)   Load 687
+             689:   74(fvec3)   VectorShuffle 688 688 0 1 2
+             690:   74(fvec3)   Load 513(fragPos)
+             691:   74(fvec3)   FSub 689 690
+                                Store 680(L) 691
+             692:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 693 693 16 16
+             696:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 695 694(dist) 51
+             697:   74(fvec3)   Load 680(L)
+             698:    8(float)   ExtInst 3(GLSL.std.450) 66(Length) 697
+                                Store 694(dist) 698
+             699:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 700 700 16 16
+             701:   74(fvec3)   Load 680(L)
+             702:   74(fvec3)   ExtInst 3(GLSL.std.450) 69(Normalize) 701
+                                Store 680(L) 702
+             703:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 704 704 16 16
+             708:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 706 705(V) 51
+             709:    685(ptr)   AccessChain 475 315 315
+             710:   18(fvec4)   Load 709
+             711:   74(fvec3)   VectorShuffle 710 710 0 1 2
+             712:   74(fvec3)   Load 513(fragPos)
+             713:   74(fvec3)   FSub 711 712
+                                Store 705(V) 713
+             714:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 715 715 16 16
+             716:   74(fvec3)   Load 705(V)
+             717:   74(fvec3)   ExtInst 3(GLSL.std.450) 69(Normalize) 716
+                                Store 705(V) 717
+             718:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 719 719 16 16
+             723:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 721 720(lightCosInnerAngle) 51
+                                Store 720(lightCosInnerAngle) 724
+             725:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 726 726 16 16
+             730:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 728 727(lightCosOuterAngle) 51
+                                Store 727(lightCosOuterAngle) 731
+             732:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 733 733 16 16
+             737:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 735 734(lightRange) 51
+                                Store 734(lightRange) 738
+             739:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 740 740 16 16
+             744:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 742 741(dir) 51
+             745:    235(int)   Load 663(i)
+             746:    685(ptr)   AccessChain 475 315 322 745 315
+             747:   18(fvec4)   Load 746
+             748:   74(fvec3)   VectorShuffle 747 747 0 1 2
+             749:    235(int)   Load 663(i)
+             750:    685(ptr)   AccessChain 475 315 322 749 322
+             751:   18(fvec4)   Load 750
+             752:   74(fvec3)   VectorShuffle 751 751 0 1 2
+             753:   74(fvec3)   FSub 748 752
+             754:   74(fvec3)   ExtInst 3(GLSL.std.450) 69(Normalize) 753
+                                Store 741(dir) 754
+             755:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 756 756 16 16
+             760:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 758 757(cosDir) 51
+             761:   74(fvec3)   Load 680(L)
+             762:   74(fvec3)   Load 741(dir)
+             763:    8(float)   Dot 761 762
+                                Store 757(cosDir) 763
+             764:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 765 765 16 16
+             769:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 767 766(spotEffect) 51
+             770:    8(float)   Load 727(lightCosOuterAngle)
+             771:    8(float)   Load 720(lightCosInnerAngle)
+             772:    8(float)   Load 757(cosDir)
+             773:    8(float)   ExtInst 3(GLSL.std.450) 49(SmoothStep) 770 771 772
+                                Store 766(spotEffect) 773
+             774:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 775 775 16 16
+             779:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 777 776(heightAttenuation) 51
+             780:    8(float)   Load 734(lightRange)
+             781:    8(float)   Load 694(dist)
+             782:    8(float)   ExtInst 3(GLSL.std.450) 49(SmoothStep) 780 202 781
+                                Store 776(heightAttenuation) 782
+             783:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 784 784 16 16
+             788:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 786 785(NdotL) 51
+             789:   74(fvec3)   Load 655(N)
+             790:   74(fvec3)   Load 680(L)
+             791:    8(float)   Dot 789 790
+             792:    8(float)   ExtInst 3(GLSL.std.450) 40(FMax) 202 791
+                                Store 785(NdotL) 792
+             793:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 794 794 16 16
+             798:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 796 795(diff) 51
+             799:    8(float)   Load 785(NdotL)
+             800:   74(fvec3)   CompositeConstruct 799 799 799
+                                Store 795(diff) 800
+             801:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 802 802 16 16
+             806:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 804 803(R) 51
+             807:   74(fvec3)   Load 680(L)
+             808:   74(fvec3)   FNegate 807
+             809:   74(fvec3)   Load 655(N)
+             810:   74(fvec3)   ExtInst 3(GLSL.std.450) 71(Reflect) 808 809
+                                Store 803(R) 810
+             811:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 812 812 16 16
+             816:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 814 813(NdotR) 51
+             817:   74(fvec3)   Load 803(R)
+             818:   74(fvec3)   Load 705(V)
+             819:    8(float)   Dot 817 818
+             820:    8(float)   ExtInst 3(GLSL.std.450) 40(FMax) 202 819
+                                Store 813(NdotR) 820
+             821:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 822 822 16 16
+             826:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 824 823(spec) 51
+             827:    8(float)   Load 813(NdotR)
+             829:    8(float)   ExtInst 3(GLSL.std.450) 26(Pow) 827 828
+             830:     24(ptr)   AccessChain 556(albedo) 17
+             831:    8(float)   Load 830
+             832:    8(float)   FMul 829 831
+             834:    8(float)   FMul 832 833
+             835:   74(fvec3)   CompositeConstruct 834 834 834
+                                Store 823(spec) 835
+             836:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 837 837 16 16
+             838:   74(fvec3)   Load 795(diff)
+             839:   74(fvec3)   Load 823(spec)
+             840:   74(fvec3)   FAdd 838 839
+             841:    8(float)   Load 766(spotEffect)
+             842:   74(fvec3)   VectorTimesScalar 840 841
+             843:    8(float)   Load 776(heightAttenuation)
+             844:   74(fvec3)   VectorTimesScalar 842 843
+             845:    235(int)   Load 663(i)
+             847:    685(ptr)   AccessChain 475 315 322 845 846
+             848:   18(fvec4)   Load 847
+             849:   74(fvec3)   VectorShuffle 848 848 0 1 2
+             850:   74(fvec3)   FMul 844 849
+             851:   18(fvec4)   Load 556(albedo)
+             852:   74(fvec3)   VectorShuffle 851 851 0 1 2
+             853:   74(fvec3)   FMul 850 852
+             854:   74(fvec3)   Load 595(fragcolor)
+             855:   74(fvec3)   FAdd 854 853
+                                Store 595(fragcolor) 855
+                                Branch 669
+             669:               Label
+             856:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 101
+             857:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 662 662 16 16
+             858:    235(int)   Load 663(i)
+             859:    235(int)   IAdd 858 322
+                                Store 663(i) 859
+                                Branch 666
+             668:             Label
+             860:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 101
+             861:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 862 862 16 16
+             863:    574(ptr) AccessChain 475 315 846
+             864:    235(int) Load 863
+             865:   144(bool) SGreaterThan 864 315
+                              SelectionMerge 867 None
+                              BranchConditional 865 866 867
+             866:               Label
+             868:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 101
+             869:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 870 870 16 16
+             872:   74(fvec3)   Load 595(fragcolor)
+                                Store 871(param) 872
+             874:   74(fvec3)   Load 513(fragPos)
+                                Store 873(param) 874
+             875:   74(fvec3)   FunctionCall 82(shadow(vf3;vf3;) 871(param) 873(param)
+                                Store 595(fragcolor) 875
+                                Branch 867
+             867:             Label
+             876:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 101
+             877:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 40 878 878 16 16
+             879:   74(fvec3) Load 595(fragcolor)
+             880:    8(float) CompositeExtract 879 0
+             881:    8(float) CompositeExtract 879 1
+             882:    8(float) CompositeExtract 879 2
+             883:   18(fvec4) CompositeConstruct 880 881 882 115
+                              ReturnValue 883
                               FunctionEnd
diff --git a/Test/baseResults/spv.debuginfo.hlsl.geom.out b/Test/baseResults/spv.debuginfo.hlsl.geom.out
index 3bb8b31..2647753 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
 // Module Version 10000
 // Generated by (magic number): 8000b
-// Id's are bound by 353
+// Id's are bound by 367
 
                               Capability Geometry
                               Capability MultiViewport
@@ -9,14 +9,14 @@
                2:             ExtInstImport  "NonSemantic.Shader.DebugInfo.100"
                3:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Geometry 6  "main" 255 261 266 272 277 282 287 302 309 314 338 341
+                              EntryPoint Geometry 6  "main" 267 274 279 286 291 296 301 316 323 328 352 355
                               ExecutionMode 6 Triangles
                               ExecutionMode 6 Invocations 2
                               ExecutionMode 6 OutputTriangleStrip
                               ExecutionMode 6 OutputVertices 3
                1:             String  ""
-              10:             String  "float"
-              13:             String  "uint"
+               9:             String  "float"
+              12:             String  "uint"
               25:             String  "Pos"
               27:             String  "// OpModuleProcessed auto-map-locations
 // OpModuleProcessed auto-map-bindings
@@ -29,107 +29,107 @@
 "
               31:             String  "Color"
               36:             String  "VSOutput"
-              47:             String  "PrimitiveID"
-              52:             String  "LightVec"
-              58:             String  "GSOutput"
-              68:             String  "@main"
-              74:             String  "input"
-              78:             String  "outStream"
-              82:             String  "InvocationID"
-              91:             String  "int"
-              96:             String  "i"
-             111:             String  "bool"
-             119:             String  "output"
-             141:             String  "projection"
-             145:             String  "modelview"
-             149:             String  "lightPos"
-             153:             String  "UBO"
-             156:             String  "ubo"
-             191:             String  "pos"
-             200:             String  "worldPos"
-             211:             String  "lPos"
-             257:             String  "outStream.Pos"
-             263:             String  "outStream.ViewportIndex"
-             268:             String  "outStream.PrimitiveID"
-             274:             String  "outStream.Normal"
-             279:             String  "outStream.Color"
-             284:             String  "outStream.ViewVec"
-             289:             String  "outStream.LightVec"
+              49:             String  "PrimitiveID"
+              54:             String  "LightVec"
+              60:             String  "GSOutput"
+              73:             String  "@main"
+              79:             String  "input"
+              83:             String  "outStream"
+              87:             String  "InvocationID"
+              96:             String  "int"
+             102:             String  "i"
+             117:             String  "bool"
+             125:             String  "output"
+             148:             String  "projection"
+             152:             String  "modelview"
+             156:             String  "lightPos"
+             160:             String  "UBO"
+             163:             String  "ubo"
+             201:             String  "pos"
+             210:             String  "worldPos"
+             221:             String  "lPos"
+             269:             String  "outStream.Pos"
+             276:             String  "outStream.ViewportIndex"
+             281:             String  "outStream.PrimitiveID"
+             288:             String  "outStream.Normal"
+             293:             String  "outStream.Color"
+             298:             String  "outStream.ViewVec"
+             303:             String  "outStream.LightVec"
                               Name 6  "main"
                               Name 23  "VSOutput"
                               MemberName 23(VSOutput) 0  "Pos"
                               MemberName 23(VSOutput) 1  "Normal"
                               MemberName 23(VSOutput) 2  "Color"
-                              Name 43  "GSOutput"
-                              MemberName 43(GSOutput) 0  "Pos"
-                              MemberName 43(GSOutput) 1  "ViewportIndex"
-                              MemberName 43(GSOutput) 2  "PrimitiveID"
-                              MemberName 43(GSOutput) 3  "Normal"
-                              MemberName 43(GSOutput) 4  "Color"
-                              MemberName 43(GSOutput) 5  "ViewVec"
-                              MemberName 43(GSOutput) 6  "LightVec"
-                              Name 67  "@main(struct-VSOutput-vf4-vf3-vf31[3];struct-GSOutput-vf4-u1-u1-vf3-vf3-vf3-vf31;u1;u1;"
-                              Name 63  "input"
-                              Name 64  "outStream"
-                              Name 65  "InvocationID"
-                              Name 66  "PrimitiveID"
-                              Name 94  "i"
-                              Name 117  "output"
-                              Name 139  "UBO"
-                              MemberName 139(UBO) 0  "projection"
-                              MemberName 139(UBO) 1  "modelview"
-                              MemberName 139(UBO) 2  "lightPos"
-                              Name 154  "ubo"
-                              MemberName 154(ubo) 0  "ubo"
-                              Name 160  ""
-                              Name 189  "pos"
-                              Name 198  "worldPos"
-                              Name 209  "lPos"
-                              Name 255  "outStream.Pos"
-                              Name 261  "outStream.ViewportIndex"
-                              Name 266  "outStream.PrimitiveID"
-                              Name 272  "outStream.Normal"
-                              Name 277  "outStream.Color"
-                              Name 282  "outStream.ViewVec"
-                              Name 287  "outStream.LightVec"
-                              Name 299  "input"
-                              Name 302  "input.Pos"
-                              Name 309  "input.Normal"
-                              Name 314  "input.Color"
-                              Name 336  "InvocationID"
-                              Name 338  "InvocationID"
-                              Name 340  "PrimitiveID"
-                              Name 341  "PrimitiveID"
-                              Name 343  "outStream"
-                              Name 344  "param"
-                              Name 346  "param"
-                              Name 347  "param"
-                              Name 349  "param"
-                              Decorate 135 ArrayStride 64
-                              Decorate 137 ArrayStride 64
-                              MemberDecorate 139(UBO) 0 RowMajor
-                              MemberDecorate 139(UBO) 0 Offset 0
-                              MemberDecorate 139(UBO) 0 MatrixStride 16
-                              MemberDecorate 139(UBO) 1 RowMajor
-                              MemberDecorate 139(UBO) 1 Offset 128
-                              MemberDecorate 139(UBO) 1 MatrixStride 16
-                              MemberDecorate 139(UBO) 2 Offset 256
-                              MemberDecorate 154(ubo) 0 Offset 0
-                              Decorate 154(ubo) Block
-                              Decorate 160 DescriptorSet 0
-                              Decorate 160 Binding 0
-                              Decorate 255(outStream.Pos) BuiltIn Position
-                              Decorate 261(outStream.ViewportIndex) BuiltIn ViewportIndex
-                              Decorate 266(outStream.PrimitiveID) BuiltIn PrimitiveId
-                              Decorate 272(outStream.Normal) Location 0
-                              Decorate 277(outStream.Color) Location 1
-                              Decorate 282(outStream.ViewVec) Location 2
-                              Decorate 287(outStream.LightVec) Location 3
-                              Decorate 302(input.Pos) BuiltIn Position
-                              Decorate 309(input.Normal) Location 0
-                              Decorate 314(input.Color) Location 1
-                              Decorate 338(InvocationID) BuiltIn InvocationId
-                              Decorate 341(PrimitiveID) BuiltIn PrimitiveId
+                              Name 45  "GSOutput"
+                              MemberName 45(GSOutput) 0  "Pos"
+                              MemberName 45(GSOutput) 1  "ViewportIndex"
+                              MemberName 45(GSOutput) 2  "PrimitiveID"
+                              MemberName 45(GSOutput) 3  "Normal"
+                              MemberName 45(GSOutput) 4  "Color"
+                              MemberName 45(GSOutput) 5  "ViewVec"
+                              MemberName 45(GSOutput) 6  "LightVec"
+                              Name 71  "@main(struct-VSOutput-vf4-vf3-vf31[3];struct-GSOutput-vf4-u1-u1-vf3-vf3-vf3-vf31;u1;u1;"
+                              Name 67  "input"
+                              Name 68  "outStream"
+                              Name 69  "InvocationID"
+                              Name 70  "PrimitiveID"
+                              Name 100  "i"
+                              Name 123  "output"
+                              Name 146  "UBO"
+                              MemberName 146(UBO) 0  "projection"
+                              MemberName 146(UBO) 1  "modelview"
+                              MemberName 146(UBO) 2  "lightPos"
+                              Name 161  "ubo"
+                              MemberName 161(ubo) 0  "ubo"
+                              Name 168  ""
+                              Name 199  "pos"
+                              Name 208  "worldPos"
+                              Name 219  "lPos"
+                              Name 267  "outStream.Pos"
+                              Name 274  "outStream.ViewportIndex"
+                              Name 279  "outStream.PrimitiveID"
+                              Name 286  "outStream.Normal"
+                              Name 291  "outStream.Color"
+                              Name 296  "outStream.ViewVec"
+                              Name 301  "outStream.LightVec"
+                              Name 313  "input"
+                              Name 316  "input.Pos"
+                              Name 323  "input.Normal"
+                              Name 328  "input.Color"
+                              Name 350  "InvocationID"
+                              Name 352  "InvocationID"
+                              Name 354  "PrimitiveID"
+                              Name 355  "PrimitiveID"
+                              Name 357  "outStream"
+                              Name 358  "param"
+                              Name 360  "param"
+                              Name 361  "param"
+                              Name 363  "param"
+                              Decorate 142 ArrayStride 64
+                              Decorate 144 ArrayStride 64
+                              MemberDecorate 146(UBO) 0 RowMajor
+                              MemberDecorate 146(UBO) 0 Offset 0
+                              MemberDecorate 146(UBO) 0 MatrixStride 16
+                              MemberDecorate 146(UBO) 1 RowMajor
+                              MemberDecorate 146(UBO) 1 Offset 128
+                              MemberDecorate 146(UBO) 1 MatrixStride 16
+                              MemberDecorate 146(UBO) 2 Offset 256
+                              MemberDecorate 161(ubo) 0 Offset 0
+                              Decorate 161(ubo) Block
+                              Decorate 168 DescriptorSet 0
+                              Decorate 168 Binding 0
+                              Decorate 267(outStream.Pos) BuiltIn Position
+                              Decorate 274(outStream.ViewportIndex) BuiltIn ViewportIndex
+                              Decorate 279(outStream.PrimitiveID) BuiltIn PrimitiveId
+                              Decorate 286(outStream.Normal) Location 0
+                              Decorate 291(outStream.Color) Location 1
+                              Decorate 296(outStream.ViewVec) Location 2
+                              Decorate 301(outStream.LightVec) Location 3
+                              Decorate 316(input.Pos) BuiltIn Position
+                              Decorate 323(input.Normal) Location 0
+                              Decorate 328(input.Color) Location 1
+                              Decorate 352(InvocationID) BuiltIn InvocationId
+                              Decorate 355(PrimitiveID) BuiltIn PrimitiveId
                4:             TypeVoid
                5:             TypeFunction 4
                8:             TypeFloat 32
@@ -137,14 +137,14 @@
               14:     11(int) Constant 32
               15:     11(int) Constant 6
               16:     11(int) Constant 0
-              12:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 13 14 15 16
+              13:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 12 14 15 16
               17:     11(int) Constant 3
-               9:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 10 14 17 16
+              10:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 9 14 17 16
               18:             TypeVector 8(float) 4
               19:     11(int) Constant 4
-              20:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 9 19
+              20:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 10 19
               21:             TypeVector 8(float) 3
-              22:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 9 17
+              22:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 10 17
     23(VSOutput):             TypeStruct 18(fvec4) 21(fvec3) 21(fvec3)
               26:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 1 27
               28:     11(int) Constant 37
@@ -161,339 +161,353 @@
               40:             TypeArray 23(VSOutput) 17
               41:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 35 17
               42:             TypePointer Function 40
-    43(GSOutput):             TypeStruct 18(fvec4) 11(int) 11(int) 21(fvec3) 21(fvec3) 21(fvec3) 21(fvec3)
-              45:     11(int) Constant 44
-              44:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 25 20 26 45 29 16 16 17
-              48:     11(int) Constant 46
-              49:     11(int) Constant 19
-              46:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 47 12 26 48 49 16 16 17
-              50:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 47 12 26 48 49 16 16 17
-              53:     11(int) Constant 50
-              51:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 52 22 26 53 28 16 16 17
-              54:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 52 22 26 53 28 16 16 17
-              55:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 52 22 26 53 28 16 16 17
-              56:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 52 22 26 53 28 16 16 17
-              57:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 58 37 26 16 16 38 58 16 17 44 46 50 51 54 55 56
-              59:             TypePointer Function 43(GSOutput)
-              60:             TypePointer Function 11(int)
-              61:             TypeFunction 4 42(ptr) 59(ptr) 60(ptr) 60(ptr)
-              62:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 17 4 41 57 12 12
-              69:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 68 62 26 16 16 38 68 17 16
-              73:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 74 41 26 16 16 69 19 37
-              76:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
-              79:     11(int) Constant 2
-              77:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 78 57 26 16 16 69 19 79
-              81:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 82 12 26 16 16 69 19 17
-              84:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 47 12 26 16 16 69 19 19
-              89:     11(int) Constant 57
-              90:             TypeInt 32 1
-              92:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 91 14 19 16
-              93:             TypePointer Function 90(int)
-              95:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 96 92 26 89 16 69 19
-              98:     90(int) Constant 0
-             109:     90(int) Constant 3
-             110:             TypeBool
-             112:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 111 14 79 16
-             116:     11(int) Constant 59
-             118:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 119 57 26 116 16 69 19
-             121:    8(float) Constant 0
-             122:   18(fvec4) ConstantComposite 121 121 121 121
-             123:   21(fvec3) ConstantComposite 121 121 121
-             124:43(GSOutput) ConstantComposite 122 16 16 123 123 123 123
-             126:     11(int) Constant 60
-             128:     90(int) Constant 1
-             129:             TypePointer Function 21(fvec3)
-             132:             TypeMatrix 18(fvec4) 4
-             134:   110(bool) ConstantTrue
-             133:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 20 19 134
-             135:             TypeArray 132 79
-             136:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 133 79
-             137:             TypeArray 132 79
-             138:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 133 79
-        139(UBO):             TypeStruct 135 137 18(fvec4)
-             142:     11(int) Constant 28
-             143:     11(int) Constant 21
-             140:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 141 136 26 142 143 16 16 17
-             146:     11(int) Constant 29
-             147:     11(int) Constant 20
-             144:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 145 138 26 146 147 16 16 17
-             150:     11(int) Constant 30
-             151:     11(int) Constant 17
-             148:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 149 20 26 150 151 16 16 17
-             152:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 153 37 26 126 16 38 153 16 17 140 144 148
-        154(ubo):             TypeStruct 139(UBO)
-             157:     11(int) Constant 33
-             155:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 156 152 26 157 28 16 16 17
-             158:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 156 37 26 126 16 38 156 16 17 155
-             159:             TypePointer Uniform 154(ubo)
-             160:    159(ptr) Variable Uniform
-             162:     11(int) Constant 8
-             161:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 1 158 26 126 16 38 1 160 162
-             164:             TypePointer Uniform 132
-             167:             TypeMatrix 21(fvec3) 3
-             168:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 22 17 134
-             179:     11(int) Constant 61
-             180:     90(int) Constant 4
-             182:     90(int) Constant 2
-             187:     11(int) Constant 63
-             188:             TypePointer Function 18(fvec4)
-             190:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 191 20 26 187 16 69 19
-             197:     11(int) Constant 64
-             199:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 200 20 26 197 16 69 19
-             208:     11(int) Constant 66
-             210:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 211 22 26 208 16 69 19
-             213:             TypePointer Uniform 18(fvec4)
-             222:     11(int) Constant 67
-             223:     90(int) Constant 6
-             230:     11(int) Constant 68
-             231:     90(int) Constant 5
-             237:     11(int) Constant 70
-             245:     11(int) Constant 73
-             249:     11(int) Constant 74
-             253:     11(int) Constant 75
-             254:             TypePointer Output 18(fvec4)
-255(outStream.Pos):    254(ptr) Variable Output
-             256:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 257 20 26 253 16 38 257 255(outStream.Pos) 162
-             260:             TypePointer Output 11(int)
-261(outStream.ViewportIndex):    260(ptr) Variable Output
-             262:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 263 12 26 253 16 38 263 261(outStream.ViewportIndex) 162
-266(outStream.PrimitiveID):    260(ptr) Variable Output
-             267:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 268 12 26 253 16 38 268 266(outStream.PrimitiveID) 162
-             271:             TypePointer Output 21(fvec3)
-272(outStream.Normal):    271(ptr) Variable Output
-             273:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 274 22 26 253 16 38 274 272(outStream.Normal) 162
-277(outStream.Color):    271(ptr) Variable Output
-             278:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 279 22 26 253 16 38 279 277(outStream.Color) 162
-282(outStream.ViewVec):    271(ptr) Variable Output
-             283:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 284 22 26 253 16 38 284 282(outStream.ViewVec) 162
-287(outStream.LightVec):    271(ptr) Variable Output
-             288:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 289 22 26 253 16 38 289 287(outStream.LightVec) 162
-             298:     11(int) Constant 78
-             300:             TypeArray 18(fvec4) 17
-             301:             TypePointer Input 300
-  302(input.Pos):    301(ptr) Variable Input
-             303:             TypePointer Input 18(fvec4)
-             307:             TypeArray 21(fvec3) 17
-             308:             TypePointer Input 307
-309(input.Normal):    308(ptr) Variable Input
-             310:             TypePointer Input 21(fvec3)
-314(input.Color):    308(ptr) Variable Input
-             337:             TypePointer Input 11(int)
-338(InvocationID):    337(ptr) Variable Input
-341(PrimitiveID):    337(ptr) Variable Input
+              43:     11(int) Constant 7
+              44:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 41 43 16
+    45(GSOutput):             TypeStruct 18(fvec4) 11(int) 11(int) 21(fvec3) 21(fvec3) 21(fvec3) 21(fvec3)
+              47:     11(int) Constant 44
+              46:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 25 20 26 47 29 16 16 17
+              50:     11(int) Constant 46
+              51:     11(int) Constant 19
+              48:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 49 13 26 50 51 16 16 17
+              52:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 49 13 26 50 51 16 16 17
+              55:     11(int) Constant 50
+              53:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 54 22 26 55 28 16 16 17
+              56:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 54 22 26 55 28 16 16 17
+              57:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 54 22 26 55 28 16 16 17
+              58:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 54 22 26 55 28 16 16 17
+              59:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 60 37 26 16 16 38 60 16 17 46 48 52 53 56 57 58
+              61:             TypePointer Function 45(GSOutput)
+              62:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 59 43 16
+              63:             TypePointer Function 11(int)
+              64:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 13 43 16
+              65:             TypeFunction 4 42(ptr) 61(ptr) 63(ptr) 63(ptr)
+              66:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 17 4 41 59 13 13
+              75:     11(int) Constant 56
+              74:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 73 66 26 75 16 38 73 17 75
+              78:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 79 41 26 75 16 74 19 37
+              81:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
+              84:     11(int) Constant 2
+              82:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 83 59 26 75 16 74 19 84
+              86:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 87 13 26 75 16 74 19 17
+              89:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 49 13 26 75 16 74 19 19
+              94:     11(int) Constant 57
+              95:             TypeInt 32 1
+              97:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 96 14 19 16
+              98:             TypePointer Function 95(int)
+              99:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 97 43 16
+             101:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 102 97 26 94 16 74 19
+             104:     95(int) Constant 0
+             115:     95(int) Constant 3
+             116:             TypeBool
+             118:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 117 14 84 16
+             122:     11(int) Constant 59
+             124:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 125 59 26 122 16 74 19
+             127:    8(float) Constant 0
+             128:   18(fvec4) ConstantComposite 127 127 127 127
+             129:   21(fvec3) ConstantComposite 127 127 127
+             130:45(GSOutput) ConstantComposite 128 16 16 129 129 129 129
+             132:     11(int) Constant 60
+             134:     95(int) Constant 1
+             135:             TypePointer Function 21(fvec3)
+             136:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 22 43 16
+             139:             TypeMatrix 18(fvec4) 4
+             141:   116(bool) ConstantTrue
+             140:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 20 19 141
+             142:             TypeArray 139 84
+             143:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 140 84
+             144:             TypeArray 139 84
+             145:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 140 84
+        146(UBO):             TypeStruct 142 144 18(fvec4)
+             149:     11(int) Constant 28
+             150:     11(int) Constant 21
+             147:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 148 143 26 149 150 16 16 17
+             153:     11(int) Constant 29
+             154:     11(int) Constant 20
+             151:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 152 145 26 153 154 16 16 17
+             157:     11(int) Constant 30
+             158:     11(int) Constant 17
+             155:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 156 20 26 157 158 16 16 17
+             159:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 160 37 26 132 16 38 160 16 17 147 151 155
+        161(ubo):             TypeStruct 146(UBO)
+             164:     11(int) Constant 33
+             162:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 163 159 26 164 28 16 16 17
+             165:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 163 37 26 132 16 38 163 16 17 162
+             166:             TypePointer Uniform 161(ubo)
+             167:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 165 84 16
+             168:    166(ptr) Variable Uniform
+             170:     11(int) Constant 8
+             169:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 1 165 26 132 16 38 1 168 170
+             172:             TypePointer Uniform 139
+             173:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 140 84 16
+             176:             TypeMatrix 21(fvec3) 3
+             177:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 22 17 141
+             188:     11(int) Constant 61
+             189:     95(int) Constant 4
+             191:     95(int) Constant 2
+             196:     11(int) Constant 63
+             197:             TypePointer Function 18(fvec4)
+             198:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 20 43 16
+             200:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 201 20 26 196 16 74 19
+             207:     11(int) Constant 64
+             209:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 210 20 26 207 16 74 19
+             218:     11(int) Constant 66
+             220:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 221 22 26 218 16 74 19
+             223:             TypePointer Uniform 18(fvec4)
+             224:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 20 84 16
+             233:     11(int) Constant 67
+             234:     95(int) Constant 6
+             241:     11(int) Constant 68
+             242:     95(int) Constant 5
+             248:     11(int) Constant 70
+             256:     11(int) Constant 73
+             260:     11(int) Constant 74
+             264:     11(int) Constant 75
+             265:             TypePointer Output 18(fvec4)
+             266:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 20 17 16
+267(outStream.Pos):    265(ptr) Variable Output
+             268:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 269 20 26 264 16 38 269 267(outStream.Pos) 170
+             272:             TypePointer Output 11(int)
+             273:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 13 17 16
+274(outStream.ViewportIndex):    272(ptr) Variable Output
+             275:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 276 13 26 264 16 38 276 274(outStream.ViewportIndex) 170
+279(outStream.PrimitiveID):    272(ptr) Variable Output
+             280:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 281 13 26 264 16 38 281 279(outStream.PrimitiveID) 170
+             284:             TypePointer Output 21(fvec3)
+             285:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 22 17 16
+286(outStream.Normal):    284(ptr) Variable Output
+             287:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 288 22 26 264 16 38 288 286(outStream.Normal) 170
+291(outStream.Color):    284(ptr) Variable Output
+             292:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 293 22 26 264 16 38 293 291(outStream.Color) 170
+296(outStream.ViewVec):    284(ptr) Variable Output
+             297:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 298 22 26 264 16 38 298 296(outStream.ViewVec) 170
+301(outStream.LightVec):    284(ptr) Variable Output
+             302:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 303 22 26 264 16 38 303 301(outStream.LightVec) 170
+             312:     11(int) Constant 78
+             314:             TypeArray 18(fvec4) 17
+             315:             TypePointer Input 314
+  316(input.Pos):    315(ptr) Variable Input
+             317:             TypePointer Input 18(fvec4)
+             321:             TypeArray 21(fvec3) 17
+             322:             TypePointer Input 321
+323(input.Normal):    322(ptr) Variable Input
+             324:             TypePointer Input 21(fvec3)
+328(input.Color):    322(ptr) Variable Input
+             351:             TypePointer Input 11(int)
+352(InvocationID):    351(ptr) Variable Input
+355(PrimitiveID):    351(ptr) Variable Input
                               Line 1 56 1
          6(main):           4 Function None 5
                7:             Label
-      299(input):     42(ptr) Variable Function
-336(InvocationID):     60(ptr) Variable Function
-340(PrimitiveID):     60(ptr) Variable Function
-  343(outStream):     59(ptr) Variable Function
-      344(param):     42(ptr) Variable Function
-      346(param):     59(ptr) Variable Function
-      347(param):     60(ptr) Variable Function
-      349(param):     60(ptr) Variable Function
+      313(input):     42(ptr) Variable Function
+350(InvocationID):     63(ptr) Variable Function
+354(PrimitiveID):     63(ptr) Variable Function
+  357(outStream):     61(ptr) Variable Function
+      358(param):     42(ptr) Variable Function
+      360(param):     61(ptr) Variable Function
+      361(param):     63(ptr) Variable Function
+      363(param):     63(ptr) Variable Function
                               Line 1 56 0
-             304:    303(ptr) AccessChain 302(input.Pos) 98
-             305:   18(fvec4) Load 304
-             306:    188(ptr) AccessChain 299(input) 98 98
-                              Store 306 305
-             311:    310(ptr) AccessChain 309(input.Normal) 98
-             312:   21(fvec3) Load 311
-             313:    129(ptr) AccessChain 299(input) 98 128
-                              Store 313 312
-             315:    310(ptr) AccessChain 314(input.Color) 98
-             316:   21(fvec3) Load 315
-             317:    129(ptr) AccessChain 299(input) 98 182
-                              Store 317 316
-             318:    303(ptr) AccessChain 302(input.Pos) 128
+             318:    317(ptr) AccessChain 316(input.Pos) 104
              319:   18(fvec4) Load 318
-             320:    188(ptr) AccessChain 299(input) 128 98
+             320:    197(ptr) AccessChain 313(input) 104 104
                               Store 320 319
-             321:    310(ptr) AccessChain 309(input.Normal) 128
-             322:   21(fvec3) Load 321
-             323:    129(ptr) AccessChain 299(input) 128 128
-                              Store 323 322
-             324:    310(ptr) AccessChain 314(input.Color) 128
-             325:   21(fvec3) Load 324
-             326:    129(ptr) AccessChain 299(input) 128 182
-                              Store 326 325
-             327:    303(ptr) AccessChain 302(input.Pos) 182
-             328:   18(fvec4) Load 327
-             329:    188(ptr) AccessChain 299(input) 182 98
-                              Store 329 328
-             330:    310(ptr) AccessChain 309(input.Normal) 182
-             331:   21(fvec3) Load 330
-             332:    129(ptr) AccessChain 299(input) 182 128
-                              Store 332 331
-             333:    310(ptr) AccessChain 314(input.Color) 182
-             334:   21(fvec3) Load 333
-             335:    129(ptr) AccessChain 299(input) 182 182
-                              Store 335 334
-             339:     11(int) Load 338(InvocationID)
-                              Store 336(InvocationID) 339
-             342:     11(int) Load 341(PrimitiveID)
-                              Store 340(PrimitiveID) 342
-             345:          40 Load 299(input)
-                              Store 344(param) 345
-             348:     11(int) Load 336(InvocationID)
-                              Store 347(param) 348
-             350:     11(int) Load 340(PrimitiveID)
-                              Store 349(param) 350
-             351:           4 FunctionCall 67(@main(struct-VSOutput-vf4-vf3-vf31[3];struct-GSOutput-vf4-u1-u1-vf3-vf3-vf3-vf31;u1;u1;) 344(param) 346(param) 347(param) 349(param)
-             352:43(GSOutput) Load 346(param)
-                              Store 343(outStream) 352
+             325:    324(ptr) AccessChain 323(input.Normal) 104
+             326:   21(fvec3) Load 325
+             327:    135(ptr) AccessChain 313(input) 104 134
+                              Store 327 326
+             329:    324(ptr) AccessChain 328(input.Color) 104
+             330:   21(fvec3) Load 329
+             331:    135(ptr) AccessChain 313(input) 104 191
+                              Store 331 330
+             332:    317(ptr) AccessChain 316(input.Pos) 134
+             333:   18(fvec4) Load 332
+             334:    197(ptr) AccessChain 313(input) 134 104
+                              Store 334 333
+             335:    324(ptr) AccessChain 323(input.Normal) 134
+             336:   21(fvec3) Load 335
+             337:    135(ptr) AccessChain 313(input) 134 134
+                              Store 337 336
+             338:    324(ptr) AccessChain 328(input.Color) 134
+             339:   21(fvec3) Load 338
+             340:    135(ptr) AccessChain 313(input) 134 191
+                              Store 340 339
+             341:    317(ptr) AccessChain 316(input.Pos) 191
+             342:   18(fvec4) Load 341
+             343:    197(ptr) AccessChain 313(input) 191 104
+                              Store 343 342
+             344:    324(ptr) AccessChain 323(input.Normal) 191
+             345:   21(fvec3) Load 344
+             346:    135(ptr) AccessChain 313(input) 191 134
+                              Store 346 345
+             347:    324(ptr) AccessChain 328(input.Color) 191
+             348:   21(fvec3) Load 347
+             349:    135(ptr) AccessChain 313(input) 191 191
+                              Store 349 348
+             353:     11(int) Load 352(InvocationID)
+                              Store 350(InvocationID) 353
+             356:     11(int) Load 355(PrimitiveID)
+                              Store 354(PrimitiveID) 356
+             359:          40 Load 313(input)
+                              Store 358(param) 359
+             362:     11(int) Load 350(InvocationID)
+                              Store 361(param) 362
+             364:     11(int) Load 354(PrimitiveID)
+                              Store 363(param) 364
+             365:           4 FunctionCall 71(@main(struct-VSOutput-vf4-vf3-vf31[3];struct-GSOutput-vf4-u1-u1-vf3-vf3-vf3-vf31;u1;u1;) 358(param) 360(param) 361(param) 363(param)
+             366:45(GSOutput) Load 360(param)
+                              Store 357(outStream) 366
                               Return
                               FunctionEnd
                               Line 1 56 1
-67(@main(struct-VSOutput-vf4-vf3-vf31[3];struct-GSOutput-vf4-u1-u1-vf3-vf3-vf3-vf31;u1;u1;):           4 Function None 61
-       63(input):     42(ptr) FunctionParameter
-   64(outStream):     59(ptr) FunctionParameter
-65(InvocationID):     60(ptr) FunctionParameter
- 66(PrimitiveID):     60(ptr) FunctionParameter
-              70:             Label
-           94(i):     93(ptr) Variable Function
-     117(output):     59(ptr) Variable Function
-        189(pos):    188(ptr) Variable Function
-   198(worldPos):    188(ptr) Variable Function
-       209(lPos):    129(ptr) Variable Function
-              71:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 69
-              72:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 16 16 16 16
-              75:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 73 63(input) 76
-              80:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 77 64(outStream) 76
-              83:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 81 65(InvocationID) 76
-              85:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 84 66(PrimitiveID) 76
-              86:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 69 67(@main(struct-VSOutput-vf4-vf3-vf31[3];struct-GSOutput-vf4-u1-u1-vf3-vf3-vf3-vf31;u1;u1;)
-              87:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 69
-              88:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 89 89 16 16
-              97:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 95 94(i) 76
-                              Store 94(i) 98
-                              Branch 99
-              99:             Label
-             103:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 69
-             104:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 89 89 16 16
-                              LoopMerge 101 102 None
+71(@main(struct-VSOutput-vf4-vf3-vf31[3];struct-GSOutput-vf4-u1-u1-vf3-vf3-vf3-vf31;u1;u1;):           4 Function None 65
+       67(input):     42(ptr) FunctionParameter
+   68(outStream):     61(ptr) FunctionParameter
+69(InvocationID):     63(ptr) FunctionParameter
+ 70(PrimitiveID):     63(ptr) FunctionParameter
+              72:             Label
+          100(i):     98(ptr) Variable Function
+     123(output):     61(ptr) Variable Function
+        199(pos):    197(ptr) Variable Function
+   208(worldPos):    197(ptr) Variable Function
+       219(lPos):    135(ptr) Variable Function
+              76:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 74
+              77:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 75 75 16 16
+              80:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 78 67(input) 81
+              85:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 82 68(outStream) 81
+              88:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 86 69(InvocationID) 81
+              90:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 89 70(PrimitiveID) 81
+              91:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 74 71(@main(struct-VSOutput-vf4-vf3-vf31[3];struct-GSOutput-vf4-u1-u1-vf3-vf3-vf3-vf31;u1;u1;)
+              92:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 74
+              93:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 94 94 16 16
+             103:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 101 100(i) 81
+                              Store 100(i) 104
                               Branch 105
              105:             Label
-             106:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 69
-             107:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 89 89 16 16
-             108:     90(int) Load 94(i)
-             113:   110(bool) SLessThan 108 109
-                              BranchConditional 113 100 101
-             100:               Label
-             114:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 69
-             115:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 116 116 16 16
-             120:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 118 117(output) 76
-                                Store 117(output) 124
-             125:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 126 126 16 16
-             127:     90(int)   Load 94(i)
-             130:    129(ptr)   AccessChain 63(input) 127 128
-             131:   21(fvec3)   Load 130
-             163:     11(int)   Load 65(InvocationID)
-             165:    164(ptr)   AccessChain 160 98 128 163
-             166:         132   Load 165
-             169:   18(fvec4)   CompositeExtract 166 0
-             170:   21(fvec3)   VectorShuffle 169 169 0 1 2
-             171:   18(fvec4)   CompositeExtract 166 1
-             172:   21(fvec3)   VectorShuffle 171 171 0 1 2
-             173:   18(fvec4)   CompositeExtract 166 2
-             174:   21(fvec3)   VectorShuffle 173 173 0 1 2
-             175:         167   CompositeConstruct 170 172 174
-             176:   21(fvec3)   VectorTimesMatrix 131 175
-             177:    129(ptr)   AccessChain 117(output) 109
-                                Store 177 176
-             178:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 179 179 16 16
-             181:     90(int)   Load 94(i)
-             183:    129(ptr)   AccessChain 63(input) 181 182
-             184:   21(fvec3)   Load 183
-             185:    129(ptr)   AccessChain 117(output) 180
-                                Store 185 184
-             186:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 187 187 16 16
-             192:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 190 189(pos) 76
-             193:     90(int)   Load 94(i)
-             194:    188(ptr)   AccessChain 63(input) 193 98
-             195:   18(fvec4)   Load 194
-                                Store 189(pos) 195
-             196:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 197 197 16 16
-             201:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 199 198(worldPos) 76
-             202:   18(fvec4)   Load 189(pos)
-             203:     11(int)   Load 65(InvocationID)
-             204:    164(ptr)   AccessChain 160 98 128 203
-             205:         132   Load 204
-             206:   18(fvec4)   VectorTimesMatrix 202 205
-                                Store 198(worldPos) 206
-             207:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 208 208 16 16
-             212:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 210 209(lPos) 76
-             214:    213(ptr)   AccessChain 160 98 182
-             215:   18(fvec4)   Load 214
-             216:     11(int)   Load 65(InvocationID)
-             217:    164(ptr)   AccessChain 160 98 128 216
-             218:         132   Load 217
-             219:   18(fvec4)   VectorTimesMatrix 215 218
-             220:   21(fvec3)   VectorShuffle 219 219 0 1 2
-                                Store 209(lPos) 220
-             221:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 222 222 16 16
-             224:   21(fvec3)   Load 209(lPos)
-             225:   18(fvec4)   Load 198(worldPos)
-             226:   21(fvec3)   VectorShuffle 225 225 0 1 2
-             227:   21(fvec3)   FSub 224 226
-             228:    129(ptr)   AccessChain 117(output) 223
-                                Store 228 227
-             229:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 230 230 16 16
-             232:   18(fvec4)   Load 198(worldPos)
-             233:   21(fvec3)   VectorShuffle 232 232 0 1 2
-             234:   21(fvec3)   FNegate 233
-             235:    129(ptr)   AccessChain 117(output) 231
-                                Store 235 234
-             236:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 237 237 16 16
-             238:   18(fvec4)   Load 198(worldPos)
-             239:     11(int)   Load 65(InvocationID)
-             240:    164(ptr)   AccessChain 160 98 98 239
-             241:         132   Load 240
-             242:   18(fvec4)   VectorTimesMatrix 238 241
-             243:    188(ptr)   AccessChain 117(output) 98
-                                Store 243 242
-             244:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 245 245 16 16
-             246:     11(int)   Load 65(InvocationID)
-             247:     60(ptr)   AccessChain 117(output) 128
-                                Store 247 246
-             248:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 249 249 16 16
-             250:     11(int)   Load 66(PrimitiveID)
-             251:     60(ptr)   AccessChain 117(output) 182
-                                Store 251 250
-             252:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 253 253 16 16
-             258:    188(ptr)   AccessChain 117(output) 98
-             259:   18(fvec4)   Load 258
-                                Store 255(outStream.Pos) 259
-             264:     60(ptr)   AccessChain 117(output) 128
-             265:     11(int)   Load 264
-                                Store 261(outStream.ViewportIndex) 265
-             269:     60(ptr)   AccessChain 117(output) 182
-             270:     11(int)   Load 269
-                                Store 266(outStream.PrimitiveID) 270
-             275:    129(ptr)   AccessChain 117(output) 109
-             276:   21(fvec3)   Load 275
-                                Store 272(outStream.Normal) 276
-             280:    129(ptr)   AccessChain 117(output) 180
-             281:   21(fvec3)   Load 280
-                                Store 277(outStream.Color) 281
-             285:    129(ptr)   AccessChain 117(output) 231
-             286:   21(fvec3)   Load 285
-                                Store 282(outStream.ViewVec) 286
-             290:    129(ptr)   AccessChain 117(output) 223
-             291:   21(fvec3)   Load 290
-                                Store 287(outStream.LightVec) 291
+             109:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 74
+             110:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 94 94 16 16
+                              LoopMerge 107 108 None
+                              Branch 111
+             111:             Label
+             112:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 74
+             113:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 94 94 16 16
+             114:     95(int) Load 100(i)
+             119:   116(bool) SLessThan 114 115
+                              BranchConditional 119 106 107
+             106:               Label
+             120:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 74
+             121:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 122 122 16 16
+             126:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 124 123(output) 81
+                                Store 123(output) 130
+             131:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 132 132 16 16
+             133:     95(int)   Load 100(i)
+             137:    135(ptr)   AccessChain 67(input) 133 134
+             138:   21(fvec3)   Load 137
+             171:     11(int)   Load 69(InvocationID)
+             174:    172(ptr)   AccessChain 168 104 134 171
+             175:         139   Load 174
+             178:   18(fvec4)   CompositeExtract 175 0
+             179:   21(fvec3)   VectorShuffle 178 178 0 1 2
+             180:   18(fvec4)   CompositeExtract 175 1
+             181:   21(fvec3)   VectorShuffle 180 180 0 1 2
+             182:   18(fvec4)   CompositeExtract 175 2
+             183:   21(fvec3)   VectorShuffle 182 182 0 1 2
+             184:         176   CompositeConstruct 179 181 183
+             185:   21(fvec3)   VectorTimesMatrix 138 184
+             186:    135(ptr)   AccessChain 123(output) 115
+                                Store 186 185
+             187:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 188 188 16 16
+             190:     95(int)   Load 100(i)
+             192:    135(ptr)   AccessChain 67(input) 190 191
+             193:   21(fvec3)   Load 192
+             194:    135(ptr)   AccessChain 123(output) 189
+                                Store 194 193
+             195:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 196 196 16 16
+             202:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 200 199(pos) 81
+             203:     95(int)   Load 100(i)
+             204:    197(ptr)   AccessChain 67(input) 203 104
+             205:   18(fvec4)   Load 204
+                                Store 199(pos) 205
+             206:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 207 207 16 16
+             211:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 209 208(worldPos) 81
+             212:   18(fvec4)   Load 199(pos)
+             213:     11(int)   Load 69(InvocationID)
+             214:    172(ptr)   AccessChain 168 104 134 213
+             215:         139   Load 214
+             216:   18(fvec4)   VectorTimesMatrix 212 215
+                                Store 208(worldPos) 216
+             217:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 218 218 16 16
+             222:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 220 219(lPos) 81
+             225:    223(ptr)   AccessChain 168 104 191
+             226:   18(fvec4)   Load 225
+             227:     11(int)   Load 69(InvocationID)
+             228:    172(ptr)   AccessChain 168 104 134 227
+             229:         139   Load 228
+             230:   18(fvec4)   VectorTimesMatrix 226 229
+             231:   21(fvec3)   VectorShuffle 230 230 0 1 2
+                                Store 219(lPos) 231
+             232:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 233 233 16 16
+             235:   21(fvec3)   Load 219(lPos)
+             236:   18(fvec4)   Load 208(worldPos)
+             237:   21(fvec3)   VectorShuffle 236 236 0 1 2
+             238:   21(fvec3)   FSub 235 237
+             239:    135(ptr)   AccessChain 123(output) 234
+                                Store 239 238
+             240:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 241 241 16 16
+             243:   18(fvec4)   Load 208(worldPos)
+             244:   21(fvec3)   VectorShuffle 243 243 0 1 2
+             245:   21(fvec3)   FNegate 244
+             246:    135(ptr)   AccessChain 123(output) 242
+                                Store 246 245
+             247:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 248 248 16 16
+             249:   18(fvec4)   Load 208(worldPos)
+             250:     11(int)   Load 69(InvocationID)
+             251:    172(ptr)   AccessChain 168 104 104 250
+             252:         139   Load 251
+             253:   18(fvec4)   VectorTimesMatrix 249 252
+             254:    197(ptr)   AccessChain 123(output) 104
+                                Store 254 253
+             255:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 256 256 16 16
+             257:     11(int)   Load 69(InvocationID)
+             258:     63(ptr)   AccessChain 123(output) 134
+                                Store 258 257
+             259:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 260 260 16 16
+             261:     11(int)   Load 70(PrimitiveID)
+             262:     63(ptr)   AccessChain 123(output) 191
+                                Store 262 261
+             263:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 264 264 16 16
+             270:    197(ptr)   AccessChain 123(output) 104
+             271:   18(fvec4)   Load 270
+                                Store 267(outStream.Pos) 271
+             277:     63(ptr)   AccessChain 123(output) 134
+             278:     11(int)   Load 277
+                                Store 274(outStream.ViewportIndex) 278
+             282:     63(ptr)   AccessChain 123(output) 191
+             283:     11(int)   Load 282
+                                Store 279(outStream.PrimitiveID) 283
+             289:    135(ptr)   AccessChain 123(output) 115
+             290:   21(fvec3)   Load 289
+                                Store 286(outStream.Normal) 290
+             294:    135(ptr)   AccessChain 123(output) 189
+             295:   21(fvec3)   Load 294
+                                Store 291(outStream.Color) 295
+             299:    135(ptr)   AccessChain 123(output) 242
+             300:   21(fvec3)   Load 299
+                                Store 296(outStream.ViewVec) 300
+             304:    135(ptr)   AccessChain 123(output) 234
+             305:   21(fvec3)   Load 304
+                                Store 301(outStream.LightVec) 305
                                 EmitVertex
-                                Branch 102
-             102:               Label
-             292:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 69
-             293:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 89 89 16 16
-             294:     90(int)   Load 94(i)
-             295:     90(int)   IAdd 294 128
-                                Store 94(i) 295
-                                Branch 99
-             101:             Label
-             296:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 69
-             297:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 298 298 16 16
+                                Branch 108
+             108:               Label
+             306:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 74
+             307:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 94 94 16 16
+             308:     95(int)   Load 100(i)
+             309:     95(int)   IAdd 308 134
+                                Store 100(i) 309
+                                Branch 105
+             107:             Label
+             310:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 74
+             311:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 312 312 16 16
                               EndPrimitive
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.debuginfo.hlsl.tesc.out b/Test/baseResults/spv.debuginfo.hlsl.tesc.out
index aa419a4..e85d2d0 100644
--- a/Test/baseResults/spv.debuginfo.hlsl.tesc.out
+++ b/Test/baseResults/spv.debuginfo.hlsl.tesc.out
@@ -3,23 +3,23 @@
 
 // Module Version 10000
 // Generated by (magic number): 8000b
-// Id's are bound by 688
+// Id's are bound by 702
 
                               Capability Tessellation
                               Extension  "SPV_KHR_non_semantic_info"
                2:             ExtInstImport  "NonSemantic.Shader.DebugInfo.100"
                3:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint TessellationControl 6  "main" 580 587 594 628 637 644 651 666 681
+                              EntryPoint TessellationControl 6  "main" 594 601 608 642 651 658 665 680 695
                               ExecutionMode 6 OutputVertices 4
                               ExecutionMode 6 Quads
                               ExecutionMode 6 SpacingEqual
                               ExecutionMode 6 VertexOrderCw
                1:             String  ""
-              10:             String  "float"
-              13:             String  "uint"
-              27:             String  "screenSpaceTessFactor"
-              30:             String  "// OpModuleProcessed auto-map-locations
+               9:             String  "float"
+              12:             String  "uint"
+              30:             String  "screenSpaceTessFactor"
+              33:             String  "// OpModuleProcessed auto-map-locations
 // OpModuleProcessed auto-map-bindings
 // OpModuleProcessed entry-point main
 // OpModuleProcessed client vulkan100
@@ -28,151 +28,151 @@
 // OpModuleProcessed hlsl-offsets
 #line 1
 "
-              38:             String  "p0"
-              42:             String  "p1"
-              49:             String  "bool"
-              56:             String  "frustumCheck"
-              62:             String  "Pos"
-              65:             String  "inUV"
-              74:             String  "Normal"
-              78:             String  "UV"
-              82:             String  "VSOutput"
-              92:             String  "TessLevelOuter"
-              96:             String  "TessLevelInner"
-              99:             String  "ConstantsHSOutput"
-             104:             String  "ConstantsHS"
-             110:             String  "patch"
-             121:             String  "HSOutput"
-             127:             String  "@main"
-             135:             String  "InvocationID"
-             143:             String  "midPoint"
-             155:             String  "radius"
-             166:             String  "v0"
-             176:             String  "modelview"
-             181:             String  "lightPos"
-             185:             String  "frustumPlanes"
-             188:             String  "tessellatedEdgeSize"
-             192:             String  "viewportDim"
-             196:             String  "UBO"
-             199:             String  "ubo"
-             207:             String  "int"
-             219:             String  "clip0"
-             237:             String  "clip1"
-             312:             String  "pos"
-             319:             String  "type.2d.image"
-             320:             String  "@type.2d.image"
-             325:             String  "textureHeight"
-             329:             String  "type.sampler"
-             330:             String  "@type.sampler"
-             334:             String  "samplerHeight"
-             338:             String  "type.sampled.image"
-             339:             String  "@type.sampled.image"
-             357:             String  "i"
-             410:             String  "output"
+              41:             String  "p0"
+              45:             String  "p1"
+              53:             String  "bool"
+              61:             String  "frustumCheck"
+              67:             String  "Pos"
+              70:             String  "inUV"
+              79:             String  "Normal"
+              83:             String  "UV"
+              87:             String  "VSOutput"
+              98:             String  "TessLevelOuter"
+             102:             String  "TessLevelInner"
+             105:             String  "ConstantsHSOutput"
+             111:             String  "ConstantsHS"
+             117:             String  "patch"
+             129:             String  "HSOutput"
+             136:             String  "@main"
+             144:             String  "InvocationID"
+             152:             String  "midPoint"
+             165:             String  "radius"
+             176:             String  "v0"
+             186:             String  "modelview"
+             191:             String  "lightPos"
+             195:             String  "frustumPlanes"
+             198:             String  "tessellatedEdgeSize"
+             202:             String  "viewportDim"
+             206:             String  "UBO"
+             209:             String  "ubo"
+             218:             String  "int"
+             231:             String  "clip0"
+             249:             String  "clip1"
+             326:             String  "pos"
+             333:             String  "type.2d.image"
+             334:             String  "@type.2d.image"
+             340:             String  "textureHeight"
+             344:             String  "type.sampler"
+             345:             String  "@type.sampler"
+             350:             String  "samplerHeight"
+             354:             String  "type.sampled.image"
+             355:             String  "@type.sampled.image"
+             374:             String  "i"
+             425:             String  "output"
                               Name 6  "main"
-                              Name 26  "screenSpaceTessFactor(vf4;vf4;"
-                              Name 24  "p0"
-                              Name 25  "p1"
-                              Name 55  "frustumCheck(vf4;vf2;"
-                              Name 53  "Pos"
-                              Name 54  "inUV"
-                              Name 69  "VSOutput"
-                              MemberName 69(VSOutput) 0  "Pos"
-                              MemberName 69(VSOutput) 1  "Normal"
-                              MemberName 69(VSOutput) 2  "UV"
-                              Name 90  "ConstantsHSOutput"
-                              MemberName 90(ConstantsHSOutput) 0  "TessLevelOuter"
-                              MemberName 90(ConstantsHSOutput) 1  "TessLevelInner"
-                              Name 103  "ConstantsHS(struct-VSOutput-vf4-vf3-vf21[4];"
-                              Name 102  "patch"
-                              Name 113  "HSOutput"
-                              MemberName 113(HSOutput) 0  "Pos"
-                              MemberName 113(HSOutput) 1  "Normal"
-                              MemberName 113(HSOutput) 2  "UV"
-                              Name 126  "@main(struct-VSOutput-vf4-vf3-vf21[4];u1;"
-                              Name 124  "patch"
-                              Name 125  "InvocationID"
-                              Name 141  "midPoint"
-                              Name 153  "radius"
-                              Name 164  "v0"
-                              Name 174  "UBO"
-                              MemberName 174(UBO) 0  "projection"
-                              MemberName 174(UBO) 1  "modelview"
-                              MemberName 174(UBO) 2  "lightPos"
-                              MemberName 174(UBO) 3  "frustumPlanes"
-                              MemberName 174(UBO) 4  "displacementFactor"
-                              MemberName 174(UBO) 5  "tessellationFactor"
-                              MemberName 174(UBO) 6  "viewportDim"
-                              MemberName 174(UBO) 7  "tessellatedEdgeSize"
-                              Name 197  "ubo"
-                              MemberName 197(ubo) 0  "ubo"
-                              Name 203  ""
-                              Name 217  "clip0"
-                              Name 235  "clip1"
-                              Name 310  "pos"
-                              Name 323  "textureHeight"
-                              Name 332  "samplerHeight"
-                              Name 355  "i"
-                              Name 408  "output"
-                              Name 418  "param"
-                              Name 421  "param"
-                              Name 462  "param"
-                              Name 465  "param"
-                              Name 472  "param"
-                              Name 475  "param"
-                              Name 482  "param"
-                              Name 485  "param"
-                              Name 492  "param"
-                              Name 495  "param"
-                              Name 547  "output"
-                              Name 577  "patch"
-                              Name 580  "patch.Pos"
-                              Name 587  "patch.Normal"
-                              Name 594  "patch.UV"
-                              Name 626  "InvocationID"
-                              Name 628  "InvocationID"
-                              Name 630  "flattenTemp"
-                              Name 631  "param"
-                              Name 633  "param"
-                              Name 637  "@entryPointOutput.Pos"
-                              Name 644  "@entryPointOutput.Normal"
-                              Name 651  "@entryPointOutput.UV"
-                              Name 661  "@patchConstantResult"
-                              Name 662  "param"
-                              Name 666  "@patchConstantOutput.TessLevelOuter"
-                              Name 681  "@patchConstantOutput.TessLevelInner"
-                              Decorate 172 ArrayStride 16
-                              MemberDecorate 174(UBO) 0 RowMajor
-                              MemberDecorate 174(UBO) 0 Offset 0
-                              MemberDecorate 174(UBO) 0 MatrixStride 16
-                              MemberDecorate 174(UBO) 1 RowMajor
-                              MemberDecorate 174(UBO) 1 Offset 64
-                              MemberDecorate 174(UBO) 1 MatrixStride 16
-                              MemberDecorate 174(UBO) 2 Offset 128
-                              MemberDecorate 174(UBO) 3 Offset 144
-                              MemberDecorate 174(UBO) 4 Offset 240
-                              MemberDecorate 174(UBO) 5 Offset 244
-                              MemberDecorate 174(UBO) 6 Offset 248
-                              MemberDecorate 174(UBO) 7 Offset 256
-                              MemberDecorate 197(ubo) 0 Offset 0
-                              Decorate 197(ubo) Block
-                              Decorate 203 DescriptorSet 0
-                              Decorate 203 Binding 0
-                              Decorate 323(textureHeight) DescriptorSet 0
-                              Decorate 323(textureHeight) Binding 1
-                              Decorate 332(samplerHeight) DescriptorSet 0
-                              Decorate 332(samplerHeight) Binding 1
-                              Decorate 580(patch.Pos) BuiltIn Position
-                              Decorate 587(patch.Normal) Location 0
-                              Decorate 594(patch.UV) Location 1
-                              Decorate 628(InvocationID) BuiltIn InvocationId
-                              Decorate 637(@entryPointOutput.Pos) BuiltIn Position
-                              Decorate 644(@entryPointOutput.Normal) Location 0
-                              Decorate 651(@entryPointOutput.UV) Location 1
-                              Decorate 666(@patchConstantOutput.TessLevelOuter) Patch
-                              Decorate 666(@patchConstantOutput.TessLevelOuter) BuiltIn TessLevelOuter
-                              Decorate 681(@patchConstantOutput.TessLevelInner) Patch
-                              Decorate 681(@patchConstantOutput.TessLevelInner) BuiltIn TessLevelInner
+                              Name 28  "screenSpaceTessFactor(vf4;vf4;"
+                              Name 26  "p0"
+                              Name 27  "p1"
+                              Name 59  "frustumCheck(vf4;vf2;"
+                              Name 57  "Pos"
+                              Name 58  "inUV"
+                              Name 74  "VSOutput"
+                              MemberName 74(VSOutput) 0  "Pos"
+                              MemberName 74(VSOutput) 1  "Normal"
+                              MemberName 74(VSOutput) 2  "UV"
+                              Name 96  "ConstantsHSOutput"
+                              MemberName 96(ConstantsHSOutput) 0  "TessLevelOuter"
+                              MemberName 96(ConstantsHSOutput) 1  "TessLevelInner"
+                              Name 109  "ConstantsHS(struct-VSOutput-vf4-vf3-vf21[4];"
+                              Name 108  "patch"
+                              Name 121  "HSOutput"
+                              MemberName 121(HSOutput) 0  "Pos"
+                              MemberName 121(HSOutput) 1  "Normal"
+                              MemberName 121(HSOutput) 2  "UV"
+                              Name 134  "@main(struct-VSOutput-vf4-vf3-vf21[4];u1;"
+                              Name 132  "patch"
+                              Name 133  "InvocationID"
+                              Name 150  "midPoint"
+                              Name 163  "radius"
+                              Name 174  "v0"
+                              Name 184  "UBO"
+                              MemberName 184(UBO) 0  "projection"
+                              MemberName 184(UBO) 1  "modelview"
+                              MemberName 184(UBO) 2  "lightPos"
+                              MemberName 184(UBO) 3  "frustumPlanes"
+                              MemberName 184(UBO) 4  "displacementFactor"
+                              MemberName 184(UBO) 5  "tessellationFactor"
+                              MemberName 184(UBO) 6  "viewportDim"
+                              MemberName 184(UBO) 7  "tessellatedEdgeSize"
+                              Name 207  "ubo"
+                              MemberName 207(ubo) 0  "ubo"
+                              Name 214  ""
+                              Name 229  "clip0"
+                              Name 247  "clip1"
+                              Name 324  "pos"
+                              Name 338  "textureHeight"
+                              Name 348  "samplerHeight"
+                              Name 372  "i"
+                              Name 423  "output"
+                              Name 433  "param"
+                              Name 436  "param"
+                              Name 474  "param"
+                              Name 477  "param"
+                              Name 484  "param"
+                              Name 487  "param"
+                              Name 494  "param"
+                              Name 497  "param"
+                              Name 504  "param"
+                              Name 507  "param"
+                              Name 560  "output"
+                              Name 591  "patch"
+                              Name 594  "patch.Pos"
+                              Name 601  "patch.Normal"
+                              Name 608  "patch.UV"
+                              Name 640  "InvocationID"
+                              Name 642  "InvocationID"
+                              Name 644  "flattenTemp"
+                              Name 645  "param"
+                              Name 647  "param"
+                              Name 651  "@entryPointOutput.Pos"
+                              Name 658  "@entryPointOutput.Normal"
+                              Name 665  "@entryPointOutput.UV"
+                              Name 675  "@patchConstantResult"
+                              Name 676  "param"
+                              Name 680  "@patchConstantOutput.TessLevelOuter"
+                              Name 695  "@patchConstantOutput.TessLevelInner"
+                              Decorate 182 ArrayStride 16
+                              MemberDecorate 184(UBO) 0 RowMajor
+                              MemberDecorate 184(UBO) 0 Offset 0
+                              MemberDecorate 184(UBO) 0 MatrixStride 16
+                              MemberDecorate 184(UBO) 1 RowMajor
+                              MemberDecorate 184(UBO) 1 Offset 64
+                              MemberDecorate 184(UBO) 1 MatrixStride 16
+                              MemberDecorate 184(UBO) 2 Offset 128
+                              MemberDecorate 184(UBO) 3 Offset 144
+                              MemberDecorate 184(UBO) 4 Offset 240
+                              MemberDecorate 184(UBO) 5 Offset 244
+                              MemberDecorate 184(UBO) 6 Offset 248
+                              MemberDecorate 184(UBO) 7 Offset 256
+                              MemberDecorate 207(ubo) 0 Offset 0
+                              Decorate 207(ubo) Block
+                              Decorate 214 DescriptorSet 0
+                              Decorate 214 Binding 0
+                              Decorate 338(textureHeight) DescriptorSet 0
+                              Decorate 338(textureHeight) Binding 1
+                              Decorate 348(samplerHeight) DescriptorSet 0
+                              Decorate 348(samplerHeight) Binding 1
+                              Decorate 594(patch.Pos) BuiltIn Position
+                              Decorate 601(patch.Normal) Location 0
+                              Decorate 608(patch.UV) Location 1
+                              Decorate 642(InvocationID) BuiltIn InvocationId
+                              Decorate 651(@entryPointOutput.Pos) BuiltIn Position
+                              Decorate 658(@entryPointOutput.Normal) Location 0
+                              Decorate 665(@entryPointOutput.UV) Location 1
+                              Decorate 680(@patchConstantOutput.TessLevelOuter) Patch
+                              Decorate 680(@patchConstantOutput.TessLevelOuter) BuiltIn TessLevelOuter
+                              Decorate 695(@patchConstantOutput.TessLevelInner) Patch
+                              Decorate 695(@patchConstantOutput.TessLevelInner) BuiltIn TessLevelInner
                4:             TypeVoid
                5:             TypeFunction 4
                8:             TypeFloat 32
@@ -180,738 +180,752 @@
               14:     11(int) Constant 32
               15:     11(int) Constant 6
               16:     11(int) Constant 0
-              12:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 13 14 15 16
+              13:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 12 14 15 16
               17:     11(int) Constant 3
-               9:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 10 14 17 16
+              10:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 9 14 17 16
               18:             TypeVector 8(float) 4
               19:     11(int) Constant 4
-              20:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 9 19
+              20:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 10 19
               21:             TypePointer Function 18(fvec4)
-              22:             TypeFunction 8(float) 21(ptr) 21(ptr)
-              23:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 17 9 20 20
-              29:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 1 30
-              32:     11(int) Constant 1
-              33:     11(int) Constant 5
-              31:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 32 19 29 33
-              28:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 27 23 29 16 16 31 27 17 16
-              37:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 38 20 29 16 16 28 19 32
-              40:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
-              43:     11(int) Constant 2
-              41:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 42 20 29 16 16 28 19 43
-              45:             TypeVector 8(float) 2
-              46:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 9 43
-              47:             TypePointer Function 45(fvec2)
-              48:             TypeBool
-              50:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 49 14 43 16
-              51:             TypeFunction 48(bool) 21(ptr) 47(ptr)
-              52:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 17 50 20 46
-              57:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 56 52 29 16 16 31 56 17 16
-              61:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 62 20 29 16 16 57 19 32
-              64:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 65 46 29 16 16 57 19 43
-              67:             TypeVector 8(float) 3
-              68:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 9 17
-    69(VSOutput):             TypeStruct 18(fvec4) 67(fvec3) 45(fvec2)
-              71:     11(int) Constant 44
-              72:     11(int) Constant 13
-              70:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 62 20 29 71 72 16 16 17
-              75:     11(int) Constant 45
-              76:     11(int) Constant 35
-              73:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 74 68 29 75 76 16 16 17
-              79:     11(int) Constant 46
-              80:     11(int) Constant 31
-              77:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 78 46 29 79 80 16 16 17
-              81:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 82 32 29 16 16 31 82 16 17 70 73 77
-              83:             TypeArray 69(VSOutput) 19
-              84:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 81 19
-              85:             TypePointer Function 83
-              86:             TypeArray 8(float) 19
-              87:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 9 19
-              88:             TypeArray 8(float) 43
-              89:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 9 43
-90(ConstantsHSOutput):             TypeStruct 86 88
-              93:     11(int) Constant 58
-              94:     11(int) Constant 25
-              91:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 92 87 29 93 94 16 16 17
-              97:     11(int) Constant 59
-              95:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 96 89 29 97 94 16 16 17
-              98:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 99 32 29 16 16 31 99 16 17 91 95
-             100:             TypeFunction 90(ConstantsHSOutput) 85(ptr)
-             101:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 17 98 84
-             105:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 104 101 29 16 16 31 104 17 16
-             109:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 110 84 29 16 16 105 19 32
-             112:             TypePointer Function 11(int)
-   113(HSOutput):             TypeStruct 18(fvec4) 67(fvec3) 45(fvec2)
-             115:     11(int) Constant 51
-             114:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 62 20 29 115 14 16 16 17
-             117:     11(int) Constant 52
-             116:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 74 68 29 117 76 16 16 17
-             119:     11(int) Constant 53
-             118:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 78 46 29 119 80 16 16 17
-             120:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 121 32 29 16 16 31 121 16 17 114 116 118
-             122:             TypeFunction 113(HSOutput) 85(ptr) 112(ptr)
-             123:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 17 120 84 12
-             128:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 127 123 29 16 16 31 127 17 16
-             132:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 110 84 29 16 16 128 19 32
-             134:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 135 12 29 16 16 128 19 43
-             140:     11(int) Constant 67
-             142:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 143 20 29 140 16 28 19
-             145:    8(float) Constant 1056964608
-             151:     11(int) Constant 69
-             152:             TypePointer Function 8(float)
-             154:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 155 9 29 151 16 28 19
-             160:    8(float) Constant 1073741824
-             163:     11(int) Constant 72
-             165:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 166 20 29 163 16 28 19
-             169:             TypeMatrix 18(fvec4) 4
-             171:    48(bool) ConstantTrue
-             170:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 20 19 171
-             172:             TypeArray 18(fvec4) 15
-             173:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 20 15
-        174(UBO):             TypeStruct 169 169 18(fvec4) 172 8(float) 8(float) 45(fvec2) 8(float)
-             177:     11(int) Constant 29
-             178:     11(int) Constant 20
-             175:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 176 170 29 177 178 16 16 17
-             179:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 176 170 29 177 178 16 16 17
-             182:     11(int) Constant 30
-             183:     11(int) Constant 17
-             180:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 181 20 29 182 183 16 16 17
-             186:     11(int) Constant 22
-             184:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 185 173 29 80 186 16 16 17
-             189:     11(int) Constant 27
-             187:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 188 9 29 76 189 16 16 17
-             190:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 188 9 29 76 189 16 16 17
-             193:     11(int) Constant 34
-             191:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 192 46 29 193 178 16 16 17
-             194:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 188 9 29 76 189 16 16 17
-             195:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 196 32 29 163 16 31 196 16 17 175 179 180 184 187 190 191 194
-        197(ubo):             TypeStruct 174(UBO)
-             200:     11(int) Constant 37
-             198:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 199 195 29 200 200 16 16 17
-             201:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 199 32 29 163 16 31 199 16 17 198
-             202:             TypePointer Uniform 197(ubo)
-             203:    202(ptr) Variable Uniform
-             205:     11(int) Constant 8
-             204:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 1 201 29 163 16 31 1 203 205
-             206:             TypeInt 32 1
-             208:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 207 14 19 16
-             209:    206(int) Constant 0
-             210:    206(int) Constant 1
-             211:             TypePointer Uniform 169
-             216:     11(int) Constant 75
-             218:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 219 20 29 216 16 28 19
-             223:    8(float) Constant 0
-             224:   67(fvec3) ConstantComposite 223 223 223
-             234:     11(int) Constant 76
-             236:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 237 20 29 234 16 28 19
-             250:     11(int) Constant 79
-             257:     11(int) Constant 80
-             264:     11(int) Constant 83
-             265:    206(int) Constant 6
-             266:             TypePointer Uniform 45(fvec2)
-             277:     11(int) Constant 84
-             288:     11(int) Constant 89
-             292:    206(int) Constant 7
-             293:             TypePointer Uniform 8(float)
-             297:    206(int) Constant 5
-             301:    8(float) Constant 1065353216
-             302:    8(float) Constant 1115684864
-             309:     11(int) Constant 98
-             311:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 312 20 29 309 16 57 19
-             316:     11(int) Constant 99
-             317:             TypeImage 8(float) 2D sampled format:Unknown
-             321:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 0(DebugInfoNone)
-             318:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 319 16 29 316 16 31 320 321 17
-             322:             TypePointer UniformConstant 317
-323(textureHeight):    322(ptr) Variable UniformConstant
-             324:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 325 318 29 316 16 31 325 323(textureHeight) 205
-             327:             TypeSampler
-             328:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 329 32 29 316 16 31 330 321 17
-             331:             TypePointer UniformConstant 327
-332(samplerHeight):    331(ptr) Variable UniformConstant
-             333:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 334 328 29 316 16 31 334 332(samplerHeight) 205
-             336:             TypeSampledImage 317
-             337:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 338 16 29 316 16 31 339 321 17
-             344:    206(int) Constant 4
-             353:     11(int) Constant 102
-             354:             TypePointer Function 206(int)
-             356:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 357 208 29 353 16 57 19
-             369:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 49 14 43 16
-             373:     11(int) Constant 103
-             375:    206(int) Constant 3
-             377:             TypePointer Uniform 18(fvec4)
-             381:    8(float) Constant 1090519040
-             383:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 49 14 43 16
-             387:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 49 14 43 16
-             388:    48(bool) ConstantFalse
-             391:     11(int) Constant 105
-             397:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 49 14 43 16
-             400:     11(int) Constant 108
-             406:     11(int) Constant 113
-             407:             TypePointer Function 90(ConstantsHSOutput)
-             409:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 410 98 29 406 16 105 19
-             412:          86 ConstantComposite 223 223 223 223
-             413:          88 ConstantComposite 223 223
-             414:90(ConstantsHSOutput) ConstantComposite 412 413
-             416:     11(int) Constant 115
-             417:    206(int) Constant 2
-             425:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 49 14 43 16
-             426:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 49 14 43 16
-             432:     11(int) Constant 117
-             435:     11(int) Constant 118
-             438:     11(int) Constant 119
-             441:     11(int) Constant 120
-             444:     11(int) Constant 121
-             447:     11(int) Constant 122
-             452:     11(int) Constant 126
-             455:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 49 14 43 16
-             461:     11(int) Constant 128
-             471:     11(int) Constant 129
-             481:     11(int) Constant 130
-             491:     11(int) Constant 131
-             501:     11(int) Constant 132
-             509:     11(int) Constant 133
-             519:     11(int) Constant 139
-             522:     11(int) Constant 140
-             525:     11(int) Constant 141
-             528:     11(int) Constant 142
-             531:     11(int) Constant 143
-             534:     11(int) Constant 144
-             538:     11(int) Constant 148
-             545:     11(int) Constant 159
-             546:             TypePointer Function 113(HSOutput)
-             548:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 410 120 29 545 16 128 19
-             550:   18(fvec4) ConstantComposite 223 223 223 223
-             551:   45(fvec2) ConstantComposite 223 223
-             552:113(HSOutput) ConstantComposite 550 224 551
-             554:     11(int) Constant 160
-             560:     11(int) Constant 161
-             562:             TypePointer Function 67(fvec3)
-             567:     11(int) Constant 162
-             573:     11(int) Constant 163
-             578:             TypeArray 18(fvec4) 19
-             579:             TypePointer Input 578
-  580(patch.Pos):    579(ptr) Variable Input
-             581:             TypePointer Input 18(fvec4)
-             585:             TypeArray 67(fvec3) 19
-             586:             TypePointer Input 585
-587(patch.Normal):    586(ptr) Variable Input
-             588:             TypePointer Input 67(fvec3)
-             592:             TypeArray 45(fvec2) 19
+              22:     11(int) Constant 7
+              23:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 20 22 16
+              24:             TypeFunction 8(float) 21(ptr) 21(ptr)
+              25:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 17 10 20 20
+              32:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 1 33
+              34:     11(int) Constant 65
+              36:     11(int) Constant 1
+              37:     11(int) Constant 5
+              35:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 36 19 32 37
+              31:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 30 25 32 34 16 35 30 17 34
+              40:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 41 20 32 34 16 31 19 36
+              43:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
+              46:     11(int) Constant 2
+              44:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 45 20 32 34 16 31 19 46
+              48:             TypeVector 8(float) 2
+              49:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 10 46
+              50:             TypePointer Function 48(fvec2)
+              51:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 49 22 16
+              52:             TypeBool
+              54:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 53 14 46 16
+              55:             TypeFunction 52(bool) 21(ptr) 50(ptr)
+              56:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 17 54 20 49
+              63:     11(int) Constant 95
+              62:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 61 56 32 63 16 35 61 17 63
+              66:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 67 20 32 63 16 62 19 36
+              69:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 70 49 32 63 16 62 19 46
+              72:             TypeVector 8(float) 3
+              73:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 10 17
+    74(VSOutput):             TypeStruct 18(fvec4) 72(fvec3) 48(fvec2)
+              76:     11(int) Constant 44
+              77:     11(int) Constant 13
+              75:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 67 20 32 76 77 16 16 17
+              80:     11(int) Constant 45
+              81:     11(int) Constant 35
+              78:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 79 73 32 80 81 16 16 17
+              84:     11(int) Constant 46
+              85:     11(int) Constant 31
+              82:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 83 49 32 84 85 16 16 17
+              86:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 87 36 32 63 16 35 87 16 17 75 78 82
+              88:             TypeArray 74(VSOutput) 19
+              89:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 86 19
+              90:             TypePointer Function 88
+              91:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 89 22 16
+              92:             TypeArray 8(float) 19
+              93:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 10 19
+              94:             TypeArray 8(float) 46
+              95:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 10 46
+96(ConstantsHSOutput):             TypeStruct 92 94
+              99:     11(int) Constant 58
+             100:     11(int) Constant 25
+              97:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 98 93 32 99 100 16 16 17
+             103:     11(int) Constant 59
+             101:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 102 95 32 103 100 16 16 17
+             104:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 105 36 32 63 16 35 105 16 17 97 101
+             106:             TypeFunction 96(ConstantsHSOutput) 90(ptr)
+             107:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 17 104 89
+             113:     11(int) Constant 112
+             112:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 111 107 32 113 16 35 111 17 113
+             116:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 117 89 32 113 16 112 19 36
+             119:             TypePointer Function 11(int)
+             120:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 13 22 16
+   121(HSOutput):             TypeStruct 18(fvec4) 72(fvec3) 48(fvec2)
+             123:     11(int) Constant 51
+             122:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 67 20 32 123 14 16 16 17
+             125:     11(int) Constant 52
+             124:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 79 73 32 125 81 16 16 17
+             127:     11(int) Constant 53
+             126:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 83 49 32 127 85 16 16 17
+             128:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 129 36 32 113 16 35 129 16 17 122 124 126
+             130:             TypeFunction 121(HSOutput) 90(ptr) 119(ptr)
+             131:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 17 128 89 13
+             138:     11(int) Constant 158
+             137:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 136 131 32 138 16 35 136 17 138
+             141:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 117 89 32 138 16 137 19 36
+             143:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 144 13 32 138 16 137 19 46
+             149:     11(int) Constant 67
+             151:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 152 20 32 149 16 31 19
+             154:    8(float) Constant 1056964608
+             160:     11(int) Constant 69
+             161:             TypePointer Function 8(float)
+             162:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 10 22 16
+             164:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 165 10 32 160 16 31 19
+             170:    8(float) Constant 1073741824
+             173:     11(int) Constant 72
+             175:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 176 20 32 173 16 31 19
+             179:             TypeMatrix 18(fvec4) 4
+             181:    52(bool) ConstantTrue
+             180:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 20 19 181
+             182:             TypeArray 18(fvec4) 15
+             183:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 20 15
+        184(UBO):             TypeStruct 179 179 18(fvec4) 182 8(float) 8(float) 48(fvec2) 8(float)
+             187:     11(int) Constant 29
+             188:     11(int) Constant 20
+             185:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 186 180 32 187 188 16 16 17
+             189:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 186 180 32 187 188 16 16 17
+             192:     11(int) Constant 30
+             193:     11(int) Constant 17
+             190:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 191 20 32 192 193 16 16 17
+             196:     11(int) Constant 22
+             194:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 195 183 32 85 196 16 16 17
+             199:     11(int) Constant 27
+             197:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 198 10 32 81 199 16 16 17
+             200:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 198 10 32 81 199 16 16 17
+             203:     11(int) Constant 34
+             201:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 202 49 32 203 188 16 16 17
+             204:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 198 10 32 81 199 16 16 17
+             205:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 206 36 32 173 16 35 206 16 17 185 189 190 194 197 200 201 204
+        207(ubo):             TypeStruct 184(UBO)
+             210:     11(int) Constant 37
+             208:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 209 205 32 210 210 16 16 17
+             211:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 209 36 32 173 16 35 209 16 17 208
+             212:             TypePointer Uniform 207(ubo)
+             213:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 211 46 16
+             214:    212(ptr) Variable Uniform
+             216:     11(int) Constant 8
+             215:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 1 211 32 173 16 35 1 214 216
+             217:             TypeInt 32 1
+             219:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 218 14 19 16
+             220:    217(int) Constant 0
+             221:    217(int) Constant 1
+             222:             TypePointer Uniform 179
+             223:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 180 46 16
+             228:     11(int) Constant 75
+             230:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 231 20 32 228 16 31 19
+             235:    8(float) Constant 0
+             236:   72(fvec3) ConstantComposite 235 235 235
+             246:     11(int) Constant 76
+             248:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 249 20 32 246 16 31 19
+             262:     11(int) Constant 79
+             269:     11(int) Constant 80
+             276:     11(int) Constant 83
+             277:    217(int) Constant 6
+             278:             TypePointer Uniform 48(fvec2)
+             279:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 49 46 16
+             290:     11(int) Constant 84
+             301:     11(int) Constant 89
+             305:    217(int) Constant 7
+             306:             TypePointer Uniform 8(float)
+             307:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 10 46 16
+             311:    217(int) Constant 5
+             315:    8(float) Constant 1065353216
+             316:    8(float) Constant 1115684864
+             323:     11(int) Constant 98
+             325:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 326 20 32 323 16 62 19
+             330:     11(int) Constant 99
+             331:             TypeImage 8(float) 2D sampled format:Unknown
+             335:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 0(DebugInfoNone)
+             332:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 333 16 32 330 16 35 334 335 17
+             336:             TypePointer UniformConstant 331
+             337:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 332 16 16
+338(textureHeight):    336(ptr) Variable UniformConstant
+             339:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 340 332 32 330 16 35 340 338(textureHeight) 216
+             342:             TypeSampler
+             343:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 344 36 32 330 16 35 345 335 17
+             346:             TypePointer UniformConstant 342
+             347:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 343 16 16
+348(samplerHeight):    346(ptr) Variable UniformConstant
+             349:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 350 343 32 330 16 35 350 348(samplerHeight) 216
+             352:             TypeSampledImage 331
+             353:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 354 16 32 330 16 35 355 335 17
+             360:    217(int) Constant 4
+             369:     11(int) Constant 102
+             370:             TypePointer Function 217(int)
+             371:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 219 22 16
+             373:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 374 219 32 369 16 62 19
+             389:     11(int) Constant 103
+             391:    217(int) Constant 3
+             393:             TypePointer Uniform 18(fvec4)
+             394:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 20 46 16
+             398:    8(float) Constant 1090519040
+             403:    52(bool) ConstantFalse
+             406:     11(int) Constant 105
+             414:     11(int) Constant 108
+             420:     11(int) Constant 113
+             421:             TypePointer Function 96(ConstantsHSOutput)
+             422:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 104 22 16
+             424:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 425 104 32 420 16 112 19
+             427:          92 ConstantComposite 235 235 235 235
+             428:          94 ConstantComposite 235 235
+             429:96(ConstantsHSOutput) ConstantComposite 427 428
+             431:     11(int) Constant 115
+             432:    217(int) Constant 2
+             445:     11(int) Constant 117
+             448:     11(int) Constant 118
+             451:     11(int) Constant 119
+             454:     11(int) Constant 120
+             457:     11(int) Constant 121
+             460:     11(int) Constant 122
+             465:     11(int) Constant 126
+             473:     11(int) Constant 128
+             483:     11(int) Constant 129
+             493:     11(int) Constant 130
+             503:     11(int) Constant 131
+             513:     11(int) Constant 132
+             521:     11(int) Constant 133
+             531:     11(int) Constant 139
+             534:     11(int) Constant 140
+             537:     11(int) Constant 141
+             540:     11(int) Constant 142
+             543:     11(int) Constant 143
+             546:     11(int) Constant 144
+             550:     11(int) Constant 148
+             557:     11(int) Constant 159
+             558:             TypePointer Function 121(HSOutput)
+             559:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 128 22 16
+             561:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 425 128 32 557 16 137 19
+             563:   18(fvec4) ConstantComposite 235 235 235 235
+             564:   48(fvec2) ConstantComposite 235 235
+             565:121(HSOutput) ConstantComposite 563 236 564
+             567:     11(int) Constant 160
+             573:     11(int) Constant 161
+             575:             TypePointer Function 72(fvec3)
+             576:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 73 22 16
+             581:     11(int) Constant 162
+             587:     11(int) Constant 163
+             592:             TypeArray 18(fvec4) 19
              593:             TypePointer Input 592
-   594(patch.UV):    593(ptr) Variable Input
-             595:             TypePointer Input 45(fvec2)
-             627:             TypePointer Input 11(int)
-628(InvocationID):    627(ptr) Variable Input
-             636:             TypePointer Output 578
-637(@entryPointOutput.Pos):    636(ptr) Variable Output
-             641:             TypePointer Output 18(fvec4)
-             643:             TypePointer Output 585
-644(@entryPointOutput.Normal):    643(ptr) Variable Output
-             648:             TypePointer Output 67(fvec3)
+  594(patch.Pos):    593(ptr) Variable Input
+             595:             TypePointer Input 18(fvec4)
+             599:             TypeArray 72(fvec3) 19
+             600:             TypePointer Input 599
+601(patch.Normal):    600(ptr) Variable Input
+             602:             TypePointer Input 72(fvec3)
+             606:             TypeArray 48(fvec2) 19
+             607:             TypePointer Input 606
+   608(patch.UV):    607(ptr) Variable Input
+             609:             TypePointer Input 48(fvec2)
+             641:             TypePointer Input 11(int)
+642(InvocationID):    641(ptr) Variable Input
              650:             TypePointer Output 592
-651(@entryPointOutput.UV):    650(ptr) Variable Output
-             655:             TypePointer Output 45(fvec2)
-             665:             TypePointer Output 86
-666(@patchConstantOutput.TessLevelOuter):    665(ptr) Variable Output
-             669:             TypePointer Output 8(float)
-             680:             TypePointer Output 88
-681(@patchConstantOutput.TessLevelInner):    680(ptr) Variable Output
+651(@entryPointOutput.Pos):    650(ptr) Variable Output
+             655:             TypePointer Output 18(fvec4)
+             657:             TypePointer Output 599
+658(@entryPointOutput.Normal):    657(ptr) Variable Output
+             662:             TypePointer Output 72(fvec3)
+             664:             TypePointer Output 606
+665(@entryPointOutput.UV):    664(ptr) Variable Output
+             669:             TypePointer Output 48(fvec2)
+             679:             TypePointer Output 92
+680(@patchConstantOutput.TessLevelOuter):    679(ptr) Variable Output
+             683:             TypePointer Output 8(float)
+             694:             TypePointer Output 94
+695(@patchConstantOutput.TessLevelInner):    694(ptr) Variable Output
                               Line 1 158 1
          6(main):           4 Function None 5
                7:             Label
-      577(patch):     85(ptr) Variable Function
-626(InvocationID):    112(ptr) Variable Function
-630(flattenTemp):    546(ptr) Variable Function
-      631(param):     85(ptr) Variable Function
-      633(param):    112(ptr) Variable Function
-661(@patchConstantResult):    407(ptr) Variable Function
-      662(param):     85(ptr) Variable Function
+      591(patch):     90(ptr) Variable Function
+640(InvocationID):    119(ptr) Variable Function
+644(flattenTemp):    558(ptr) Variable Function
+      645(param):     90(ptr) Variable Function
+      647(param):    119(ptr) Variable Function
+675(@patchConstantResult):    421(ptr) Variable Function
+      676(param):     90(ptr) Variable Function
                               Line 1 158 0
-             582:    581(ptr) AccessChain 580(patch.Pos) 209
-             583:   18(fvec4) Load 582
-             584:     21(ptr) AccessChain 577(patch) 209 209
-                              Store 584 583
-             589:    588(ptr) AccessChain 587(patch.Normal) 209
-             590:   67(fvec3) Load 589
-             591:    562(ptr) AccessChain 577(patch) 209 210
-                              Store 591 590
-             596:    595(ptr) AccessChain 594(patch.UV) 209
-             597:   45(fvec2) Load 596
-             598:     47(ptr) AccessChain 577(patch) 209 417
+             596:    595(ptr) AccessChain 594(patch.Pos) 220
+             597:   18(fvec4) Load 596
+             598:     21(ptr) AccessChain 591(patch) 220 220
                               Store 598 597
-             599:    581(ptr) AccessChain 580(patch.Pos) 210
-             600:   18(fvec4) Load 599
-             601:     21(ptr) AccessChain 577(patch) 210 209
-                              Store 601 600
-             602:    588(ptr) AccessChain 587(patch.Normal) 210
-             603:   67(fvec3) Load 602
-             604:    562(ptr) AccessChain 577(patch) 210 210
-                              Store 604 603
-             605:    595(ptr) AccessChain 594(patch.UV) 210
-             606:   45(fvec2) Load 605
-             607:     47(ptr) AccessChain 577(patch) 210 417
-                              Store 607 606
-             608:    581(ptr) AccessChain 580(patch.Pos) 417
-             609:   18(fvec4) Load 608
-             610:     21(ptr) AccessChain 577(patch) 417 209
-                              Store 610 609
-             611:    588(ptr) AccessChain 587(patch.Normal) 417
-             612:   67(fvec3) Load 611
-             613:    562(ptr) AccessChain 577(patch) 417 210
-                              Store 613 612
-             614:    595(ptr) AccessChain 594(patch.UV) 417
-             615:   45(fvec2) Load 614
-             616:     47(ptr) AccessChain 577(patch) 417 417
-                              Store 616 615
-             617:    581(ptr) AccessChain 580(patch.Pos) 375
-             618:   18(fvec4) Load 617
-             619:     21(ptr) AccessChain 577(patch) 375 209
-                              Store 619 618
-             620:    588(ptr) AccessChain 587(patch.Normal) 375
-             621:   67(fvec3) Load 620
-             622:    562(ptr) AccessChain 577(patch) 375 210
-                              Store 622 621
-             623:    595(ptr) AccessChain 594(patch.UV) 375
-             624:   45(fvec2) Load 623
-             625:     47(ptr) AccessChain 577(patch) 375 417
-                              Store 625 624
-             629:     11(int) Load 628(InvocationID)
-                              Store 626(InvocationID) 629
-             632:          83 Load 577(patch)
-                              Store 631(param) 632
-             634:     11(int) Load 626(InvocationID)
-                              Store 633(param) 634
-             635:113(HSOutput) FunctionCall 126(@main(struct-VSOutput-vf4-vf3-vf21[4];u1;) 631(param) 633(param)
-                              Store 630(flattenTemp) 635
-             638:     11(int) Load 628(InvocationID)
-             639:     21(ptr) AccessChain 630(flattenTemp) 209
-             640:   18(fvec4) Load 639
-             642:    641(ptr) AccessChain 637(@entryPointOutput.Pos) 638
-                              Store 642 640
-             645:     11(int) Load 628(InvocationID)
-             646:    562(ptr) AccessChain 630(flattenTemp) 210
-             647:   67(fvec3) Load 646
-             649:    648(ptr) AccessChain 644(@entryPointOutput.Normal) 645
-                              Store 649 647
-             652:     11(int) Load 628(InvocationID)
-             653:     47(ptr) AccessChain 630(flattenTemp) 417
-             654:   45(fvec2) Load 653
-             656:    655(ptr) AccessChain 651(@entryPointOutput.UV) 652
+             603:    602(ptr) AccessChain 601(patch.Normal) 220
+             604:   72(fvec3) Load 603
+             605:    575(ptr) AccessChain 591(patch) 220 221
+                              Store 605 604
+             610:    609(ptr) AccessChain 608(patch.UV) 220
+             611:   48(fvec2) Load 610
+             612:     50(ptr) AccessChain 591(patch) 220 432
+                              Store 612 611
+             613:    595(ptr) AccessChain 594(patch.Pos) 221
+             614:   18(fvec4) Load 613
+             615:     21(ptr) AccessChain 591(patch) 221 220
+                              Store 615 614
+             616:    602(ptr) AccessChain 601(patch.Normal) 221
+             617:   72(fvec3) Load 616
+             618:    575(ptr) AccessChain 591(patch) 221 221
+                              Store 618 617
+             619:    609(ptr) AccessChain 608(patch.UV) 221
+             620:   48(fvec2) Load 619
+             621:     50(ptr) AccessChain 591(patch) 221 432
+                              Store 621 620
+             622:    595(ptr) AccessChain 594(patch.Pos) 432
+             623:   18(fvec4) Load 622
+             624:     21(ptr) AccessChain 591(patch) 432 220
+                              Store 624 623
+             625:    602(ptr) AccessChain 601(patch.Normal) 432
+             626:   72(fvec3) Load 625
+             627:    575(ptr) AccessChain 591(patch) 432 221
+                              Store 627 626
+             628:    609(ptr) AccessChain 608(patch.UV) 432
+             629:   48(fvec2) Load 628
+             630:     50(ptr) AccessChain 591(patch) 432 432
+                              Store 630 629
+             631:    595(ptr) AccessChain 594(patch.Pos) 391
+             632:   18(fvec4) Load 631
+             633:     21(ptr) AccessChain 591(patch) 391 220
+                              Store 633 632
+             634:    602(ptr) AccessChain 601(patch.Normal) 391
+             635:   72(fvec3) Load 634
+             636:    575(ptr) AccessChain 591(patch) 391 221
+                              Store 636 635
+             637:    609(ptr) AccessChain 608(patch.UV) 391
+             638:   48(fvec2) Load 637
+             639:     50(ptr) AccessChain 591(patch) 391 432
+                              Store 639 638
+             643:     11(int) Load 642(InvocationID)
+                              Store 640(InvocationID) 643
+             646:          88 Load 591(patch)
+                              Store 645(param) 646
+             648:     11(int) Load 640(InvocationID)
+                              Store 647(param) 648
+             649:121(HSOutput) FunctionCall 134(@main(struct-VSOutput-vf4-vf3-vf21[4];u1;) 645(param) 647(param)
+                              Store 644(flattenTemp) 649
+             652:     11(int) Load 642(InvocationID)
+             653:     21(ptr) AccessChain 644(flattenTemp) 220
+             654:   18(fvec4) Load 653
+             656:    655(ptr) AccessChain 651(@entryPointOutput.Pos) 652
                               Store 656 654
-                              ControlBarrier 43 19 16
-             657:     11(int) Load 628(InvocationID)
-             658:    48(bool) IEqual 657 209
-                              SelectionMerge 660 None
-                              BranchConditional 658 659 660
-             659:               Label
-             663:          83   Load 577(patch)
-                                Store 662(param) 663
-             664:90(ConstantsHSOutput)   FunctionCall 103(ConstantsHS(struct-VSOutput-vf4-vf3-vf21[4];) 662(param)
-                                Store 661(@patchConstantResult) 664
-             667:    152(ptr)   AccessChain 661(@patchConstantResult) 209 209
-             668:    8(float)   Load 667
-             670:    669(ptr)   AccessChain 666(@patchConstantOutput.TessLevelOuter) 209
-                                Store 670 668
-             671:    152(ptr)   AccessChain 661(@patchConstantResult) 209 210
-             672:    8(float)   Load 671
-             673:    669(ptr)   AccessChain 666(@patchConstantOutput.TessLevelOuter) 210
-                                Store 673 672
-             674:    152(ptr)   AccessChain 661(@patchConstantResult) 209 417
-             675:    8(float)   Load 674
-             676:    669(ptr)   AccessChain 666(@patchConstantOutput.TessLevelOuter) 417
-                                Store 676 675
-             677:    152(ptr)   AccessChain 661(@patchConstantResult) 209 375
-             678:    8(float)   Load 677
-             679:    669(ptr)   AccessChain 666(@patchConstantOutput.TessLevelOuter) 375
-                                Store 679 678
-             682:    152(ptr)   AccessChain 661(@patchConstantResult) 210 209
-             683:    8(float)   Load 682
-             684:    669(ptr)   AccessChain 681(@patchConstantOutput.TessLevelInner) 209
-                                Store 684 683
-             685:    152(ptr)   AccessChain 661(@patchConstantResult) 210 210
+             659:     11(int) Load 642(InvocationID)
+             660:    575(ptr) AccessChain 644(flattenTemp) 221
+             661:   72(fvec3) Load 660
+             663:    662(ptr) AccessChain 658(@entryPointOutput.Normal) 659
+                              Store 663 661
+             666:     11(int) Load 642(InvocationID)
+             667:     50(ptr) AccessChain 644(flattenTemp) 432
+             668:   48(fvec2) Load 667
+             670:    669(ptr) AccessChain 665(@entryPointOutput.UV) 666
+                              Store 670 668
+                              ControlBarrier 46 19 16
+             671:     11(int) Load 642(InvocationID)
+             672:    52(bool) IEqual 671 220
+                              SelectionMerge 674 None
+                              BranchConditional 672 673 674
+             673:               Label
+             677:          88   Load 591(patch)
+                                Store 676(param) 677
+             678:96(ConstantsHSOutput)   FunctionCall 109(ConstantsHS(struct-VSOutput-vf4-vf3-vf21[4];) 676(param)
+                                Store 675(@patchConstantResult) 678
+             681:    161(ptr)   AccessChain 675(@patchConstantResult) 220 220
+             682:    8(float)   Load 681
+             684:    683(ptr)   AccessChain 680(@patchConstantOutput.TessLevelOuter) 220
+                                Store 684 682
+             685:    161(ptr)   AccessChain 675(@patchConstantResult) 220 221
              686:    8(float)   Load 685
-             687:    669(ptr)   AccessChain 681(@patchConstantOutput.TessLevelInner) 210
+             687:    683(ptr)   AccessChain 680(@patchConstantOutput.TessLevelOuter) 221
                                 Store 687 686
-                                Branch 660
-             660:             Label
+             688:    161(ptr)   AccessChain 675(@patchConstantResult) 220 432
+             689:    8(float)   Load 688
+             690:    683(ptr)   AccessChain 680(@patchConstantOutput.TessLevelOuter) 432
+                                Store 690 689
+             691:    161(ptr)   AccessChain 675(@patchConstantResult) 220 391
+             692:    8(float)   Load 691
+             693:    683(ptr)   AccessChain 680(@patchConstantOutput.TessLevelOuter) 391
+                                Store 693 692
+             696:    161(ptr)   AccessChain 675(@patchConstantResult) 221 220
+             697:    8(float)   Load 696
+             698:    683(ptr)   AccessChain 695(@patchConstantOutput.TessLevelInner) 220
+                                Store 698 697
+             699:    161(ptr)   AccessChain 675(@patchConstantResult) 221 221
+             700:    8(float)   Load 699
+             701:    683(ptr)   AccessChain 695(@patchConstantOutput.TessLevelInner) 221
+                                Store 701 700
+                                Branch 674
+             674:             Label
                               Return
                               FunctionEnd
                               Line 1 65 1
-26(screenSpaceTessFactor(vf4;vf4;):    8(float) Function None 22
-          24(p0):     21(ptr) FunctionParameter
-          25(p1):     21(ptr) FunctionParameter
-              34:             Label
-   141(midPoint):     21(ptr) Variable Function
-     153(radius):    152(ptr) Variable Function
-         164(v0):     21(ptr) Variable Function
-      217(clip0):     21(ptr) Variable Function
-      235(clip1):     21(ptr) Variable Function
-              35:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 28
-              36:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 16 16 16 16
-              39:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 37 24(p0) 40
-              44:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 41 25(p1) 40
-             137:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 28 26(screenSpaceTessFactor(vf4;vf4;)
-             138:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 28
-             139:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 140 140 16 16
-             144:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 142 141(midPoint) 40
-             146:   18(fvec4) Load 24(p0)
-             147:   18(fvec4) Load 25(p1)
-             148:   18(fvec4) FAdd 146 147
-             149:   18(fvec4) VectorTimesScalar 148 145
-                              Store 141(midPoint) 149
-             150:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 151 151 16 16
-             156:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 154 153(radius) 40
-             157:   18(fvec4) Load 24(p0)
-             158:   18(fvec4) Load 25(p1)
-             159:    8(float) ExtInst 3(GLSL.std.450) 67(Distance) 157 158
-             161:    8(float) FDiv 159 160
-                              Store 153(radius) 161
-             162:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 163 163 16 16
-             167:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 165 164(v0) 40
-             168:   18(fvec4) Load 141(midPoint)
-             212:    211(ptr) AccessChain 203 209 210
-             213:         169 Load 212
-             214:   18(fvec4) VectorTimesMatrix 168 213
-                              Store 164(v0) 214
-             215:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 216 216 16 16
-             220:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 218 217(clip0) 40
-             221:   18(fvec4) Load 164(v0)
-             222:    8(float) Load 153(radius)
-             225:    8(float) CompositeExtract 224 0
-             226:    8(float) CompositeExtract 224 1
-             227:    8(float) CompositeExtract 224 2
-             228:   18(fvec4) CompositeConstruct 222 225 226 227
-             229:   18(fvec4) FSub 221 228
-             230:    211(ptr) AccessChain 203 209 209
-             231:         169 Load 230
-             232:   18(fvec4) VectorTimesMatrix 229 231
-                              Store 217(clip0) 232
-             233:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 234 234 16 16
-             238:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 236 235(clip1) 40
-             239:   18(fvec4) Load 164(v0)
-             240:    8(float) Load 153(radius)
-             241:    8(float) CompositeExtract 224 0
-             242:    8(float) CompositeExtract 224 1
-             243:    8(float) CompositeExtract 224 2
-             244:   18(fvec4) CompositeConstruct 240 241 242 243
-             245:   18(fvec4) FAdd 239 244
-             246:    211(ptr) AccessChain 203 209 209
-             247:         169 Load 246
-             248:   18(fvec4) VectorTimesMatrix 245 247
-                              Store 235(clip1) 248
-             249:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 250 250 16 16
-             251:    152(ptr) AccessChain 217(clip0) 17
-             252:    8(float) Load 251
-             253:   18(fvec4) Load 217(clip0)
-             254:   18(fvec4) CompositeConstruct 252 252 252 252
-             255:   18(fvec4) FDiv 253 254
-                              Store 217(clip0) 255
-             256:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 257 257 16 16
-             258:    152(ptr) AccessChain 235(clip1) 17
-             259:    8(float) Load 258
-             260:   18(fvec4) Load 235(clip1)
-             261:   18(fvec4) CompositeConstruct 259 259 259 259
-             262:   18(fvec4) FDiv 260 261
-                              Store 235(clip1) 262
-             263:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 264 264 16 16
-             267:    266(ptr) AccessChain 203 209 265
-             268:   45(fvec2) Load 267
-             269:   18(fvec4) Load 217(clip0)
-             270:   45(fvec2) VectorShuffle 269 269 0 1
-             271:   45(fvec2) FMul 270 268
-             272:    152(ptr) AccessChain 217(clip0) 16
-             273:    8(float) CompositeExtract 271 0
-                              Store 272 273
-             274:    152(ptr) AccessChain 217(clip0) 32
-             275:    8(float) CompositeExtract 271 1
-                              Store 274 275
-             276:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 277 277 16 16
-             278:    266(ptr) AccessChain 203 209 265
-             279:   45(fvec2) Load 278
-             280:   18(fvec4) Load 235(clip1)
-             281:   45(fvec2) VectorShuffle 280 280 0 1
-             282:   45(fvec2) FMul 281 279
-             283:    152(ptr) AccessChain 235(clip1) 16
-             284:    8(float) CompositeExtract 282 0
-                              Store 283 284
-             285:    152(ptr) AccessChain 235(clip1) 32
-             286:    8(float) CompositeExtract 282 1
+28(screenSpaceTessFactor(vf4;vf4;):    8(float) Function None 24
+          26(p0):     21(ptr) FunctionParameter
+          27(p1):     21(ptr) FunctionParameter
+              29:             Label
+   150(midPoint):     21(ptr) Variable Function
+     163(radius):    161(ptr) Variable Function
+         174(v0):     21(ptr) Variable Function
+      229(clip0):     21(ptr) Variable Function
+      247(clip1):     21(ptr) Variable Function
+              38:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 31
+              39:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 34 34 16 16
+              42:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 40 26(p0) 43
+              47:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 44 27(p1) 43
+             146:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 31 28(screenSpaceTessFactor(vf4;vf4;)
+             147:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 31
+             148:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 149 149 16 16
+             153:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 151 150(midPoint) 43
+             155:   18(fvec4) Load 26(p0)
+             156:   18(fvec4) Load 27(p1)
+             157:   18(fvec4) FAdd 155 156
+             158:   18(fvec4) VectorTimesScalar 157 154
+                              Store 150(midPoint) 158
+             159:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 160 160 16 16
+             166:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 164 163(radius) 43
+             167:   18(fvec4) Load 26(p0)
+             168:   18(fvec4) Load 27(p1)
+             169:    8(float) ExtInst 3(GLSL.std.450) 67(Distance) 167 168
+             171:    8(float) FDiv 169 170
+                              Store 163(radius) 171
+             172:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 173 173 16 16
+             177:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 175 174(v0) 43
+             178:   18(fvec4) Load 150(midPoint)
+             224:    222(ptr) AccessChain 214 220 221
+             225:         179 Load 224
+             226:   18(fvec4) VectorTimesMatrix 178 225
+                              Store 174(v0) 226
+             227:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 228 228 16 16
+             232:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 230 229(clip0) 43
+             233:   18(fvec4) Load 174(v0)
+             234:    8(float) Load 163(radius)
+             237:    8(float) CompositeExtract 236 0
+             238:    8(float) CompositeExtract 236 1
+             239:    8(float) CompositeExtract 236 2
+             240:   18(fvec4) CompositeConstruct 234 237 238 239
+             241:   18(fvec4) FSub 233 240
+             242:    222(ptr) AccessChain 214 220 220
+             243:         179 Load 242
+             244:   18(fvec4) VectorTimesMatrix 241 243
+                              Store 229(clip0) 244
+             245:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 246 246 16 16
+             250:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 248 247(clip1) 43
+             251:   18(fvec4) Load 174(v0)
+             252:    8(float) Load 163(radius)
+             253:    8(float) CompositeExtract 236 0
+             254:    8(float) CompositeExtract 236 1
+             255:    8(float) CompositeExtract 236 2
+             256:   18(fvec4) CompositeConstruct 252 253 254 255
+             257:   18(fvec4) FAdd 251 256
+             258:    222(ptr) AccessChain 214 220 220
+             259:         179 Load 258
+             260:   18(fvec4) VectorTimesMatrix 257 259
+                              Store 247(clip1) 260
+             261:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 262 262 16 16
+             263:    161(ptr) AccessChain 229(clip0) 17
+             264:    8(float) Load 263
+             265:   18(fvec4) Load 229(clip0)
+             266:   18(fvec4) CompositeConstruct 264 264 264 264
+             267:   18(fvec4) FDiv 265 266
+                              Store 229(clip0) 267
+             268:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 269 269 16 16
+             270:    161(ptr) AccessChain 247(clip1) 17
+             271:    8(float) Load 270
+             272:   18(fvec4) Load 247(clip1)
+             273:   18(fvec4) CompositeConstruct 271 271 271 271
+             274:   18(fvec4) FDiv 272 273
+                              Store 247(clip1) 274
+             275:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 276 276 16 16
+             280:    278(ptr) AccessChain 214 220 277
+             281:   48(fvec2) Load 280
+             282:   18(fvec4) Load 229(clip0)
+             283:   48(fvec2) VectorShuffle 282 282 0 1
+             284:   48(fvec2) FMul 283 281
+             285:    161(ptr) AccessChain 229(clip0) 16
+             286:    8(float) CompositeExtract 284 0
                               Store 285 286
-             287:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 288 288 16 16
-             289:   18(fvec4) Load 217(clip0)
-             290:   18(fvec4) Load 235(clip1)
-             291:    8(float) ExtInst 3(GLSL.std.450) 67(Distance) 289 290
-             294:    293(ptr) AccessChain 203 209 292
-             295:    8(float) Load 294
-             296:    8(float) FDiv 291 295
-             298:    293(ptr) AccessChain 203 209 297
-             299:    8(float) Load 298
-             300:    8(float) FMul 296 299
-             303:    8(float) ExtInst 3(GLSL.std.450) 43(FClamp) 300 301 302
-                              ReturnValue 303
+             287:    161(ptr) AccessChain 229(clip0) 36
+             288:    8(float) CompositeExtract 284 1
+                              Store 287 288
+             289:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 290 290 16 16
+             291:    278(ptr) AccessChain 214 220 277
+             292:   48(fvec2) Load 291
+             293:   18(fvec4) Load 247(clip1)
+             294:   48(fvec2) VectorShuffle 293 293 0 1
+             295:   48(fvec2) FMul 294 292
+             296:    161(ptr) AccessChain 247(clip1) 16
+             297:    8(float) CompositeExtract 295 0
+                              Store 296 297
+             298:    161(ptr) AccessChain 247(clip1) 36
+             299:    8(float) CompositeExtract 295 1
+                              Store 298 299
+             300:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 301 301 16 16
+             302:   18(fvec4) Load 229(clip0)
+             303:   18(fvec4) Load 247(clip1)
+             304:    8(float) ExtInst 3(GLSL.std.450) 67(Distance) 302 303
+             308:    306(ptr) AccessChain 214 220 305
+             309:    8(float) Load 308
+             310:    8(float) FDiv 304 309
+             312:    306(ptr) AccessChain 214 220 311
+             313:    8(float) Load 312
+             314:    8(float) FMul 310 313
+             317:    8(float) ExtInst 3(GLSL.std.450) 43(FClamp) 314 315 316
+                              ReturnValue 317
                               FunctionEnd
                               Line 1 95 1
-55(frustumCheck(vf4;vf2;):    48(bool) Function None 51
-         53(Pos):     21(ptr) FunctionParameter
-        54(inUV):     47(ptr) FunctionParameter
-              58:             Label
-        310(pos):     21(ptr) Variable Function
-          355(i):    354(ptr) Variable Function
-              59:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 57
-              60:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 16 16 16 16
-              63:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 61 53(Pos) 40
-              66:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 64 54(inUV) 40
-             306:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 57 55(frustumCheck(vf4;vf2;)
-             307:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 57
-             308:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 309 309 16 16
-             313:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 311 310(pos) 40
-             314:   18(fvec4) Load 53(Pos)
-                              Store 310(pos) 314
-             315:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 316 316 16 16
-             326:         317 Load 323(textureHeight)
-             335:         327 Load 332(samplerHeight)
-             340:         336 SampledImage 326 335
-             341:   45(fvec2) Load 54(inUV)
-             342:   18(fvec4) ImageSampleExplicitLod 340 341 Lod 223
-             343:    8(float) CompositeExtract 342 0
-             345:    293(ptr) AccessChain 203 209 344
-             346:    8(float) Load 345
-             347:    8(float) FMul 343 346
-             348:    152(ptr) AccessChain 310(pos) 32
-             349:    8(float) Load 348
-             350:    8(float) FSub 349 347
-             351:    152(ptr) AccessChain 310(pos) 32
-                              Store 351 350
-             352:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 353 353 16 16
-             358:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 356 355(i) 40
-                              Store 355(i) 209
-                              Branch 359
-             359:             Label
-             363:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 57
-             364:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 353 353 16 16
-                              LoopMerge 361 362 None
-                              Branch 365
-             365:             Label
-             366:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 57
-             367:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 353 353 16 16
-             368:    206(int) Load 355(i)
-             370:    48(bool) SLessThan 368 265
-                              BranchConditional 370 360 361
-             360:               Label
-             371:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 57
-             372:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 373 373 16 16
-             374:   18(fvec4)   Load 310(pos)
-             376:    206(int)   Load 355(i)
-             378:    377(ptr)   AccessChain 203 209 375 376
-             379:   18(fvec4)   Load 378
-             380:    8(float)   Dot 374 379
-             382:    8(float)   FAdd 380 381
-             384:    48(bool)   FOrdLessThan 382 223
-                                SelectionMerge 386 None
-                                BranchConditional 384 385 386
-             385:                 Label
-             389:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 57
-             390:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 391 391 16 16
-                                  ReturnValue 388
-             386:               Label
-                                Branch 362
-             362:               Label
-             393:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 57
-             394:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 353 353 16 16
-             395:    206(int)   Load 355(i)
-             396:    206(int)   IAdd 395 210
-                                Store 355(i) 396
-                                Branch 359
-             361:             Label
-             398:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 57
-             399:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 400 400 16 16
-                              ReturnValue 171
+59(frustumCheck(vf4;vf2;):    52(bool) Function None 55
+         57(Pos):     21(ptr) FunctionParameter
+        58(inUV):     50(ptr) FunctionParameter
+              60:             Label
+        324(pos):     21(ptr) Variable Function
+          372(i):    370(ptr) Variable Function
+              64:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 62
+              65:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 63 63 16 16
+              68:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 66 57(Pos) 43
+              71:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 69 58(inUV) 43
+             320:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 62 59(frustumCheck(vf4;vf2;)
+             321:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 62
+             322:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 323 323 16 16
+             327:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 325 324(pos) 43
+             328:   18(fvec4) Load 57(Pos)
+                              Store 324(pos) 328
+             329:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 330 330 16 16
+             341:         331 Load 338(textureHeight)
+             351:         342 Load 348(samplerHeight)
+             356:         352 SampledImage 341 351
+             357:   48(fvec2) Load 58(inUV)
+             358:   18(fvec4) ImageSampleExplicitLod 356 357 Lod 235
+             359:    8(float) CompositeExtract 358 0
+             361:    306(ptr) AccessChain 214 220 360
+             362:    8(float) Load 361
+             363:    8(float) FMul 359 362
+             364:    161(ptr) AccessChain 324(pos) 36
+             365:    8(float) Load 364
+             366:    8(float) FSub 365 363
+             367:    161(ptr) AccessChain 324(pos) 36
+                              Store 367 366
+             368:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 369 369 16 16
+             375:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 373 372(i) 43
+                              Store 372(i) 220
+                              Branch 376
+             376:             Label
+             380:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 62
+             381:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 369 369 16 16
+                              LoopMerge 378 379 None
+                              Branch 382
+             382:             Label
+             383:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 62
+             384:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 369 369 16 16
+             385:    217(int) Load 372(i)
+             386:    52(bool) SLessThan 385 277
+                              BranchConditional 386 377 378
+             377:               Label
+             387:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 62
+             388:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 389 389 16 16
+             390:   18(fvec4)   Load 324(pos)
+             392:    217(int)   Load 372(i)
+             395:    393(ptr)   AccessChain 214 220 391 392
+             396:   18(fvec4)   Load 395
+             397:    8(float)   Dot 390 396
+             399:    8(float)   FAdd 397 398
+             400:    52(bool)   FOrdLessThan 399 235
+                                SelectionMerge 402 None
+                                BranchConditional 400 401 402
+             401:                 Label
+             404:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 62
+             405:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 406 406 16 16
+                                  ReturnValue 403
+             402:               Label
+                                Branch 379
+             379:               Label
+             408:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 62
+             409:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 369 369 16 16
+             410:    217(int)   Load 372(i)
+             411:    217(int)   IAdd 410 221
+                                Store 372(i) 411
+                                Branch 376
+             378:             Label
+             412:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 62
+             413:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 414 414 16 16
+                              ReturnValue 181
                               FunctionEnd
                               Line 1 112 1
-103(ConstantsHS(struct-VSOutput-vf4-vf3-vf21[4];):90(ConstantsHSOutput) Function None 100
-      102(patch):     85(ptr) FunctionParameter
-             106:             Label
-     408(output):    407(ptr) Variable Function
-      418(param):     21(ptr) Variable Function
-      421(param):     47(ptr) Variable Function
-      462(param):     21(ptr) Variable Function
-      465(param):     21(ptr) Variable Function
-      472(param):     21(ptr) Variable Function
-      475(param):     21(ptr) Variable Function
-      482(param):     21(ptr) Variable Function
-      485(param):     21(ptr) Variable Function
-      492(param):     21(ptr) Variable Function
-      495(param):     21(ptr) Variable Function
-             107:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 105
-             108:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 16 16 16 16
-             111:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 109 102(patch) 40
-             403:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 105 103(ConstantsHS(struct-VSOutput-vf4-vf3-vf21[4];)
-             404:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 105
-             405:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 406 406 16 16
-             411:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 409 408(output) 40
-                              Store 408(output) 414
-             415:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 416 416 16 16
-             419:     21(ptr) AccessChain 102(patch) 209 209
-             420:   18(fvec4) Load 419
-                              Store 418(param) 420
-             422:     47(ptr) AccessChain 102(patch) 209 417
-             423:   45(fvec2) Load 422
-                              Store 421(param) 423
-             424:    48(bool) FunctionCall 55(frustumCheck(vf4;vf2;) 418(param) 421(param)
-             427:    48(bool) LogicalNot 424
-                              SelectionMerge 429 None
-                              BranchConditional 427 428 449
-             428:               Label
-             430:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 105
-             431:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 432 432 16 16
-             433:    152(ptr)   AccessChain 408(output) 210 209
-                                Store 433 223
-             434:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 435 435 16 16
-             436:    152(ptr)   AccessChain 408(output) 210 210
-                                Store 436 223
-             437:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 438 438 16 16
-             439:    152(ptr)   AccessChain 408(output) 209 209
-                                Store 439 223
-             440:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 441 441 16 16
-             442:    152(ptr)   AccessChain 408(output) 209 210
-                                Store 442 223
-             443:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 444 444 16 16
-             445:    152(ptr)   AccessChain 408(output) 209 417
-                                Store 445 223
-             446:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 447 447 16 16
-             448:    152(ptr)   AccessChain 408(output) 209 375
-                                Store 448 223
-                                Branch 429
-             449:               Label
-             450:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 105
-             451:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 452 452 16 16
-             453:    293(ptr)   AccessChain 203 209 297
-             454:    8(float)   Load 453
-             456:    48(bool)   FOrdGreaterThan 454 223
-                                SelectionMerge 458 None
-                                BranchConditional 456 457 516
-             457:                 Label
-             459:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 105
-             460:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 461 461 16 16
-             463:     21(ptr)     AccessChain 102(patch) 375 209
-             464:   18(fvec4)     Load 463
-                                  Store 462(param) 464
-             466:     21(ptr)     AccessChain 102(patch) 209 209
-             467:   18(fvec4)     Load 466
-                                  Store 465(param) 467
-             468:    8(float)     FunctionCall 26(screenSpaceTessFactor(vf4;vf4;) 462(param) 465(param)
-             469:    152(ptr)     AccessChain 408(output) 209 209
-                                  Store 469 468
-             470:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 471 471 16 16
-             473:     21(ptr)     AccessChain 102(patch) 209 209
-             474:   18(fvec4)     Load 473
-                                  Store 472(param) 474
-             476:     21(ptr)     AccessChain 102(patch) 210 209
-             477:   18(fvec4)     Load 476
-                                  Store 475(param) 477
-             478:    8(float)     FunctionCall 26(screenSpaceTessFactor(vf4;vf4;) 472(param) 475(param)
-             479:    152(ptr)     AccessChain 408(output) 209 210
-                                  Store 479 478
-             480:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 481 481 16 16
-             483:     21(ptr)     AccessChain 102(patch) 210 209
-             484:   18(fvec4)     Load 483
-                                  Store 482(param) 484
-             486:     21(ptr)     AccessChain 102(patch) 417 209
-             487:   18(fvec4)     Load 486
-                                  Store 485(param) 487
-             488:    8(float)     FunctionCall 26(screenSpaceTessFactor(vf4;vf4;) 482(param) 485(param)
-             489:    152(ptr)     AccessChain 408(output) 209 417
-                                  Store 489 488
-             490:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 491 491 16 16
-             493:     21(ptr)     AccessChain 102(patch) 417 209
-             494:   18(fvec4)     Load 493
-                                  Store 492(param) 494
-             496:     21(ptr)     AccessChain 102(patch) 375 209
-             497:   18(fvec4)     Load 496
-                                  Store 495(param) 497
-             498:    8(float)     FunctionCall 26(screenSpaceTessFactor(vf4;vf4;) 492(param) 495(param)
-             499:    152(ptr)     AccessChain 408(output) 209 375
-                                  Store 499 498
-             500:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 501 501 16 16
-             502:    152(ptr)     AccessChain 408(output) 209 209
-             503:    8(float)     Load 502
-             504:    152(ptr)     AccessChain 408(output) 209 375
-             505:    8(float)     Load 504
-             506:    8(float)     ExtInst 3(GLSL.std.450) 46(FMix) 503 505 145
-             507:    152(ptr)     AccessChain 408(output) 210 209
-                                  Store 507 506
-             508:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 509 509 16 16
-             510:    152(ptr)     AccessChain 408(output) 209 417
-             511:    8(float)     Load 510
-             512:    152(ptr)     AccessChain 408(output) 209 210
-             513:    8(float)     Load 512
-             514:    8(float)     ExtInst 3(GLSL.std.450) 46(FMix) 511 513 145
-             515:    152(ptr)     AccessChain 408(output) 210 210
-                                  Store 515 514
-                                  Branch 458
-             516:                 Label
-             517:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 105
-             518:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 519 519 16 16
-             520:    152(ptr)     AccessChain 408(output) 210 209
-                                  Store 520 301
-             521:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 522 522 16 16
-             523:    152(ptr)     AccessChain 408(output) 210 210
-                                  Store 523 301
-             524:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 525 525 16 16
-             526:    152(ptr)     AccessChain 408(output) 209 209
-                                  Store 526 301
-             527:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 528 528 16 16
-             529:    152(ptr)     AccessChain 408(output) 209 210
-                                  Store 529 301
-             530:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 531 531 16 16
-             532:    152(ptr)     AccessChain 408(output) 209 417
-                                  Store 532 301
-             533:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 534 534 16 16
-             535:    152(ptr)     AccessChain 408(output) 209 375
-                                  Store 535 301
-                                  Branch 458
-             458:               Label
-                                Branch 429
-             429:             Label
-             536:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 105
-             537:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 538 538 16 16
-             539:90(ConstantsHSOutput) Load 408(output)
-                              ReturnValue 539
+109(ConstantsHS(struct-VSOutput-vf4-vf3-vf21[4];):96(ConstantsHSOutput) Function None 106
+      108(patch):     90(ptr) FunctionParameter
+             110:             Label
+     423(output):    421(ptr) Variable Function
+      433(param):     21(ptr) Variable Function
+      436(param):     50(ptr) Variable Function
+      474(param):     21(ptr) Variable Function
+      477(param):     21(ptr) Variable Function
+      484(param):     21(ptr) Variable Function
+      487(param):     21(ptr) Variable Function
+      494(param):     21(ptr) Variable Function
+      497(param):     21(ptr) Variable Function
+      504(param):     21(ptr) Variable Function
+      507(param):     21(ptr) Variable Function
+             114:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 112
+             115:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 113 113 16 16
+             118:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 116 108(patch) 43
+             417:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 112 109(ConstantsHS(struct-VSOutput-vf4-vf3-vf21[4];)
+             418:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 112
+             419:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 420 420 16 16
+             426:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 424 423(output) 43
+                              Store 423(output) 429
+             430:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 431 431 16 16
+             434:     21(ptr) AccessChain 108(patch) 220 220
+             435:   18(fvec4) Load 434
+                              Store 433(param) 435
+             437:     50(ptr) AccessChain 108(patch) 220 432
+             438:   48(fvec2) Load 437
+                              Store 436(param) 438
+             439:    52(bool) FunctionCall 59(frustumCheck(vf4;vf2;) 433(param) 436(param)
+             440:    52(bool) LogicalNot 439
+                              SelectionMerge 442 None
+                              BranchConditional 440 441 462
+             441:               Label
+             443:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 112
+             444:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 445 445 16 16
+             446:    161(ptr)   AccessChain 423(output) 221 220
+                                Store 446 235
+             447:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 448 448 16 16
+             449:    161(ptr)   AccessChain 423(output) 221 221
+                                Store 449 235
+             450:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 451 451 16 16
+             452:    161(ptr)   AccessChain 423(output) 220 220
+                                Store 452 235
+             453:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 454 454 16 16
+             455:    161(ptr)   AccessChain 423(output) 220 221
+                                Store 455 235
+             456:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 457 457 16 16
+             458:    161(ptr)   AccessChain 423(output) 220 432
+                                Store 458 235
+             459:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 460 460 16 16
+             461:    161(ptr)   AccessChain 423(output) 220 391
+                                Store 461 235
+                                Branch 442
+             462:               Label
+             463:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 112
+             464:           4   ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 465 465 16 16
+             466:    306(ptr)   AccessChain 214 220 311
+             467:    8(float)   Load 466
+             468:    52(bool)   FOrdGreaterThan 467 235
+                                SelectionMerge 470 None
+                                BranchConditional 468 469 528
+             469:                 Label
+             471:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 112
+             472:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 473 473 16 16
+             475:     21(ptr)     AccessChain 108(patch) 391 220
+             476:   18(fvec4)     Load 475
+                                  Store 474(param) 476
+             478:     21(ptr)     AccessChain 108(patch) 220 220
+             479:   18(fvec4)     Load 478
+                                  Store 477(param) 479
+             480:    8(float)     FunctionCall 28(screenSpaceTessFactor(vf4;vf4;) 474(param) 477(param)
+             481:    161(ptr)     AccessChain 423(output) 220 220
+                                  Store 481 480
+             482:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 483 483 16 16
+             485:     21(ptr)     AccessChain 108(patch) 220 220
+             486:   18(fvec4)     Load 485
+                                  Store 484(param) 486
+             488:     21(ptr)     AccessChain 108(patch) 221 220
+             489:   18(fvec4)     Load 488
+                                  Store 487(param) 489
+             490:    8(float)     FunctionCall 28(screenSpaceTessFactor(vf4;vf4;) 484(param) 487(param)
+             491:    161(ptr)     AccessChain 423(output) 220 221
+                                  Store 491 490
+             492:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 493 493 16 16
+             495:     21(ptr)     AccessChain 108(patch) 221 220
+             496:   18(fvec4)     Load 495
+                                  Store 494(param) 496
+             498:     21(ptr)     AccessChain 108(patch) 432 220
+             499:   18(fvec4)     Load 498
+                                  Store 497(param) 499
+             500:    8(float)     FunctionCall 28(screenSpaceTessFactor(vf4;vf4;) 494(param) 497(param)
+             501:    161(ptr)     AccessChain 423(output) 220 432
+                                  Store 501 500
+             502:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 503 503 16 16
+             505:     21(ptr)     AccessChain 108(patch) 432 220
+             506:   18(fvec4)     Load 505
+                                  Store 504(param) 506
+             508:     21(ptr)     AccessChain 108(patch) 391 220
+             509:   18(fvec4)     Load 508
+                                  Store 507(param) 509
+             510:    8(float)     FunctionCall 28(screenSpaceTessFactor(vf4;vf4;) 504(param) 507(param)
+             511:    161(ptr)     AccessChain 423(output) 220 391
+                                  Store 511 510
+             512:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 513 513 16 16
+             514:    161(ptr)     AccessChain 423(output) 220 220
+             515:    8(float)     Load 514
+             516:    161(ptr)     AccessChain 423(output) 220 391
+             517:    8(float)     Load 516
+             518:    8(float)     ExtInst 3(GLSL.std.450) 46(FMix) 515 517 154
+             519:    161(ptr)     AccessChain 423(output) 221 220
+                                  Store 519 518
+             520:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 521 521 16 16
+             522:    161(ptr)     AccessChain 423(output) 220 432
+             523:    8(float)     Load 522
+             524:    161(ptr)     AccessChain 423(output) 220 221
+             525:    8(float)     Load 524
+             526:    8(float)     ExtInst 3(GLSL.std.450) 46(FMix) 523 525 154
+             527:    161(ptr)     AccessChain 423(output) 221 221
+                                  Store 527 526
+                                  Branch 470
+             528:                 Label
+             529:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 112
+             530:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 531 531 16 16
+             532:    161(ptr)     AccessChain 423(output) 221 220
+                                  Store 532 315
+             533:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 534 534 16 16
+             535:    161(ptr)     AccessChain 423(output) 221 221
+                                  Store 535 315
+             536:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 537 537 16 16
+             538:    161(ptr)     AccessChain 423(output) 220 220
+                                  Store 538 315
+             539:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 540 540 16 16
+             541:    161(ptr)     AccessChain 423(output) 220 221
+                                  Store 541 315
+             542:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 543 543 16 16
+             544:    161(ptr)     AccessChain 423(output) 220 432
+                                  Store 544 315
+             545:           4     ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 546 546 16 16
+             547:    161(ptr)     AccessChain 423(output) 220 391
+                                  Store 547 315
+                                  Branch 470
+             470:               Label
+                                Branch 442
+             442:             Label
+             548:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 112
+             549:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 550 550 16 16
+             551:96(ConstantsHSOutput) Load 423(output)
+                              ReturnValue 551
                               FunctionEnd
                               Line 1 158 1
-126(@main(struct-VSOutput-vf4-vf3-vf21[4];u1;):113(HSOutput) Function None 122
-      124(patch):     85(ptr) FunctionParameter
-125(InvocationID):    112(ptr) FunctionParameter
-             129:             Label
-     547(output):    546(ptr) Variable Function
-             130:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 128
-             131:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 16 16 16 16
-             133:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 132 124(patch) 40
-             136:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 134 125(InvocationID) 40
-             542:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 128 126(@main(struct-VSOutput-vf4-vf3-vf21[4];u1;)
-             543:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 128
-             544:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 545 545 16 16
-             549:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 548 547(output) 40
-                              Store 547(output) 552
-             553:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 554 554 16 16
-             555:     11(int) Load 125(InvocationID)
-             556:     21(ptr) AccessChain 124(patch) 555 209
-             557:   18(fvec4) Load 556
-             558:     21(ptr) AccessChain 547(output) 209
-                              Store 558 557
-             559:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 560 560 16 16
-             561:     11(int) Load 125(InvocationID)
-             563:    562(ptr) AccessChain 124(patch) 561 210
-             564:   67(fvec3) Load 563
-             565:    562(ptr) AccessChain 547(output) 210
-                              Store 565 564
-             566:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 567 567 16 16
-             568:     11(int) Load 125(InvocationID)
-             569:     47(ptr) AccessChain 124(patch) 568 417
-             570:   45(fvec2) Load 569
-             571:     47(ptr) AccessChain 547(output) 417
+134(@main(struct-VSOutput-vf4-vf3-vf21[4];u1;):121(HSOutput) Function None 130
+      132(patch):     90(ptr) FunctionParameter
+133(InvocationID):    119(ptr) FunctionParameter
+             135:             Label
+     560(output):    558(ptr) Variable Function
+             139:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 137
+             140:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 138 138 16 16
+             142:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 141 132(patch) 43
+             145:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 143 133(InvocationID) 43
+             554:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 137 134(@main(struct-VSOutput-vf4-vf3-vf21[4];u1;)
+             555:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 137
+             556:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 557 557 16 16
+             562:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 561 560(output) 43
+                              Store 560(output) 565
+             566:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 567 567 16 16
+             568:     11(int) Load 133(InvocationID)
+             569:     21(ptr) AccessChain 132(patch) 568 220
+             570:   18(fvec4) Load 569
+             571:     21(ptr) AccessChain 560(output) 220
                               Store 571 570
-             572:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 573 573 16 16
-             574:113(HSOutput) Load 547(output)
-                              ReturnValue 574
+             572:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 573 573 16 16
+             574:     11(int) Load 133(InvocationID)
+             577:    575(ptr) AccessChain 132(patch) 574 221
+             578:   72(fvec3) Load 577
+             579:    575(ptr) AccessChain 560(output) 221
+                              Store 579 578
+             580:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 581 581 16 16
+             582:     11(int) Load 133(InvocationID)
+             583:     50(ptr) AccessChain 132(patch) 582 432
+             584:   48(fvec2) Load 583
+             585:     50(ptr) AccessChain 560(output) 432
+                              Store 585 584
+             586:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 32 587 587 16 16
+             588:121(HSOutput) Load 560(output)
+                              ReturnValue 588
                               FunctionEnd
diff --git a/Test/baseResults/spv.debuginfo.hlsl.tese.out b/Test/baseResults/spv.debuginfo.hlsl.tese.out
index d5b571c..2d4de4e 100644
--- a/Test/baseResults/spv.debuginfo.hlsl.tese.out
+++ b/Test/baseResults/spv.debuginfo.hlsl.tese.out
@@ -1,18 +1,18 @@
 spv.debuginfo.hlsl.tese
 // Module Version 10000
 // Generated by (magic number): 8000b
-// Id's are bound by 461
+// Id's are bound by 477
 
                               Capability Tessellation
                               Extension  "SPV_KHR_non_semantic_info"
                2:             ExtInstImport  "NonSemantic.Shader.DebugInfo.100"
                3:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint TessellationEvaluation 6  "main" 352 367 376 385 392 398 438 442 446 449 452 455 458
+                              EntryPoint TessellationEvaluation 6  "main" 368 383 392 401 408 414 454 458 462 465 468 471 474
                               ExecutionMode 6 Quads
                1:             String  ""
-              10:             String  "float"
-              13:             String  "uint"
+               9:             String  "float"
+              12:             String  "uint"
               26:             String  "TessLevelOuter"
               28:             String  "// OpModuleProcessed auto-map-locations
 // OpModuleProcessed auto-map-bindings
@@ -25,138 +25,139 @@
 "
               32:             String  "TessLevelInner"
               35:             String  "ConstantsHSOutput"
-              49:             String  "Pos"
-              52:             String  "Normal"
-              56:             String  "UV"
-              60:             String  "HSOutput"
-              68:             String  "WorldPos"
-              78:             String  "DSOutput"
-              85:             String  "@main"
-              91:             String  "input"
-              95:             String  "TessCoord"
-              98:             String  "patch"
-             107:             String  "output"
-             118:             String  "uv1"
-             121:             String  "int"
-             137:             String  "uv2"
-             160:             String  "n1"
-             172:             String  "n2"
-             194:             String  "pos1"
-             206:             String  "pos2"
-             218:             String  "pos"
-             230:             String  "type.2d.image"
-             231:             String  "@type.2d.image"
-             236:             String  "displacementMapTexture"
-             241:             String  "type.sampler"
-             242:             String  "@type.sampler"
-             246:             String  "displacementMapSampler"
-             250:             String  "type.sampled.image"
-             251:             String  "@type.sampled.image"
-             265:             String  "modelview"
-             270:             String  "lightPos"
-             274:             String  "frustumPlanes"
-             277:             String  "tessellatedEdgeSize"
-             281:             String  "viewportDim"
-             285:             String  "UBO"
-             288:             String  "ubo"
+              52:             String  "Pos"
+              55:             String  "Normal"
+              59:             String  "UV"
+              63:             String  "HSOutput"
+              71:             String  "WorldPos"
+              81:             String  "DSOutput"
+              89:             String  "@main"
+              95:             String  "input"
+              99:             String  "TessCoord"
+             102:             String  "patch"
+             112:             String  "output"
+             123:             String  "uv1"
+             126:             String  "int"
+             143:             String  "uv2"
+             167:             String  "n1"
+             179:             String  "n2"
+             202:             String  "pos1"
+             214:             String  "pos2"
+             226:             String  "pos"
+             238:             String  "type.2d.image"
+             239:             String  "@type.2d.image"
+             245:             String  "displacementMapTexture"
+             250:             String  "type.sampler"
+             251:             String  "@type.sampler"
+             256:             String  "displacementMapSampler"
+             260:             String  "type.sampled.image"
+             261:             String  "@type.sampled.image"
+             270:             String  "bool"
+             277:             String  "modelview"
+             282:             String  "lightPos"
+             286:             String  "frustumPlanes"
+             289:             String  "tessellatedEdgeSize"
+             293:             String  "viewportDim"
+             297:             String  "UBO"
+             300:             String  "ubo"
                               Name 6  "main"
                               Name 24  "ConstantsHSOutput"
                               MemberName 24(ConstantsHSOutput) 0  "TessLevelOuter"
                               MemberName 24(ConstantsHSOutput) 1  "TessLevelInner"
-                              Name 47  "HSOutput"
-                              MemberName 47(HSOutput) 0  "Pos"
-                              MemberName 47(HSOutput) 1  "Normal"
-                              MemberName 47(HSOutput) 2  "UV"
-                              Name 63  "DSOutput"
-                              MemberName 63(DSOutput) 0  "Pos"
-                              MemberName 63(DSOutput) 1  "Normal"
-                              MemberName 63(DSOutput) 2  "UV"
-                              MemberName 63(DSOutput) 3  "ViewVec"
-                              MemberName 63(DSOutput) 4  "LightVec"
-                              MemberName 63(DSOutput) 5  "EyePos"
-                              MemberName 63(DSOutput) 6  "WorldPos"
-                              Name 84  "@main(struct-ConstantsHSOutput-f1[4]-f1[2]1;vf2;struct-HSOutput-vf4-vf3-vf21[4];"
-                              Name 81  "input"
-                              Name 82  "TessCoord"
-                              Name 83  "patch"
-                              Name 105  "output"
-                              Name 116  "uv1"
-                              Name 135  "uv2"
-                              Name 158  "n1"
-                              Name 170  "n2"
-                              Name 192  "pos1"
-                              Name 204  "pos2"
-                              Name 216  "pos"
-                              Name 234  "displacementMapTexture"
-                              Name 244  "displacementMapSampler"
-                              Name 263  "UBO"
-                              MemberName 263(UBO) 0  "projection"
-                              MemberName 263(UBO) 1  "modelview"
-                              MemberName 263(UBO) 2  "lightPos"
-                              MemberName 263(UBO) 3  "frustumPlanes"
-                              MemberName 263(UBO) 4  "displacementFactor"
-                              MemberName 263(UBO) 5  "tessellationFactor"
-                              MemberName 263(UBO) 6  "viewportDim"
-                              MemberName 263(UBO) 7  "tessellatedEdgeSize"
-                              Name 286  "ubo"
-                              MemberName 286(ubo) 0  "ubo"
-                              Name 291  ""
-                              Name 350  "input"
-                              Name 352  "input.TessLevelOuter"
-                              Name 367  "input.TessLevelInner"
-                              Name 374  "TessCoord"
-                              Name 376  "TessCoord"
-                              Name 382  "patch"
-                              Name 385  "patch.Pos"
-                              Name 392  "patch.Normal"
-                              Name 398  "patch.UV"
-                              Name 430  "flattenTemp"
-                              Name 432  "param"
-                              Name 434  "param"
-                              Name 438  "@entryPointOutput.Pos"
-                              Name 442  "@entryPointOutput.Normal"
-                              Name 446  "@entryPointOutput.UV"
-                              Name 449  "@entryPointOutput.ViewVec"
-                              Name 452  "@entryPointOutput.LightVec"
-                              Name 455  "@entryPointOutput.EyePos"
-                              Name 458  "@entryPointOutput.WorldPos"
-                              Decorate 234(displacementMapTexture) DescriptorSet 0
-                              Decorate 234(displacementMapTexture) Binding 1
-                              Decorate 244(displacementMapSampler) DescriptorSet 0
-                              Decorate 244(displacementMapSampler) Binding 1
-                              Decorate 261 ArrayStride 16
-                              MemberDecorate 263(UBO) 0 RowMajor
-                              MemberDecorate 263(UBO) 0 Offset 0
-                              MemberDecorate 263(UBO) 0 MatrixStride 16
-                              MemberDecorate 263(UBO) 1 RowMajor
-                              MemberDecorate 263(UBO) 1 Offset 64
-                              MemberDecorate 263(UBO) 1 MatrixStride 16
-                              MemberDecorate 263(UBO) 2 Offset 128
-                              MemberDecorate 263(UBO) 3 Offset 144
-                              MemberDecorate 263(UBO) 4 Offset 240
-                              MemberDecorate 263(UBO) 5 Offset 244
-                              MemberDecorate 263(UBO) 6 Offset 248
-                              MemberDecorate 263(UBO) 7 Offset 256
-                              MemberDecorate 286(ubo) 0 Offset 0
-                              Decorate 286(ubo) Block
-                              Decorate 291 DescriptorSet 0
-                              Decorate 291 Binding 0
-                              Decorate 352(input.TessLevelOuter) Patch
-                              Decorate 352(input.TessLevelOuter) BuiltIn TessLevelOuter
-                              Decorate 367(input.TessLevelInner) Patch
-                              Decorate 367(input.TessLevelInner) BuiltIn TessLevelInner
-                              Decorate 376(TessCoord) Patch
-                              Decorate 376(TessCoord) BuiltIn TessCoord
-                              Decorate 385(patch.Pos) BuiltIn Position
-                              Decorate 392(patch.Normal) Location 0
-                              Decorate 398(patch.UV) Location 1
-                              Decorate 438(@entryPointOutput.Pos) BuiltIn Position
-                              Decorate 442(@entryPointOutput.Normal) Location 0
-                              Decorate 446(@entryPointOutput.UV) Location 1
-                              Decorate 449(@entryPointOutput.ViewVec) Location 2
-                              Decorate 452(@entryPointOutput.LightVec) Location 3
-                              Decorate 455(@entryPointOutput.EyePos) Location 4
-                              Decorate 458(@entryPointOutput.WorldPos) Location 5
+                              Name 50  "HSOutput"
+                              MemberName 50(HSOutput) 0  "Pos"
+                              MemberName 50(HSOutput) 1  "Normal"
+                              MemberName 50(HSOutput) 2  "UV"
+                              Name 66  "DSOutput"
+                              MemberName 66(DSOutput) 0  "Pos"
+                              MemberName 66(DSOutput) 1  "Normal"
+                              MemberName 66(DSOutput) 2  "UV"
+                              MemberName 66(DSOutput) 3  "ViewVec"
+                              MemberName 66(DSOutput) 4  "LightVec"
+                              MemberName 66(DSOutput) 5  "EyePos"
+                              MemberName 66(DSOutput) 6  "WorldPos"
+                              Name 87  "@main(struct-ConstantsHSOutput-f1[4]-f1[2]1;vf2;struct-HSOutput-vf4-vf3-vf21[4];"
+                              Name 84  "input"
+                              Name 85  "TessCoord"
+                              Name 86  "patch"
+                              Name 110  "output"
+                              Name 121  "uv1"
+                              Name 141  "uv2"
+                              Name 165  "n1"
+                              Name 177  "n2"
+                              Name 200  "pos1"
+                              Name 212  "pos2"
+                              Name 224  "pos"
+                              Name 243  "displacementMapTexture"
+                              Name 254  "displacementMapSampler"
+                              Name 275  "UBO"
+                              MemberName 275(UBO) 0  "projection"
+                              MemberName 275(UBO) 1  "modelview"
+                              MemberName 275(UBO) 2  "lightPos"
+                              MemberName 275(UBO) 3  "frustumPlanes"
+                              MemberName 275(UBO) 4  "displacementFactor"
+                              MemberName 275(UBO) 5  "tessellationFactor"
+                              MemberName 275(UBO) 6  "viewportDim"
+                              MemberName 275(UBO) 7  "tessellatedEdgeSize"
+                              Name 298  "ubo"
+                              MemberName 298(ubo) 0  "ubo"
+                              Name 304  ""
+                              Name 366  "input"
+                              Name 368  "input.TessLevelOuter"
+                              Name 383  "input.TessLevelInner"
+                              Name 390  "TessCoord"
+                              Name 392  "TessCoord"
+                              Name 398  "patch"
+                              Name 401  "patch.Pos"
+                              Name 408  "patch.Normal"
+                              Name 414  "patch.UV"
+                              Name 446  "flattenTemp"
+                              Name 448  "param"
+                              Name 450  "param"
+                              Name 454  "@entryPointOutput.Pos"
+                              Name 458  "@entryPointOutput.Normal"
+                              Name 462  "@entryPointOutput.UV"
+                              Name 465  "@entryPointOutput.ViewVec"
+                              Name 468  "@entryPointOutput.LightVec"
+                              Name 471  "@entryPointOutput.EyePos"
+                              Name 474  "@entryPointOutput.WorldPos"
+                              Decorate 243(displacementMapTexture) DescriptorSet 0
+                              Decorate 243(displacementMapTexture) Binding 1
+                              Decorate 254(displacementMapSampler) DescriptorSet 0
+                              Decorate 254(displacementMapSampler) Binding 1
+                              Decorate 273 ArrayStride 16
+                              MemberDecorate 275(UBO) 0 RowMajor
+                              MemberDecorate 275(UBO) 0 Offset 0
+                              MemberDecorate 275(UBO) 0 MatrixStride 16
+                              MemberDecorate 275(UBO) 1 RowMajor
+                              MemberDecorate 275(UBO) 1 Offset 64
+                              MemberDecorate 275(UBO) 1 MatrixStride 16
+                              MemberDecorate 275(UBO) 2 Offset 128
+                              MemberDecorate 275(UBO) 3 Offset 144
+                              MemberDecorate 275(UBO) 4 Offset 240
+                              MemberDecorate 275(UBO) 5 Offset 244
+                              MemberDecorate 275(UBO) 6 Offset 248
+                              MemberDecorate 275(UBO) 7 Offset 256
+                              MemberDecorate 298(ubo) 0 Offset 0
+                              Decorate 298(ubo) Block
+                              Decorate 304 DescriptorSet 0
+                              Decorate 304 Binding 0
+                              Decorate 368(input.TessLevelOuter) Patch
+                              Decorate 368(input.TessLevelOuter) BuiltIn TessLevelOuter
+                              Decorate 383(input.TessLevelInner) Patch
+                              Decorate 383(input.TessLevelInner) BuiltIn TessLevelInner
+                              Decorate 392(TessCoord) Patch
+                              Decorate 392(TessCoord) BuiltIn TessCoord
+                              Decorate 401(patch.Pos) BuiltIn Position
+                              Decorate 408(patch.Normal) Location 0
+                              Decorate 414(patch.UV) Location 1
+                              Decorate 454(@entryPointOutput.Pos) BuiltIn Position
+                              Decorate 458(@entryPointOutput.Normal) Location 0
+                              Decorate 462(@entryPointOutput.UV) Location 1
+                              Decorate 465(@entryPointOutput.ViewVec) Location 2
+                              Decorate 468(@entryPointOutput.LightVec) Location 3
+                              Decorate 471(@entryPointOutput.EyePos) Location 4
+                              Decorate 474(@entryPointOutput.WorldPos) Location 5
                4:             TypeVoid
                5:             TypeFunction 4
                8:             TypeFloat 32
@@ -164,15 +165,15 @@
               14:     11(int) Constant 32
               15:     11(int) Constant 6
               16:     11(int) Constant 0
-              12:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 13 14 15 16
+              13:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 12 14 15 16
               17:     11(int) Constant 3
-               9:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 10 14 17 16
+              10:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 9 14 17 16
               18:     11(int) Constant 4
               19:             TypeArray 8(float) 18
-              20:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 9 18
+              20:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 10 18
               21:     11(int) Constant 2
               22:             TypeArray 8(float) 21
-              23:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 9 21
+              23:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 10 21
 24(ConstantsHSOutput):             TypeStruct 19 22
               27:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 1 28
               29:     11(int) Constant 51
@@ -185,442 +186,457 @@
               37:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 36 18 27 38
               34:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 35 36 27 16 16 37 35 16 17 25 31
               39:             TypePointer Function 24(ConstantsHSOutput)
-              40:             TypeVector 8(float) 2
-              41:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 9 21
-              42:             TypePointer Function 40(fvec2)
-              43:             TypeVector 8(float) 4
-              44:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 9 18
-              45:             TypeVector 8(float) 3
-              46:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 9 17
-    47(HSOutput):             TypeStruct 43(fvec4) 45(fvec3) 40(fvec2)
-              50:     11(int) Constant 44
-              48:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 49 44 27 50 14 16 16 17
-              53:     11(int) Constant 45
-              54:     11(int) Constant 35
-              51:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 52 46 27 53 54 16 16 17
-              57:     11(int) Constant 46
-              58:     11(int) Constant 31
-              55:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 56 41 27 57 58 16 16 17
-              59:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 60 36 27 16 16 37 60 16 17 48 51 55
-              61:             TypeArray 47(HSOutput) 18
-              62:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 59 18
-    63(DSOutput):             TypeStruct 43(fvec4) 45(fvec3) 40(fvec2) 45(fvec3) 45(fvec3) 45(fvec3) 45(fvec3)
-              65:     11(int) Constant 57
-              66:     11(int) Constant 13
-              64:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 49 44 27 65 66 16 16 17
-              69:     11(int) Constant 63
-              70:     11(int) Constant 37
-              67:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 68 46 27 69 70 16 16 17
-              72:     11(int) Constant 59
-              71:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 56 41 27 72 58 16 16 17
-              73:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 68 46 27 69 70 16 16 17
-              74:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 68 46 27 69 70 16 16 17
-              75:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 68 46 27 69 70 16 16 17
-              76:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 68 46 27 69 70 16 16 17
-              77:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 78 36 27 16 16 37 78 16 17 64 67 71 73 74 75 76
-              79:             TypeFunction 63(DSOutput) 39(ptr) 42(ptr) 61
-              80:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 17 77 34 41 59
-              86:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 85 80 27 16 16 37 85 17 16
-              90:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 91 34 27 16 16 86 18 36
-              93:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
-              94:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 95 41 27 16 16 86 18 21
-              97:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 98 59 27 16 16 86 18 17
-             103:     11(int) Constant 70
-             104:             TypePointer Function 63(DSOutput)
-             106:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 107 77 27 103 16 86 18
-             109:    8(float) Constant 0
-             110:   43(fvec4) ConstantComposite 109 109 109 109
-             111:   45(fvec3) ConstantComposite 109 109 109
-             112:   40(fvec2) ConstantComposite 109 109
-             113:63(DSOutput) ConstantComposite 110 111 112 111 111 111 111
-             115:     11(int) Constant 71
-             117:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 118 41 27 115 16 86 18
-             120:             TypeInt 32 1
-             122:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 121 14 18 16
-             123:    120(int) Constant 0
-             124:    120(int) Constant 2
-             126:    120(int) Constant 1
-             128:             TypePointer Function 8(float)
-             134:     11(int) Constant 72
-             136:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 137 41 27 134 16 86 18
-             139:    120(int) Constant 3
-             147:     11(int) Constant 73
-             156:     11(int) Constant 75
-             157:             TypePointer Function 45(fvec3)
-             159:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 160 46 27 156 16 86 18
-             169:     11(int) Constant 76
-             171:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 172 46 27 169 16 86 18
-             181:     11(int) Constant 77
-             190:     11(int) Constant 80
-             191:             TypePointer Function 43(fvec4)
-             193:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 194 44 27 190 16 86 18
-             203:     11(int) Constant 81
-             205:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 206 44 27 203 16 86 18
-             215:     11(int) Constant 82
-             217:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 218 44 27 215 16 86 18
-             227:     11(int) Constant 84
-             228:             TypeImage 8(float) 2D sampled format:Unknown
-             232:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 0(DebugInfoNone)
-             229:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 230 16 27 227 16 37 231 232 17
-             233:             TypePointer UniformConstant 228
-234(displacementMapTexture):    233(ptr) Variable UniformConstant
-             237:     11(int) Constant 8
-             235:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 236 229 27 227 16 37 236 234(displacementMapTexture) 237
-             239:             TypeSampler
-             240:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 241 36 27 227 16 37 242 232 17
-             243:             TypePointer UniformConstant 239
-244(displacementMapSampler):    243(ptr) Variable UniformConstant
-             245:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 246 240 27 227 16 37 246 244(displacementMapSampler) 237
-             248:             TypeSampledImage 228
-             249:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 250 16 27 227 16 37 251 232 17
-             257:             TypeMatrix 43(fvec4) 4
-             259:             TypeBool
-             260:   259(bool) ConstantTrue
-             258:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 44 18 260
-             261:             TypeArray 43(fvec4) 15
-             262:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 44 15
-        263(UBO):             TypeStruct 257 257 43(fvec4) 261 8(float) 8(float) 40(fvec2) 8(float)
-             266:     11(int) Constant 29
-             267:     11(int) Constant 20
-             264:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 265 258 27 266 267 16 16 17
-             268:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 265 258 27 266 267 16 16 17
-             271:     11(int) Constant 30
-             272:     11(int) Constant 17
-             269:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 270 44 27 271 272 16 16 17
-             275:     11(int) Constant 22
-             273:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 274 262 27 58 275 16 16 17
-             278:     11(int) Constant 27
-             276:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 277 9 27 54 278 16 16 17
-             279:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 277 9 27 54 278 16 16 17
-             282:     11(int) Constant 34
-             280:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 281 41 27 282 267 16 16 17
-             283:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 277 9 27 54 278 16 16 17
-             284:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 285 36 27 227 16 37 285 16 17 264 268 269 273 276 279 280 283
-        286(ubo):             TypeStruct 263(UBO)
-             287:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 288 284 27 70 70 16 16 17
-             289:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 288 36 27 227 16 37 288 16 17 287
-             290:             TypePointer Uniform 286(ubo)
-             291:    290(ptr) Variable Uniform
-             292:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 1 289 27 227 16 37 1 291 237
-             293:    120(int) Constant 4
-             294:             TypePointer Uniform 8(float)
-             303:     11(int) Constant 86
-             305:             TypePointer Uniform 257
-             314:     11(int) Constant 89
-             320:     11(int) Constant 90
-             321:             TypePointer Uniform 43(fvec4)
-             331:     11(int) Constant 91
-             332:    120(int) Constant 6
-             337:     11(int) Constant 92
-             338:    120(int) Constant 5
-             346:     11(int) Constant 93
-             351:             TypePointer Input 19
-352(input.TessLevelOuter):    351(ptr) Variable Input
-             353:             TypePointer Input 8(float)
-             366:             TypePointer Input 22
-367(input.TessLevelInner):    366(ptr) Variable Input
-             375:             TypePointer Input 45(fvec3)
-  376(TessCoord):    375(ptr) Variable Input
-             381:             TypePointer Function 61
-             383:             TypeArray 43(fvec4) 18
-             384:             TypePointer Input 383
-  385(patch.Pos):    384(ptr) Variable Input
-             386:             TypePointer Input 43(fvec4)
-             390:             TypeArray 45(fvec3) 18
-             391:             TypePointer Input 390
-392(patch.Normal):    391(ptr) Variable Input
-             396:             TypeArray 40(fvec2) 18
-             397:             TypePointer Input 396
-   398(patch.UV):    397(ptr) Variable Input
-             399:             TypePointer Input 40(fvec2)
-             437:             TypePointer Output 43(fvec4)
-438(@entryPointOutput.Pos):    437(ptr) Variable Output
-             441:             TypePointer Output 45(fvec3)
-442(@entryPointOutput.Normal):    441(ptr) Variable Output
-             445:             TypePointer Output 40(fvec2)
-446(@entryPointOutput.UV):    445(ptr) Variable Output
-449(@entryPointOutput.ViewVec):    441(ptr) Variable Output
-452(@entryPointOutput.LightVec):    441(ptr) Variable Output
-455(@entryPointOutput.EyePos):    441(ptr) Variable Output
-458(@entryPointOutput.WorldPos):    441(ptr) Variable Output
+              40:     11(int) Constant 7
+              41:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 34 40 16
+              42:             TypeVector 8(float) 2
+              43:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 10 21
+              44:             TypePointer Function 42(fvec2)
+              45:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 43 40 16
+              46:             TypeVector 8(float) 4
+              47:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 10 18
+              48:             TypeVector 8(float) 3
+              49:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 10 17
+    50(HSOutput):             TypeStruct 46(fvec4) 48(fvec3) 42(fvec2)
+              53:     11(int) Constant 44
+              51:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 52 47 27 53 14 16 16 17
+              56:     11(int) Constant 45
+              57:     11(int) Constant 35
+              54:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 55 49 27 56 57 16 16 17
+              60:     11(int) Constant 46
+              61:     11(int) Constant 31
+              58:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 59 43 27 60 61 16 16 17
+              62:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 63 36 27 16 16 37 63 16 17 51 54 58
+              64:             TypeArray 50(HSOutput) 18
+              65:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 62 18
+    66(DSOutput):             TypeStruct 46(fvec4) 48(fvec3) 42(fvec2) 48(fvec3) 48(fvec3) 48(fvec3) 48(fvec3)
+              68:     11(int) Constant 57
+              69:     11(int) Constant 13
+              67:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 52 47 27 68 69 16 16 17
+              72:     11(int) Constant 63
+              73:     11(int) Constant 37
+              70:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 71 49 27 72 73 16 16 17
+              75:     11(int) Constant 59
+              74:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 59 43 27 75 61 16 16 17
+              76:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 71 49 27 72 73 16 16 17
+              77:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 71 49 27 72 73 16 16 17
+              78:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 71 49 27 72 73 16 16 17
+              79:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 71 49 27 72 73 16 16 17
+              80:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 81 36 27 16 16 37 81 16 17 67 70 74 76 77 78 79
+              82:             TypeFunction 66(DSOutput) 39(ptr) 44(ptr) 64
+              83:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 17 80 34 43 62
+              91:     11(int) Constant 68
+              90:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 89 83 27 91 16 37 89 17 91
+              94:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 95 34 27 91 16 90 18 36
+              97:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
+              98:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 99 43 27 91 16 90 18 21
+             101:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 102 62 27 91 16 90 18 17
+             107:     11(int) Constant 70
+             108:             TypePointer Function 66(DSOutput)
+             109:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 80 40 16
+             111:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 112 80 27 107 16 90 18
+             114:    8(float) Constant 0
+             115:   46(fvec4) ConstantComposite 114 114 114 114
+             116:   48(fvec3) ConstantComposite 114 114 114
+             117:   42(fvec2) ConstantComposite 114 114
+             118:66(DSOutput) ConstantComposite 115 116 117 116 116 116 116
+             120:     11(int) Constant 71
+             122:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 123 43 27 120 16 90 18
+             125:             TypeInt 32 1
+             127:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 126 14 18 16
+             128:    125(int) Constant 0
+             129:    125(int) Constant 2
+             131:    125(int) Constant 1
+             133:             TypePointer Function 8(float)
+             134:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 10 40 16
+             140:     11(int) Constant 72
+             142:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 143 43 27 140 16 90 18
+             145:    125(int) Constant 3
+             153:     11(int) Constant 73
+             162:     11(int) Constant 75
+             163:             TypePointer Function 48(fvec3)
+             164:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 49 40 16
+             166:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 167 49 27 162 16 90 18
+             176:     11(int) Constant 76
+             178:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 179 49 27 176 16 90 18
+             188:     11(int) Constant 77
+             197:     11(int) Constant 80
+             198:             TypePointer Function 46(fvec4)
+             199:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 47 40 16
+             201:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 202 47 27 197 16 90 18
+             211:     11(int) Constant 81
+             213:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 214 47 27 211 16 90 18
+             223:     11(int) Constant 82
+             225:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 226 47 27 223 16 90 18
+             235:     11(int) Constant 84
+             236:             TypeImage 8(float) 2D sampled format:Unknown
+             240:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 0(DebugInfoNone)
+             237:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 238 16 27 235 16 37 239 240 17
+             241:             TypePointer UniformConstant 236
+             242:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 237 16 16
+243(displacementMapTexture):    241(ptr) Variable UniformConstant
+             246:     11(int) Constant 8
+             244:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 245 237 27 235 16 37 245 243(displacementMapTexture) 246
+             248:             TypeSampler
+             249:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 250 36 27 235 16 37 251 240 17
+             252:             TypePointer UniformConstant 248
+             253:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 249 16 16
+254(displacementMapSampler):    252(ptr) Variable UniformConstant
+             255:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 256 249 27 235 16 37 256 254(displacementMapSampler) 246
+             258:             TypeSampledImage 236
+             259:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 260 16 27 235 16 37 261 240 17
+             267:             TypeMatrix 46(fvec4) 4
+             269:             TypeBool
+             271:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 270 14 21 16
+             272:   269(bool) ConstantTrue
+             268:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 47 18 272
+             273:             TypeArray 46(fvec4) 15
+             274:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 47 15
+        275(UBO):             TypeStruct 267 267 46(fvec4) 273 8(float) 8(float) 42(fvec2) 8(float)
+             278:     11(int) Constant 29
+             279:     11(int) Constant 20
+             276:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 277 268 27 278 279 16 16 17
+             280:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 277 268 27 278 279 16 16 17
+             283:     11(int) Constant 30
+             284:     11(int) Constant 17
+             281:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 282 47 27 283 284 16 16 17
+             287:     11(int) Constant 22
+             285:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 286 274 27 61 287 16 16 17
+             290:     11(int) Constant 27
+             288:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 289 10 27 57 290 16 16 17
+             291:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 289 10 27 57 290 16 16 17
+             294:     11(int) Constant 34
+             292:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 293 43 27 294 279 16 16 17
+             295:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 289 10 27 57 290 16 16 17
+             296:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 297 36 27 235 16 37 297 16 17 276 280 281 285 288 291 292 295
+        298(ubo):             TypeStruct 275(UBO)
+             299:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 300 296 27 73 73 16 16 17
+             301:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 300 36 27 235 16 37 300 16 17 299
+             302:             TypePointer Uniform 298(ubo)
+             303:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 301 21 16
+             304:    302(ptr) Variable Uniform
+             305:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 1 301 27 235 16 37 1 304 246
+             306:    125(int) Constant 4
+             307:             TypePointer Uniform 8(float)
+             308:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 10 21 16
+             317:     11(int) Constant 86
+             319:             TypePointer Uniform 267
+             320:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 268 21 16
+             329:     11(int) Constant 89
+             335:     11(int) Constant 90
+             336:             TypePointer Uniform 46(fvec4)
+             337:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 47 21 16
+             347:     11(int) Constant 91
+             348:    125(int) Constant 6
+             353:     11(int) Constant 92
+             354:    125(int) Constant 5
+             362:     11(int) Constant 93
+             367:             TypePointer Input 19
+368(input.TessLevelOuter):    367(ptr) Variable Input
+             369:             TypePointer Input 8(float)
+             382:             TypePointer Input 22
+383(input.TessLevelInner):    382(ptr) Variable Input
+             391:             TypePointer Input 48(fvec3)
+  392(TessCoord):    391(ptr) Variable Input
+             397:             TypePointer Function 64
+             399:             TypeArray 46(fvec4) 18
+             400:             TypePointer Input 399
+  401(patch.Pos):    400(ptr) Variable Input
+             402:             TypePointer Input 46(fvec4)
+             406:             TypeArray 48(fvec3) 18
+             407:             TypePointer Input 406
+408(patch.Normal):    407(ptr) Variable Input
+             412:             TypeArray 42(fvec2) 18
+             413:             TypePointer Input 412
+   414(patch.UV):    413(ptr) Variable Input
+             415:             TypePointer Input 42(fvec2)
+             453:             TypePointer Output 46(fvec4)
+454(@entryPointOutput.Pos):    453(ptr) Variable Output
+             457:             TypePointer Output 48(fvec3)
+458(@entryPointOutput.Normal):    457(ptr) Variable Output
+             461:             TypePointer Output 42(fvec2)
+462(@entryPointOutput.UV):    461(ptr) Variable Output
+465(@entryPointOutput.ViewVec):    457(ptr) Variable Output
+468(@entryPointOutput.LightVec):    457(ptr) Variable Output
+471(@entryPointOutput.EyePos):    457(ptr) Variable Output
+474(@entryPointOutput.WorldPos):    457(ptr) Variable Output
                               Line 1 68 1
          6(main):           4 Function None 5
                7:             Label
-      350(input):     39(ptr) Variable Function
-  374(TessCoord):     42(ptr) Variable Function
-      382(patch):    381(ptr) Variable Function
-430(flattenTemp):    104(ptr) Variable Function
-      432(param):     39(ptr) Variable Function
-      434(param):     42(ptr) Variable Function
+      366(input):     39(ptr) Variable Function
+  390(TessCoord):     44(ptr) Variable Function
+      398(patch):    397(ptr) Variable Function
+446(flattenTemp):    108(ptr) Variable Function
+      448(param):     39(ptr) Variable Function
+      450(param):     44(ptr) Variable Function
                               Line 1 68 0
-             354:    353(ptr) AccessChain 352(input.TessLevelOuter) 123
-             355:    8(float) Load 354
-             356:    128(ptr) AccessChain 350(input) 123 123
-                              Store 356 355
-             357:    353(ptr) AccessChain 352(input.TessLevelOuter) 126
-             358:    8(float) Load 357
-             359:    128(ptr) AccessChain 350(input) 123 126
-                              Store 359 358
-             360:    353(ptr) AccessChain 352(input.TessLevelOuter) 124
-             361:    8(float) Load 360
-             362:    128(ptr) AccessChain 350(input) 123 124
-                              Store 362 361
-             363:    353(ptr) AccessChain 352(input.TessLevelOuter) 139
-             364:    8(float) Load 363
-             365:    128(ptr) AccessChain 350(input) 123 139
-                              Store 365 364
-             368:    353(ptr) AccessChain 367(input.TessLevelInner) 123
-             369:    8(float) Load 368
-             370:    128(ptr) AccessChain 350(input) 126 123
-                              Store 370 369
-             371:    353(ptr) AccessChain 367(input.TessLevelInner) 126
-             372:    8(float) Load 371
-             373:    128(ptr) AccessChain 350(input) 126 126
-                              Store 373 372
-             377:   45(fvec3) Load 376(TessCoord)
-             378:    8(float) CompositeExtract 377 0
-             379:    8(float) CompositeExtract 377 1
-             380:   40(fvec2) CompositeConstruct 378 379
-                              Store 374(TessCoord) 380
-             387:    386(ptr) AccessChain 385(patch.Pos) 123
-             388:   43(fvec4) Load 387
-             389:    191(ptr) AccessChain 382(patch) 123 123
+             370:    369(ptr) AccessChain 368(input.TessLevelOuter) 128
+             371:    8(float) Load 370
+             372:    133(ptr) AccessChain 366(input) 128 128
+                              Store 372 371
+             373:    369(ptr) AccessChain 368(input.TessLevelOuter) 131
+             374:    8(float) Load 373
+             375:    133(ptr) AccessChain 366(input) 128 131
+                              Store 375 374
+             376:    369(ptr) AccessChain 368(input.TessLevelOuter) 129
+             377:    8(float) Load 376
+             378:    133(ptr) AccessChain 366(input) 128 129
+                              Store 378 377
+             379:    369(ptr) AccessChain 368(input.TessLevelOuter) 145
+             380:    8(float) Load 379
+             381:    133(ptr) AccessChain 366(input) 128 145
+                              Store 381 380
+             384:    369(ptr) AccessChain 383(input.TessLevelInner) 128
+             385:    8(float) Load 384
+             386:    133(ptr) AccessChain 366(input) 131 128
+                              Store 386 385
+             387:    369(ptr) AccessChain 383(input.TessLevelInner) 131
+             388:    8(float) Load 387
+             389:    133(ptr) AccessChain 366(input) 131 131
                               Store 389 388
-             393:    375(ptr) AccessChain 392(patch.Normal) 123
-             394:   45(fvec3) Load 393
-             395:    157(ptr) AccessChain 382(patch) 123 126
-                              Store 395 394
-             400:    399(ptr) AccessChain 398(patch.UV) 123
-             401:   40(fvec2) Load 400
-             402:     42(ptr) AccessChain 382(patch) 123 124
-                              Store 402 401
-             403:    386(ptr) AccessChain 385(patch.Pos) 126
-             404:   43(fvec4) Load 403
-             405:    191(ptr) AccessChain 382(patch) 126 123
+             393:   48(fvec3) Load 392(TessCoord)
+             394:    8(float) CompositeExtract 393 0
+             395:    8(float) CompositeExtract 393 1
+             396:   42(fvec2) CompositeConstruct 394 395
+                              Store 390(TessCoord) 396
+             403:    402(ptr) AccessChain 401(patch.Pos) 128
+             404:   46(fvec4) Load 403
+             405:    198(ptr) AccessChain 398(patch) 128 128
                               Store 405 404
-             406:    375(ptr) AccessChain 392(patch.Normal) 126
-             407:   45(fvec3) Load 406
-             408:    157(ptr) AccessChain 382(patch) 126 126
-                              Store 408 407
-             409:    399(ptr) AccessChain 398(patch.UV) 126
-             410:   40(fvec2) Load 409
-             411:     42(ptr) AccessChain 382(patch) 126 124
+             409:    391(ptr) AccessChain 408(patch.Normal) 128
+             410:   48(fvec3) Load 409
+             411:    163(ptr) AccessChain 398(patch) 128 131
                               Store 411 410
-             412:    386(ptr) AccessChain 385(patch.Pos) 124
-             413:   43(fvec4) Load 412
-             414:    191(ptr) AccessChain 382(patch) 124 123
-                              Store 414 413
-             415:    375(ptr) AccessChain 392(patch.Normal) 124
-             416:   45(fvec3) Load 415
-             417:    157(ptr) AccessChain 382(patch) 124 126
-                              Store 417 416
-             418:    399(ptr) AccessChain 398(patch.UV) 124
-             419:   40(fvec2) Load 418
-             420:     42(ptr) AccessChain 382(patch) 124 124
-                              Store 420 419
-             421:    386(ptr) AccessChain 385(patch.Pos) 139
-             422:   43(fvec4) Load 421
-             423:    191(ptr) AccessChain 382(patch) 139 123
-                              Store 423 422
-             424:    375(ptr) AccessChain 392(patch.Normal) 139
-             425:   45(fvec3) Load 424
-             426:    157(ptr) AccessChain 382(patch) 139 126
-                              Store 426 425
-             427:    399(ptr) AccessChain 398(patch.UV) 139
-             428:   40(fvec2) Load 427
-             429:     42(ptr) AccessChain 382(patch) 139 124
-                              Store 429 428
-             431:          61 Load 382(patch)
-             433:24(ConstantsHSOutput) Load 350(input)
-                              Store 432(param) 433
-             435:   40(fvec2) Load 374(TessCoord)
-                              Store 434(param) 435
-             436:63(DSOutput) FunctionCall 84(@main(struct-ConstantsHSOutput-f1[4]-f1[2]1;vf2;struct-HSOutput-vf4-vf3-vf21[4];) 432(param) 434(param) 431
-                              Store 430(flattenTemp) 436
-             439:    191(ptr) AccessChain 430(flattenTemp) 123
-             440:   43(fvec4) Load 439
-                              Store 438(@entryPointOutput.Pos) 440
-             443:    157(ptr) AccessChain 430(flattenTemp) 126
-             444:   45(fvec3) Load 443
-                              Store 442(@entryPointOutput.Normal) 444
-             447:     42(ptr) AccessChain 430(flattenTemp) 124
-             448:   40(fvec2) Load 447
-                              Store 446(@entryPointOutput.UV) 448
-             450:    157(ptr) AccessChain 430(flattenTemp) 139
-             451:   45(fvec3) Load 450
-                              Store 449(@entryPointOutput.ViewVec) 451
-             453:    157(ptr) AccessChain 430(flattenTemp) 293
-             454:   45(fvec3) Load 453
-                              Store 452(@entryPointOutput.LightVec) 454
-             456:    157(ptr) AccessChain 430(flattenTemp) 338
-             457:   45(fvec3) Load 456
-                              Store 455(@entryPointOutput.EyePos) 457
-             459:    157(ptr) AccessChain 430(flattenTemp) 332
-             460:   45(fvec3) Load 459
-                              Store 458(@entryPointOutput.WorldPos) 460
+             416:    415(ptr) AccessChain 414(patch.UV) 128
+             417:   42(fvec2) Load 416
+             418:     44(ptr) AccessChain 398(patch) 128 129
+                              Store 418 417
+             419:    402(ptr) AccessChain 401(patch.Pos) 131
+             420:   46(fvec4) Load 419
+             421:    198(ptr) AccessChain 398(patch) 131 128
+                              Store 421 420
+             422:    391(ptr) AccessChain 408(patch.Normal) 131
+             423:   48(fvec3) Load 422
+             424:    163(ptr) AccessChain 398(patch) 131 131
+                              Store 424 423
+             425:    415(ptr) AccessChain 414(patch.UV) 131
+             426:   42(fvec2) Load 425
+             427:     44(ptr) AccessChain 398(patch) 131 129
+                              Store 427 426
+             428:    402(ptr) AccessChain 401(patch.Pos) 129
+             429:   46(fvec4) Load 428
+             430:    198(ptr) AccessChain 398(patch) 129 128
+                              Store 430 429
+             431:    391(ptr) AccessChain 408(patch.Normal) 129
+             432:   48(fvec3) Load 431
+             433:    163(ptr) AccessChain 398(patch) 129 131
+                              Store 433 432
+             434:    415(ptr) AccessChain 414(patch.UV) 129
+             435:   42(fvec2) Load 434
+             436:     44(ptr) AccessChain 398(patch) 129 129
+                              Store 436 435
+             437:    402(ptr) AccessChain 401(patch.Pos) 145
+             438:   46(fvec4) Load 437
+             439:    198(ptr) AccessChain 398(patch) 145 128
+                              Store 439 438
+             440:    391(ptr) AccessChain 408(patch.Normal) 145
+             441:   48(fvec3) Load 440
+             442:    163(ptr) AccessChain 398(patch) 145 131
+                              Store 442 441
+             443:    415(ptr) AccessChain 414(patch.UV) 145
+             444:   42(fvec2) Load 443
+             445:     44(ptr) AccessChain 398(patch) 145 129
+                              Store 445 444
+             447:          64 Load 398(patch)
+             449:24(ConstantsHSOutput) Load 366(input)
+                              Store 448(param) 449
+             451:   42(fvec2) Load 390(TessCoord)
+                              Store 450(param) 451
+             452:66(DSOutput) FunctionCall 87(@main(struct-ConstantsHSOutput-f1[4]-f1[2]1;vf2;struct-HSOutput-vf4-vf3-vf21[4];) 448(param) 450(param) 447
+                              Store 446(flattenTemp) 452
+             455:    198(ptr) AccessChain 446(flattenTemp) 128
+             456:   46(fvec4) Load 455
+                              Store 454(@entryPointOutput.Pos) 456
+             459:    163(ptr) AccessChain 446(flattenTemp) 131
+             460:   48(fvec3) Load 459
+                              Store 458(@entryPointOutput.Normal) 460
+             463:     44(ptr) AccessChain 446(flattenTemp) 129
+             464:   42(fvec2) Load 463
+                              Store 462(@entryPointOutput.UV) 464
+             466:    163(ptr) AccessChain 446(flattenTemp) 145
+             467:   48(fvec3) Load 466
+                              Store 465(@entryPointOutput.ViewVec) 467
+             469:    163(ptr) AccessChain 446(flattenTemp) 306
+             470:   48(fvec3) Load 469
+                              Store 468(@entryPointOutput.LightVec) 470
+             472:    163(ptr) AccessChain 446(flattenTemp) 354
+             473:   48(fvec3) Load 472
+                              Store 471(@entryPointOutput.EyePos) 473
+             475:    163(ptr) AccessChain 446(flattenTemp) 348
+             476:   48(fvec3) Load 475
+                              Store 474(@entryPointOutput.WorldPos) 476
                               Return
                               FunctionEnd
                               Line 1 68 1
-84(@main(struct-ConstantsHSOutput-f1[4]-f1[2]1;vf2;struct-HSOutput-vf4-vf3-vf21[4];):63(DSOutput) Function None 79
-       81(input):     39(ptr) FunctionParameter
-   82(TessCoord):     42(ptr) FunctionParameter
-       83(patch):          61 FunctionParameter
-              87:             Label
-     105(output):    104(ptr) Variable Function
-        116(uv1):     42(ptr) Variable Function
-        135(uv2):     42(ptr) Variable Function
-         158(n1):    157(ptr) Variable Function
-         170(n2):    157(ptr) Variable Function
-       192(pos1):    191(ptr) Variable Function
-       204(pos2):    191(ptr) Variable Function
-        216(pos):    191(ptr) Variable Function
-              88:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 86
-              89:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 16 16 16 16
-              92:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 90 81(input) 93
-              96:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 94 82(TessCoord) 93
-              99:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 97 83(patch) 93
-             100:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 86 84(@main(struct-ConstantsHSOutput-f1[4]-f1[2]1;vf2;struct-HSOutput-vf4-vf3-vf21[4];)
-             101:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 86
-             102:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 103 103 16 16
-             108:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 106 105(output) 93
-                              Store 105(output) 113
-             114:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 115 115 16 16
-             119:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 117 116(uv1) 93
-             125:   40(fvec2) CompositeExtract 83(patch) 0 2
-             127:   40(fvec2) CompositeExtract 83(patch) 1 2
-             129:    128(ptr) AccessChain 82(TessCoord) 16
-             130:    8(float) Load 129
-             131:   40(fvec2) CompositeConstruct 130 130
-             132:   40(fvec2) ExtInst 3(GLSL.std.450) 46(FMix) 125 127 131
-                              Store 116(uv1) 132
-             133:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 134 134 16 16
-             138:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 136 135(uv2) 93
-             140:   40(fvec2) CompositeExtract 83(patch) 3 2
-             141:   40(fvec2) CompositeExtract 83(patch) 2 2
-             142:    128(ptr) AccessChain 82(TessCoord) 16
-             143:    8(float) Load 142
-             144:   40(fvec2) CompositeConstruct 143 143
-             145:   40(fvec2) ExtInst 3(GLSL.std.450) 46(FMix) 140 141 144
-                              Store 135(uv2) 145
-             146:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 147 147 16 16
-             148:   40(fvec2) Load 116(uv1)
-             149:   40(fvec2) Load 135(uv2)
-             150:    128(ptr) AccessChain 82(TessCoord) 36
-             151:    8(float) Load 150
-             152:   40(fvec2) CompositeConstruct 151 151
-             153:   40(fvec2) ExtInst 3(GLSL.std.450) 46(FMix) 148 149 152
-             154:     42(ptr) AccessChain 105(output) 124
-                              Store 154 153
-             155:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 156 156 16 16
-             161:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 159 158(n1) 93
-             162:   45(fvec3) CompositeExtract 83(patch) 0 1
-             163:   45(fvec3) CompositeExtract 83(patch) 1 1
-             164:    128(ptr) AccessChain 82(TessCoord) 16
-             165:    8(float) Load 164
-             166:   45(fvec3) CompositeConstruct 165 165 165
-             167:   45(fvec3) ExtInst 3(GLSL.std.450) 46(FMix) 162 163 166
-                              Store 158(n1) 167
-             168:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 169 169 16 16
-             173:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 171 170(n2) 93
-             174:   45(fvec3) CompositeExtract 83(patch) 3 1
-             175:   45(fvec3) CompositeExtract 83(patch) 2 1
-             176:    128(ptr) AccessChain 82(TessCoord) 16
-             177:    8(float) Load 176
-             178:   45(fvec3) CompositeConstruct 177 177 177
-             179:   45(fvec3) ExtInst 3(GLSL.std.450) 46(FMix) 174 175 178
-                              Store 170(n2) 179
-             180:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 181 181 16 16
-             182:   45(fvec3) Load 158(n1)
-             183:   45(fvec3) Load 170(n2)
-             184:    128(ptr) AccessChain 82(TessCoord) 36
-             185:    8(float) Load 184
-             186:   45(fvec3) CompositeConstruct 185 185 185
-             187:   45(fvec3) ExtInst 3(GLSL.std.450) 46(FMix) 182 183 186
-             188:    157(ptr) AccessChain 105(output) 126
-                              Store 188 187
-             189:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 190 190 16 16
-             195:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 193 192(pos1) 93
-             196:   43(fvec4) CompositeExtract 83(patch) 0 0
-             197:   43(fvec4) CompositeExtract 83(patch) 1 0
-             198:    128(ptr) AccessChain 82(TessCoord) 16
-             199:    8(float) Load 198
-             200:   43(fvec4) CompositeConstruct 199 199 199 199
-             201:   43(fvec4) ExtInst 3(GLSL.std.450) 46(FMix) 196 197 200
-                              Store 192(pos1) 201
-             202:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 203 203 16 16
-             207:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 205 204(pos2) 93
-             208:   43(fvec4) CompositeExtract 83(patch) 3 0
-             209:   43(fvec4) CompositeExtract 83(patch) 2 0
-             210:    128(ptr) AccessChain 82(TessCoord) 16
-             211:    8(float) Load 210
-             212:   43(fvec4) CompositeConstruct 211 211 211 211
-             213:   43(fvec4) ExtInst 3(GLSL.std.450) 46(FMix) 208 209 212
-                              Store 204(pos2) 213
-             214:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 215 215 16 16
-             219:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 217 216(pos) 93
-             220:   43(fvec4) Load 192(pos1)
-             221:   43(fvec4) Load 204(pos2)
-             222:    128(ptr) AccessChain 82(TessCoord) 36
-             223:    8(float) Load 222
-             224:   43(fvec4) CompositeConstruct 223 223 223 223
-             225:   43(fvec4) ExtInst 3(GLSL.std.450) 46(FMix) 220 221 224
-                              Store 216(pos) 225
-             226:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 227 227 16 16
-             238:         228 Load 234(displacementMapTexture)
-             247:         239 Load 244(displacementMapSampler)
-             252:         248 SampledImage 238 247
-             253:     42(ptr) AccessChain 105(output) 124
-             254:   40(fvec2) Load 253
-             255:   43(fvec4) ImageSampleExplicitLod 252 254 Lod 109
-             256:    8(float) CompositeExtract 255 0
-             295:    294(ptr) AccessChain 291 123 293
-             296:    8(float) Load 295
-             297:    8(float) FMul 256 296
-             298:    128(ptr) AccessChain 216(pos) 36
-             299:    8(float) Load 298
-             300:    8(float) FSub 299 297
-             301:    128(ptr) AccessChain 216(pos) 36
-                              Store 301 300
-             302:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 303 303 16 16
-             304:   43(fvec4) Load 216(pos)
-             306:    305(ptr) AccessChain 291 123 126
-             307:         257 Load 306
-             308:   43(fvec4) VectorTimesMatrix 304 307
-             309:    305(ptr) AccessChain 291 123 123
-             310:         257 Load 309
-             311:   43(fvec4) VectorTimesMatrix 308 310
-             312:    191(ptr) AccessChain 105(output) 123
-                              Store 312 311
-             313:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 314 314 16 16
-             315:   43(fvec4) Load 216(pos)
-             316:   45(fvec3) VectorShuffle 315 315 0 1 2
-             317:   45(fvec3) FNegate 316
-             318:    157(ptr) AccessChain 105(output) 139
-                              Store 318 317
-             319:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 320 320 16 16
-             322:    321(ptr) AccessChain 291 123 124
-             323:   43(fvec4) Load 322
-             324:   45(fvec3) VectorShuffle 323 323 0 1 2
-             325:    157(ptr) AccessChain 105(output) 139
-             326:   45(fvec3) Load 325
-             327:   45(fvec3) FAdd 324 326
-             328:   45(fvec3) ExtInst 3(GLSL.std.450) 69(Normalize) 327
-             329:    157(ptr) AccessChain 105(output) 293
-                              Store 329 328
-             330:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 331 331 16 16
-             333:   43(fvec4) Load 216(pos)
-             334:   45(fvec3) VectorShuffle 333 333 0 1 2
-             335:    157(ptr) AccessChain 105(output) 332
-                              Store 335 334
-             336:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 337 337 16 16
-             339:   43(fvec4) Load 216(pos)
-             340:    305(ptr) AccessChain 291 123 126
-             341:         257 Load 340
-             342:   43(fvec4) VectorTimesMatrix 339 341
-             343:   45(fvec3) VectorShuffle 342 342 0 1 2
-             344:    157(ptr) AccessChain 105(output) 338
-                              Store 344 343
-             345:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 346 346 16 16
-             347:63(DSOutput) Load 105(output)
-                              ReturnValue 347
+87(@main(struct-ConstantsHSOutput-f1[4]-f1[2]1;vf2;struct-HSOutput-vf4-vf3-vf21[4];):66(DSOutput) Function None 82
+       84(input):     39(ptr) FunctionParameter
+   85(TessCoord):     44(ptr) FunctionParameter
+       86(patch):          64 FunctionParameter
+              88:             Label
+     110(output):    108(ptr) Variable Function
+        121(uv1):     44(ptr) Variable Function
+        141(uv2):     44(ptr) Variable Function
+         165(n1):    163(ptr) Variable Function
+         177(n2):    163(ptr) Variable Function
+       200(pos1):    198(ptr) Variable Function
+       212(pos2):    198(ptr) Variable Function
+        224(pos):    198(ptr) Variable Function
+              92:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 90
+              93:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 91 91 16 16
+              96:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 94 84(input) 97
+             100:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 98 85(TessCoord) 97
+             103:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 101 86(patch) 97
+             104:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 90 87(@main(struct-ConstantsHSOutput-f1[4]-f1[2]1;vf2;struct-HSOutput-vf4-vf3-vf21[4];)
+             105:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 90
+             106:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 107 107 16 16
+             113:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 111 110(output) 97
+                              Store 110(output) 118
+             119:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 120 120 16 16
+             124:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 122 121(uv1) 97
+             130:   42(fvec2) CompositeExtract 86(patch) 0 2
+             132:   42(fvec2) CompositeExtract 86(patch) 1 2
+             135:    133(ptr) AccessChain 85(TessCoord) 16
+             136:    8(float) Load 135
+             137:   42(fvec2) CompositeConstruct 136 136
+             138:   42(fvec2) ExtInst 3(GLSL.std.450) 46(FMix) 130 132 137
+                              Store 121(uv1) 138
+             139:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 140 140 16 16
+             144:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 142 141(uv2) 97
+             146:   42(fvec2) CompositeExtract 86(patch) 3 2
+             147:   42(fvec2) CompositeExtract 86(patch) 2 2
+             148:    133(ptr) AccessChain 85(TessCoord) 16
+             149:    8(float) Load 148
+             150:   42(fvec2) CompositeConstruct 149 149
+             151:   42(fvec2) ExtInst 3(GLSL.std.450) 46(FMix) 146 147 150
+                              Store 141(uv2) 151
+             152:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 153 153 16 16
+             154:   42(fvec2) Load 121(uv1)
+             155:   42(fvec2) Load 141(uv2)
+             156:    133(ptr) AccessChain 85(TessCoord) 36
+             157:    8(float) Load 156
+             158:   42(fvec2) CompositeConstruct 157 157
+             159:   42(fvec2) ExtInst 3(GLSL.std.450) 46(FMix) 154 155 158
+             160:     44(ptr) AccessChain 110(output) 129
+                              Store 160 159
+             161:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 162 162 16 16
+             168:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 166 165(n1) 97
+             169:   48(fvec3) CompositeExtract 86(patch) 0 1
+             170:   48(fvec3) CompositeExtract 86(patch) 1 1
+             171:    133(ptr) AccessChain 85(TessCoord) 16
+             172:    8(float) Load 171
+             173:   48(fvec3) CompositeConstruct 172 172 172
+             174:   48(fvec3) ExtInst 3(GLSL.std.450) 46(FMix) 169 170 173
+                              Store 165(n1) 174
+             175:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 176 176 16 16
+             180:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 178 177(n2) 97
+             181:   48(fvec3) CompositeExtract 86(patch) 3 1
+             182:   48(fvec3) CompositeExtract 86(patch) 2 1
+             183:    133(ptr) AccessChain 85(TessCoord) 16
+             184:    8(float) Load 183
+             185:   48(fvec3) CompositeConstruct 184 184 184
+             186:   48(fvec3) ExtInst 3(GLSL.std.450) 46(FMix) 181 182 185
+                              Store 177(n2) 186
+             187:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 188 188 16 16
+             189:   48(fvec3) Load 165(n1)
+             190:   48(fvec3) Load 177(n2)
+             191:    133(ptr) AccessChain 85(TessCoord) 36
+             192:    8(float) Load 191
+             193:   48(fvec3) CompositeConstruct 192 192 192
+             194:   48(fvec3) ExtInst 3(GLSL.std.450) 46(FMix) 189 190 193
+             195:    163(ptr) AccessChain 110(output) 131
+                              Store 195 194
+             196:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 197 197 16 16
+             203:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 201 200(pos1) 97
+             204:   46(fvec4) CompositeExtract 86(patch) 0 0
+             205:   46(fvec4) CompositeExtract 86(patch) 1 0
+             206:    133(ptr) AccessChain 85(TessCoord) 16
+             207:    8(float) Load 206
+             208:   46(fvec4) CompositeConstruct 207 207 207 207
+             209:   46(fvec4) ExtInst 3(GLSL.std.450) 46(FMix) 204 205 208
+                              Store 200(pos1) 209
+             210:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 211 211 16 16
+             215:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 213 212(pos2) 97
+             216:   46(fvec4) CompositeExtract 86(patch) 3 0
+             217:   46(fvec4) CompositeExtract 86(patch) 2 0
+             218:    133(ptr) AccessChain 85(TessCoord) 16
+             219:    8(float) Load 218
+             220:   46(fvec4) CompositeConstruct 219 219 219 219
+             221:   46(fvec4) ExtInst 3(GLSL.std.450) 46(FMix) 216 217 220
+                              Store 212(pos2) 221
+             222:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 223 223 16 16
+             227:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 225 224(pos) 97
+             228:   46(fvec4) Load 200(pos1)
+             229:   46(fvec4) Load 212(pos2)
+             230:    133(ptr) AccessChain 85(TessCoord) 36
+             231:    8(float) Load 230
+             232:   46(fvec4) CompositeConstruct 231 231 231 231
+             233:   46(fvec4) ExtInst 3(GLSL.std.450) 46(FMix) 228 229 232
+                              Store 224(pos) 233
+             234:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 235 235 16 16
+             247:         236 Load 243(displacementMapTexture)
+             257:         248 Load 254(displacementMapSampler)
+             262:         258 SampledImage 247 257
+             263:     44(ptr) AccessChain 110(output) 129
+             264:   42(fvec2) Load 263
+             265:   46(fvec4) ImageSampleExplicitLod 262 264 Lod 114
+             266:    8(float) CompositeExtract 265 0
+             309:    307(ptr) AccessChain 304 128 306
+             310:    8(float) Load 309
+             311:    8(float) FMul 266 310
+             312:    133(ptr) AccessChain 224(pos) 36
+             313:    8(float) Load 312
+             314:    8(float) FSub 313 311
+             315:    133(ptr) AccessChain 224(pos) 36
+                              Store 315 314
+             316:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 317 317 16 16
+             318:   46(fvec4) Load 224(pos)
+             321:    319(ptr) AccessChain 304 128 131
+             322:         267 Load 321
+             323:   46(fvec4) VectorTimesMatrix 318 322
+             324:    319(ptr) AccessChain 304 128 128
+             325:         267 Load 324
+             326:   46(fvec4) VectorTimesMatrix 323 325
+             327:    198(ptr) AccessChain 110(output) 128
+                              Store 327 326
+             328:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 329 329 16 16
+             330:   46(fvec4) Load 224(pos)
+             331:   48(fvec3) VectorShuffle 330 330 0 1 2
+             332:   48(fvec3) FNegate 331
+             333:    163(ptr) AccessChain 110(output) 145
+                              Store 333 332
+             334:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 335 335 16 16
+             338:    336(ptr) AccessChain 304 128 129
+             339:   46(fvec4) Load 338
+             340:   48(fvec3) VectorShuffle 339 339 0 1 2
+             341:    163(ptr) AccessChain 110(output) 145
+             342:   48(fvec3) Load 341
+             343:   48(fvec3) FAdd 340 342
+             344:   48(fvec3) ExtInst 3(GLSL.std.450) 69(Normalize) 343
+             345:    163(ptr) AccessChain 110(output) 306
+                              Store 345 344
+             346:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 347 347 16 16
+             349:   46(fvec4) Load 224(pos)
+             350:   48(fvec3) VectorShuffle 349 349 0 1 2
+             351:    163(ptr) AccessChain 110(output) 348
+                              Store 351 350
+             352:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 353 353 16 16
+             355:   46(fvec4) Load 224(pos)
+             356:    319(ptr) AccessChain 304 128 131
+             357:         267 Load 356
+             358:   46(fvec4) VectorTimesMatrix 355 357
+             359:   48(fvec3) VectorShuffle 358 358 0 1 2
+             360:    163(ptr) AccessChain 110(output) 354
+                              Store 360 359
+             361:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 27 362 362 16 16
+             363:66(DSOutput) Load 110(output)
+                              ReturnValue 363
                               FunctionEnd
diff --git a/Test/baseResults/spv.debuginfo.hlsl.vert.out b/Test/baseResults/spv.debuginfo.hlsl.vert.out
index 2fa1774..8c08100 100644
--- a/Test/baseResults/spv.debuginfo.hlsl.vert.out
+++ b/Test/baseResults/spv.debuginfo.hlsl.vert.out
@@ -1,17 +1,17 @@
 spv.debuginfo.hlsl.vert
 // Module Version 10000
 // Generated by (magic number): 8000b
-// Id's are bound by 495
+// Id's are bound by 512
 
                               Capability Shader
                               Extension  "SPV_KHR_non_semantic_info"
                2:             ExtInstImport  "NonSemantic.Shader.DebugInfo.100"
                3:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Vertex 6  "main" 444 447 451 454 457 460 464 468 476 480 483 486 489 492
+                              EntryPoint Vertex 6  "main" 461 464 468 471 474 477 481 485 493 497 500 503 506 509
                1:             String  ""
-              10:             String  "float"
-              13:             String  "uint"
+               9:             String  "float"
+              12:             String  "uint"
               24:             String  "int"
               29:             String  "instanceRot"
               31:             String  "// OpModuleProcessed auto-map-locations
@@ -27,27 +27,28 @@
               43:             String  "instanceScale"
               47:             String  "instanceTexIndex"
               51:             String  "VSInput"
-              60:             String  "Pos"
-              64:             String  "LightVec"
-              71:             String  "VSOutput"
-              76:             String  "@main"
-              82:             String  "input"
-              92:             String  "output"
-             125:             String  "s"
-             136:             String  "modelview"
-             141:             String  "lightPos"
-             145:             String  "globSpeed"
-             149:             String  "UBO"
-             152:             String  "ubo"
-             169:             String  "c"
-             184:             String  "mx"
-             219:             String  "my"
-             253:             String  "mz"
-             273:             String  "rotMat"
-             302:             String  "gRotMat"
-             329:             String  "locPos"
-             343:             String  "pos"
-             408:             String  "lPos"
+              62:             String  "Pos"
+              66:             String  "LightVec"
+              73:             String  "VSOutput"
+              79:             String  "@main"
+              85:             String  "input"
+              96:             String  "output"
+             133:             String  "s"
+             141:             String  "bool"
+             146:             String  "modelview"
+             151:             String  "lightPos"
+             155:             String  "globSpeed"
+             159:             String  "UBO"
+             162:             String  "ubo"
+             181:             String  "c"
+             197:             String  "mx"
+             232:             String  "my"
+             266:             String  "mz"
+             286:             String  "rotMat"
+             316:             String  "gRotMat"
+             344:             String  "locPos"
+             358:             String  "pos"
+             424:             String  "lPos"
                               Name 6  "main"
                               Name 27  "VSInput"
                               MemberName 27(VSInput) 0  "Pos"
@@ -58,79 +59,79 @@
                               MemberName 27(VSInput) 5  "instanceRot"
                               MemberName 27(VSInput) 6  "instanceScale"
                               MemberName 27(VSInput) 7  "instanceTexIndex"
-                              Name 58  "VSOutput"
-                              MemberName 58(VSOutput) 0  "Pos"
-                              MemberName 58(VSOutput) 1  "Normal"
-                              MemberName 58(VSOutput) 2  "Color"
-                              MemberName 58(VSOutput) 3  "UV"
-                              MemberName 58(VSOutput) 4  "ViewVec"
-                              MemberName 58(VSOutput) 5  "LightVec"
-                              Name 75  "@main(struct-VSInput-vf3-vf3-vf2-vf3-vf3-vf3-f1-i11;"
-                              Name 74  "input"
-                              Name 90  "output"
-                              Name 123  "s"
-                              Name 134  "UBO"
-                              MemberName 134(UBO) 0  "projection"
-                              MemberName 134(UBO) 1  "modelview"
-                              MemberName 134(UBO) 2  "lightPos"
-                              MemberName 134(UBO) 3  "locSpeed"
-                              MemberName 134(UBO) 4  "globSpeed"
-                              Name 150  "ubo"
-                              MemberName 150(ubo) 0  "ubo"
-                              Name 156  ""
-                              Name 167  "c"
-                              Name 182  "mx"
-                              Name 217  "my"
-                              Name 251  "mz"
-                              Name 271  "rotMat"
-                              Name 300  "gRotMat"
-                              Name 327  "locPos"
-                              Name 341  "pos"
-                              Name 406  "lPos"
-                              Name 442  "input"
-                              Name 444  "input.Pos"
-                              Name 447  "input.Normal"
-                              Name 451  "input.UV"
-                              Name 454  "input.Color"
-                              Name 457  "input.instancePos"
-                              Name 460  "input.instanceRot"
-                              Name 464  "input.instanceScale"
-                              Name 468  "input.instanceTexIndex"
-                              Name 471  "flattenTemp"
-                              Name 472  "param"
-                              Name 476  "@entryPointOutput.Pos"
-                              Name 480  "@entryPointOutput.Normal"
-                              Name 483  "@entryPointOutput.Color"
-                              Name 486  "@entryPointOutput.UV"
-                              Name 489  "@entryPointOutput.ViewVec"
-                              Name 492  "@entryPointOutput.LightVec"
-                              MemberDecorate 134(UBO) 0 RowMajor
-                              MemberDecorate 134(UBO) 0 Offset 0
-                              MemberDecorate 134(UBO) 0 MatrixStride 16
-                              MemberDecorate 134(UBO) 1 RowMajor
-                              MemberDecorate 134(UBO) 1 Offset 64
-                              MemberDecorate 134(UBO) 1 MatrixStride 16
-                              MemberDecorate 134(UBO) 2 Offset 128
-                              MemberDecorate 134(UBO) 3 Offset 144
-                              MemberDecorate 134(UBO) 4 Offset 148
-                              MemberDecorate 150(ubo) 0 Offset 0
-                              Decorate 150(ubo) Block
-                              Decorate 156 DescriptorSet 0
-                              Decorate 156 Binding 0
-                              Decorate 444(input.Pos) Location 0
-                              Decorate 447(input.Normal) Location 1
-                              Decorate 451(input.UV) Location 2
-                              Decorate 454(input.Color) Location 3
-                              Decorate 457(input.instancePos) Location 4
-                              Decorate 460(input.instanceRot) Location 5
-                              Decorate 464(input.instanceScale) Location 6
-                              Decorate 468(input.instanceTexIndex) Location 7
-                              Decorate 476(@entryPointOutput.Pos) BuiltIn Position
-                              Decorate 480(@entryPointOutput.Normal) Location 0
-                              Decorate 483(@entryPointOutput.Color) Location 1
-                              Decorate 486(@entryPointOutput.UV) Location 2
-                              Decorate 489(@entryPointOutput.ViewVec) Location 3
-                              Decorate 492(@entryPointOutput.LightVec) Location 4
+                              Name 60  "VSOutput"
+                              MemberName 60(VSOutput) 0  "Pos"
+                              MemberName 60(VSOutput) 1  "Normal"
+                              MemberName 60(VSOutput) 2  "Color"
+                              MemberName 60(VSOutput) 3  "UV"
+                              MemberName 60(VSOutput) 4  "ViewVec"
+                              MemberName 60(VSOutput) 5  "LightVec"
+                              Name 77  "@main(struct-VSInput-vf3-vf3-vf2-vf3-vf3-vf3-f1-i11;"
+                              Name 76  "input"
+                              Name 94  "output"
+                              Name 131  "s"
+                              Name 144  "UBO"
+                              MemberName 144(UBO) 0  "projection"
+                              MemberName 144(UBO) 1  "modelview"
+                              MemberName 144(UBO) 2  "lightPos"
+                              MemberName 144(UBO) 3  "locSpeed"
+                              MemberName 144(UBO) 4  "globSpeed"
+                              Name 160  "ubo"
+                              MemberName 160(ubo) 0  "ubo"
+                              Name 167  ""
+                              Name 179  "c"
+                              Name 195  "mx"
+                              Name 230  "my"
+                              Name 264  "mz"
+                              Name 284  "rotMat"
+                              Name 314  "gRotMat"
+                              Name 342  "locPos"
+                              Name 356  "pos"
+                              Name 422  "lPos"
+                              Name 459  "input"
+                              Name 461  "input.Pos"
+                              Name 464  "input.Normal"
+                              Name 468  "input.UV"
+                              Name 471  "input.Color"
+                              Name 474  "input.instancePos"
+                              Name 477  "input.instanceRot"
+                              Name 481  "input.instanceScale"
+                              Name 485  "input.instanceTexIndex"
+                              Name 488  "flattenTemp"
+                              Name 489  "param"
+                              Name 493  "@entryPointOutput.Pos"
+                              Name 497  "@entryPointOutput.Normal"
+                              Name 500  "@entryPointOutput.Color"
+                              Name 503  "@entryPointOutput.UV"
+                              Name 506  "@entryPointOutput.ViewVec"
+                              Name 509  "@entryPointOutput.LightVec"
+                              MemberDecorate 144(UBO) 0 RowMajor
+                              MemberDecorate 144(UBO) 0 Offset 0
+                              MemberDecorate 144(UBO) 0 MatrixStride 16
+                              MemberDecorate 144(UBO) 1 RowMajor
+                              MemberDecorate 144(UBO) 1 Offset 64
+                              MemberDecorate 144(UBO) 1 MatrixStride 16
+                              MemberDecorate 144(UBO) 2 Offset 128
+                              MemberDecorate 144(UBO) 3 Offset 144
+                              MemberDecorate 144(UBO) 4 Offset 148
+                              MemberDecorate 160(ubo) 0 Offset 0
+                              Decorate 160(ubo) Block
+                              Decorate 167 DescriptorSet 0
+                              Decorate 167 Binding 0
+                              Decorate 461(input.Pos) Location 0
+                              Decorate 464(input.Normal) Location 1
+                              Decorate 468(input.UV) Location 2
+                              Decorate 471(input.Color) Location 3
+                              Decorate 474(input.instancePos) Location 4
+                              Decorate 477(input.instanceRot) Location 5
+                              Decorate 481(input.instanceScale) Location 6
+                              Decorate 485(input.instanceTexIndex) Location 7
+                              Decorate 493(@entryPointOutput.Pos) BuiltIn Position
+                              Decorate 497(@entryPointOutput.Normal) Location 0
+                              Decorate 500(@entryPointOutput.Color) Location 1
+                              Decorate 503(@entryPointOutput.UV) Location 2
+                              Decorate 506(@entryPointOutput.ViewVec) Location 3
+                              Decorate 509(@entryPointOutput.LightVec) Location 4
                4:             TypeVoid
                5:             TypeFunction 4
                8:             TypeFloat 32
@@ -138,14 +139,14 @@
               14:     11(int) Constant 32
               15:     11(int) Constant 6
               16:     11(int) Constant 0
-              12:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 13 14 15 16
+              13:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 12 14 15 16
               17:     11(int) Constant 3
-               9:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 10 14 17 16
+              10:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 9 14 17 16
               18:             TypeVector 8(float) 3
-              19:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 9 17
+              19:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 10 17
               20:             TypeVector 8(float) 2
               21:     11(int) Constant 2
-              22:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 9 21
+              22:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 10 21
               23:             TypeInt 32 1
               26:     11(int) Constant 4
               25:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 24 14 26 16
@@ -163,7 +164,7 @@
               41:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 29 19 30 32 33 16 16 17
               44:     11(int) Constant 36
               45:     11(int) Constant 41
-              42:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 43 9 30 44 45 16 16 17
+              42:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 43 10 30 44 45 16 16 17
               48:     11(int) Constant 37
               49:     11(int) Constant 42
               46:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 47 25 30 48 49 16 16 17
@@ -172,471 +173,487 @@
               53:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 52 26 30 54
               50:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 51 52 30 16 16 53 51 16 17 28 34 35 39 40 41 42 46
               55:             TypePointer Function 27(VSInput)
-              56:             TypeVector 8(float) 4
-              57:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 9 26
-    58(VSOutput):             TypeStruct 56(fvec4) 18(fvec3) 18(fvec3) 18(fvec3) 18(fvec3) 18(fvec3)
-              61:     11(int) Constant 53
-              62:     11(int) Constant 13
-              59:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 60 57 30 61 62 16 16 17
-              65:     11(int) Constant 58
-              63:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 64 19 30 65 48 16 16 17
-              66:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 64 19 30 65 48 16 16 17
-              67:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 64 19 30 65 48 16 16 17
-              68:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 64 19 30 65 48 16 16 17
-              69:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 64 19 30 65 48 16 16 17
-              70:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 71 52 30 16 16 53 71 16 17 59 63 66 67 68 69
-              72:             TypeFunction 58(VSOutput) 55(ptr)
-              73:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 17 70 50
-              77:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 76 73 30 16 16 53 76 17 16
-              81:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 82 50 30 16 16 77 26 52
-              84:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
-              88:     11(int) Constant 63
-              89:             TypePointer Function 58(VSOutput)
-              91:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 92 70 30 88 16 77 26
-              94:    8(float) Constant 0
-              95:   56(fvec4) ConstantComposite 94 94 94 94
-              96:   18(fvec3) ConstantComposite 94 94 94
-              97:58(VSOutput) ConstantComposite 95 96 96 96 96 96
-              99:     11(int) Constant 64
-             100:     23(int) Constant 2
-             101:     23(int) Constant 3
-             102:             TypePointer Function 18(fvec3)
-             107:     11(int) Constant 65
-             108:             TypePointer Function 20(fvec2)
-             111:     23(int) Constant 7
-             112:             TypePointer Function 23(int)
-             121:     11(int) Constant 68
-             122:             TypePointer Function 8(float)
-             124:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 125 9 30 121 16 77 26
-             127:     23(int) Constant 5
-             130:             TypeMatrix 56(fvec4) 4
-             132:             TypeBool
-             133:   132(bool) ConstantTrue
-             131:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 57 26 133
-        134(UBO):             TypeStruct 130 130 56(fvec4) 8(float) 8(float)
-             137:     11(int) Constant 43
-             138:     11(int) Constant 20
-             135:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 136 131 30 137 138 16 16 17
-             139:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 136 131 30 137 138 16 16 17
-             142:     11(int) Constant 44
-             143:     11(int) Constant 17
-             140:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 141 57 30 142 143 16 16 17
-             146:     11(int) Constant 46
-             144:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 145 9 30 146 143 16 16 17
-             147:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 145 9 30 146 143 16 16 17
-             148:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 149 52 30 121 16 53 149 16 17 135 139 140 144 147
-        150(ubo):             TypeStruct 134(UBO)
-             153:     11(int) Constant 49
-             151:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 152 148 30 153 48 16 16 17
-             154:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 152 52 30 121 16 53 152 16 17 151
-             155:             TypePointer Uniform 150(ubo)
-             156:    155(ptr) Variable Uniform
-             158:     11(int) Constant 8
-             157:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 1 154 30 121 16 53 1 156 158
-             159:     23(int) Constant 0
-             160:             TypePointer Uniform 8(float)
-             166:     11(int) Constant 69
-             168:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 169 9 30 166 16 77 26
-             178:     11(int) Constant 71
-             179:             TypeMatrix 18(fvec3) 3
-             180:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 19 17 133
-             181:             TypePointer Function 179
-             183:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 184 180 30 178 16 77 26
-             190:     11(int) Constant 72
-             193:    8(float) Constant 1065353216
-             200:     11(int) Constant 76
-             208:     11(int) Constant 77
-             216:     11(int) Constant 79
-             218:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 219 180 30 216 16 77 26
-             225:     11(int) Constant 81
-             234:     11(int) Constant 84
-             242:     11(int) Constant 85
-             250:     11(int) Constant 87
-             252:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 253 180 30 250 16 77 26
-             256:     11(int) Constant 88
-             261:     11(int) Constant 89
-             270:     11(int) Constant 91
-             272:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 273 180 30 270 16 77 26
-             281:     11(int) Constant 94
-             284:     23(int) Constant 4
-             290:     11(int) Constant 95
-             298:     11(int) Constant 96
-             299:             TypePointer Function 130
-             301:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 302 131 30 298 16 77 26
-             308:             TypePointer Function 56(fvec4)
-             311:     11(int) Constant 97
-             312:     23(int) Constant 1
-             313:   56(fvec4) ConstantComposite 94 193 94 94
-             316:     11(int) Constant 98
-             322:     11(int) Constant 99
-             323:   56(fvec4) ConstantComposite 94 94 94 193
-             326:     11(int) Constant 101
-             328:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 329 57 30 326 16 77 26
-             340:     11(int) Constant 102
-             342:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 343 57 30 340 16 77 26
-             347:     23(int) Constant 6
-             359:     11(int) Constant 104
-             363:             TypePointer Uniform 130
-             372:     11(int) Constant 105
-             391:     11(int) Constant 107
-             405:     11(int) Constant 108
-             407:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 408 19 30 405 16 77 26
-             410:             TypePointer Uniform 56(fvec4)
-             425:     11(int) Constant 109
-             432:     11(int) Constant 110
-             438:     11(int) Constant 111
-             443:             TypePointer Input 18(fvec3)
-  444(input.Pos):    443(ptr) Variable Input
-447(input.Normal):    443(ptr) Variable Input
-             450:             TypePointer Input 20(fvec2)
-   451(input.UV):    450(ptr) Variable Input
-454(input.Color):    443(ptr) Variable Input
-457(input.instancePos):    443(ptr) Variable Input
-460(input.instanceRot):    443(ptr) Variable Input
-             463:             TypePointer Input 8(float)
-464(input.instanceScale):    463(ptr) Variable Input
-             467:             TypePointer Input 23(int)
-468(input.instanceTexIndex):    467(ptr) Variable Input
-             475:             TypePointer Output 56(fvec4)
-476(@entryPointOutput.Pos):    475(ptr) Variable Output
-             479:             TypePointer Output 18(fvec3)
-480(@entryPointOutput.Normal):    479(ptr) Variable Output
-483(@entryPointOutput.Color):    479(ptr) Variable Output
-486(@entryPointOutput.UV):    479(ptr) Variable Output
-489(@entryPointOutput.ViewVec):    479(ptr) Variable Output
-492(@entryPointOutput.LightVec):    479(ptr) Variable Output
+              56:     11(int) Constant 7
+              57:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 50 56 16
+              58:             TypeVector 8(float) 4
+              59:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 10 26
+    60(VSOutput):             TypeStruct 58(fvec4) 18(fvec3) 18(fvec3) 18(fvec3) 18(fvec3) 18(fvec3)
+              63:     11(int) Constant 53
+              64:     11(int) Constant 13
+              61:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 62 59 30 63 64 16 16 17
+              67:     11(int) Constant 58
+              65:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 66 19 30 67 48 16 16 17
+              68:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 66 19 30 67 48 16 16 17
+              69:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 66 19 30 67 48 16 16 17
+              70:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 66 19 30 67 48 16 16 17
+              71:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 66 19 30 67 48 16 16 17
+              72:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 73 52 30 16 16 53 73 16 17 61 65 68 69 70 71
+              74:             TypeFunction 60(VSOutput) 55(ptr)
+              75:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 17 72 50
+              81:     11(int) Constant 62
+              80:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 79 75 30 81 16 53 79 17 81
+              84:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 85 50 30 81 16 80 26 52
+              87:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
+              91:     11(int) Constant 63
+              92:             TypePointer Function 60(VSOutput)
+              93:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 72 56 16
+              95:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 96 72 30 91 16 80 26
+              98:    8(float) Constant 0
+              99:   58(fvec4) ConstantComposite 98 98 98 98
+             100:   18(fvec3) ConstantComposite 98 98 98
+             101:60(VSOutput) ConstantComposite 99 100 100 100 100 100
+             103:     11(int) Constant 64
+             104:     23(int) Constant 2
+             105:     23(int) Constant 3
+             106:             TypePointer Function 18(fvec3)
+             107:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 19 56 16
+             112:     11(int) Constant 65
+             113:             TypePointer Function 20(fvec2)
+             114:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 22 56 16
+             117:     23(int) Constant 7
+             118:             TypePointer Function 23(int)
+             119:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 25 56 16
+             128:     11(int) Constant 68
+             129:             TypePointer Function 8(float)
+             130:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 10 56 16
+             132:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 133 10 30 128 16 80 26
+             135:     23(int) Constant 5
+             138:             TypeMatrix 58(fvec4) 4
+             140:             TypeBool
+             142:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 141 14 21 16
+             143:   140(bool) ConstantTrue
+             139:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 59 26 143
+        144(UBO):             TypeStruct 138 138 58(fvec4) 8(float) 8(float)
+             147:     11(int) Constant 43
+             148:     11(int) Constant 20
+             145:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 146 139 30 147 148 16 16 17
+             149:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 146 139 30 147 148 16 16 17
+             152:     11(int) Constant 44
+             153:     11(int) Constant 17
+             150:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 151 59 30 152 153 16 16 17
+             156:     11(int) Constant 46
+             154:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 155 10 30 156 153 16 16 17
+             157:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 155 10 30 156 153 16 16 17
+             158:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 159 52 30 128 16 53 159 16 17 145 149 150 154 157
+        160(ubo):             TypeStruct 144(UBO)
+             163:     11(int) Constant 49
+             161:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 162 158 30 163 48 16 16 17
+             164:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 162 52 30 128 16 53 162 16 17 161
+             165:             TypePointer Uniform 160(ubo)
+             166:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 164 21 16
+             167:    165(ptr) Variable Uniform
+             169:     11(int) Constant 8
+             168:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 1 164 30 128 16 53 1 167 169
+             170:     23(int) Constant 0
+             171:             TypePointer Uniform 8(float)
+             172:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 10 21 16
+             178:     11(int) Constant 69
+             180:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 181 10 30 178 16 80 26
+             190:     11(int) Constant 71
+             191:             TypeMatrix 18(fvec3) 3
+             192:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 19 17 143
+             193:             TypePointer Function 191
+             194:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 192 56 16
+             196:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 197 192 30 190 16 80 26
+             203:     11(int) Constant 72
+             206:    8(float) Constant 1065353216
+             213:     11(int) Constant 76
+             221:     11(int) Constant 77
+             229:     11(int) Constant 79
+             231:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 232 192 30 229 16 80 26
+             238:     11(int) Constant 81
+             247:     11(int) Constant 84
+             255:     11(int) Constant 85
+             263:     11(int) Constant 87
+             265:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 266 192 30 263 16 80 26
+             269:     11(int) Constant 88
+             274:     11(int) Constant 89
+             283:     11(int) Constant 91
+             285:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 286 192 30 283 16 80 26
+             294:     11(int) Constant 94
+             297:     23(int) Constant 4
+             303:     11(int) Constant 95
+             311:     11(int) Constant 96
+             312:             TypePointer Function 138
+             313:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 139 56 16
+             315:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 316 139 30 311 16 80 26
+             322:             TypePointer Function 58(fvec4)
+             323:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 59 56 16
+             326:     11(int) Constant 97
+             327:     23(int) Constant 1
+             328:   58(fvec4) ConstantComposite 98 206 98 98
+             331:     11(int) Constant 98
+             337:     11(int) Constant 99
+             338:   58(fvec4) ConstantComposite 98 98 98 206
+             341:     11(int) Constant 101
+             343:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 344 59 30 341 16 80 26
+             355:     11(int) Constant 102
+             357:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 358 59 30 355 16 80 26
+             362:     23(int) Constant 6
+             374:     11(int) Constant 104
+             378:             TypePointer Uniform 138
+             379:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 139 21 16
+             388:     11(int) Constant 105
+             407:     11(int) Constant 107
+             421:     11(int) Constant 108
+             423:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 424 19 30 421 16 80 26
+             426:             TypePointer Uniform 58(fvec4)
+             427:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 59 21 16
+             442:     11(int) Constant 109
+             449:     11(int) Constant 110
+             455:     11(int) Constant 111
+             460:             TypePointer Input 18(fvec3)
+  461(input.Pos):    460(ptr) Variable Input
+464(input.Normal):    460(ptr) Variable Input
+             467:             TypePointer Input 20(fvec2)
+   468(input.UV):    467(ptr) Variable Input
+471(input.Color):    460(ptr) Variable Input
+474(input.instancePos):    460(ptr) Variable Input
+477(input.instanceRot):    460(ptr) Variable Input
+             480:             TypePointer Input 8(float)
+481(input.instanceScale):    480(ptr) Variable Input
+             484:             TypePointer Input 23(int)
+485(input.instanceTexIndex):    484(ptr) Variable Input
+             492:             TypePointer Output 58(fvec4)
+493(@entryPointOutput.Pos):    492(ptr) Variable Output
+             496:             TypePointer Output 18(fvec3)
+497(@entryPointOutput.Normal):    496(ptr) Variable Output
+500(@entryPointOutput.Color):    496(ptr) Variable Output
+503(@entryPointOutput.UV):    496(ptr) Variable Output
+506(@entryPointOutput.ViewVec):    496(ptr) Variable Output
+509(@entryPointOutput.LightVec):    496(ptr) Variable Output
                               Line 1 62 1
          6(main):           4 Function None 5
                7:             Label
-      442(input):     55(ptr) Variable Function
-471(flattenTemp):     89(ptr) Variable Function
-      472(param):     55(ptr) Variable Function
+      459(input):     55(ptr) Variable Function
+488(flattenTemp):     92(ptr) Variable Function
+      489(param):     55(ptr) Variable Function
                               Line 1 62 0
-             445:   18(fvec3) Load 444(input.Pos)
-             446:    102(ptr) AccessChain 442(input) 159
-                              Store 446 445
-             448:   18(fvec3) Load 447(input.Normal)
-             449:    102(ptr) AccessChain 442(input) 312
-                              Store 449 448
-             452:   20(fvec2) Load 451(input.UV)
-             453:    108(ptr) AccessChain 442(input) 100
-                              Store 453 452
-             455:   18(fvec3) Load 454(input.Color)
-             456:    102(ptr) AccessChain 442(input) 101
-                              Store 456 455
-             458:   18(fvec3) Load 457(input.instancePos)
-             459:    102(ptr) AccessChain 442(input) 284
-                              Store 459 458
-             461:   18(fvec3) Load 460(input.instanceRot)
-             462:    102(ptr) AccessChain 442(input) 127
-                              Store 462 461
-             465:    8(float) Load 464(input.instanceScale)
-             466:    122(ptr) AccessChain 442(input) 347
+             462:   18(fvec3) Load 461(input.Pos)
+             463:    106(ptr) AccessChain 459(input) 170
+                              Store 463 462
+             465:   18(fvec3) Load 464(input.Normal)
+             466:    106(ptr) AccessChain 459(input) 327
                               Store 466 465
-             469:     23(int) Load 468(input.instanceTexIndex)
-             470:    112(ptr) AccessChain 442(input) 111
+             469:   20(fvec2) Load 468(input.UV)
+             470:    113(ptr) AccessChain 459(input) 104
                               Store 470 469
-             473: 27(VSInput) Load 442(input)
-                              Store 472(param) 473
-             474:58(VSOutput) FunctionCall 75(@main(struct-VSInput-vf3-vf3-vf2-vf3-vf3-vf3-f1-i11;) 472(param)
-                              Store 471(flattenTemp) 474
-             477:    308(ptr) AccessChain 471(flattenTemp) 159
-             478:   56(fvec4) Load 477
-                              Store 476(@entryPointOutput.Pos) 478
-             481:    102(ptr) AccessChain 471(flattenTemp) 312
-             482:   18(fvec3) Load 481
-                              Store 480(@entryPointOutput.Normal) 482
-             484:    102(ptr) AccessChain 471(flattenTemp) 100
-             485:   18(fvec3) Load 484
-                              Store 483(@entryPointOutput.Color) 485
-             487:    102(ptr) AccessChain 471(flattenTemp) 101
-             488:   18(fvec3) Load 487
-                              Store 486(@entryPointOutput.UV) 488
-             490:    102(ptr) AccessChain 471(flattenTemp) 284
-             491:   18(fvec3) Load 490
-                              Store 489(@entryPointOutput.ViewVec) 491
-             493:    102(ptr) AccessChain 471(flattenTemp) 127
-             494:   18(fvec3) Load 493
-                              Store 492(@entryPointOutput.LightVec) 494
+             472:   18(fvec3) Load 471(input.Color)
+             473:    106(ptr) AccessChain 459(input) 105
+                              Store 473 472
+             475:   18(fvec3) Load 474(input.instancePos)
+             476:    106(ptr) AccessChain 459(input) 297
+                              Store 476 475
+             478:   18(fvec3) Load 477(input.instanceRot)
+             479:    106(ptr) AccessChain 459(input) 135
+                              Store 479 478
+             482:    8(float) Load 481(input.instanceScale)
+             483:    129(ptr) AccessChain 459(input) 362
+                              Store 483 482
+             486:     23(int) Load 485(input.instanceTexIndex)
+             487:    118(ptr) AccessChain 459(input) 117
+                              Store 487 486
+             490: 27(VSInput) Load 459(input)
+                              Store 489(param) 490
+             491:60(VSOutput) FunctionCall 77(@main(struct-VSInput-vf3-vf3-vf2-vf3-vf3-vf3-f1-i11;) 489(param)
+                              Store 488(flattenTemp) 491
+             494:    322(ptr) AccessChain 488(flattenTemp) 170
+             495:   58(fvec4) Load 494
+                              Store 493(@entryPointOutput.Pos) 495
+             498:    106(ptr) AccessChain 488(flattenTemp) 327
+             499:   18(fvec3) Load 498
+                              Store 497(@entryPointOutput.Normal) 499
+             501:    106(ptr) AccessChain 488(flattenTemp) 104
+             502:   18(fvec3) Load 501
+                              Store 500(@entryPointOutput.Color) 502
+             504:    106(ptr) AccessChain 488(flattenTemp) 105
+             505:   18(fvec3) Load 504
+                              Store 503(@entryPointOutput.UV) 505
+             507:    106(ptr) AccessChain 488(flattenTemp) 297
+             508:   18(fvec3) Load 507
+                              Store 506(@entryPointOutput.ViewVec) 508
+             510:    106(ptr) AccessChain 488(flattenTemp) 135
+             511:   18(fvec3) Load 510
+                              Store 509(@entryPointOutput.LightVec) 511
                               Return
                               FunctionEnd
                               Line 1 62 1
-75(@main(struct-VSInput-vf3-vf3-vf2-vf3-vf3-vf3-f1-i11;):58(VSOutput) Function None 72
-       74(input):     55(ptr) FunctionParameter
+77(@main(struct-VSInput-vf3-vf3-vf2-vf3-vf3-vf3-f1-i11;):60(VSOutput) Function None 74
+       76(input):     55(ptr) FunctionParameter
               78:             Label
-      90(output):     89(ptr) Variable Function
-          123(s):    122(ptr) Variable Function
-          167(c):    122(ptr) Variable Function
-         182(mx):    181(ptr) Variable Function
-         217(my):    181(ptr) Variable Function
-         251(mz):    181(ptr) Variable Function
-     271(rotMat):    181(ptr) Variable Function
-    300(gRotMat):    299(ptr) Variable Function
-     327(locPos):    308(ptr) Variable Function
-        341(pos):    308(ptr) Variable Function
-       406(lPos):    102(ptr) Variable Function
-              79:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 77
-              80:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 16 16 16 16
-              83:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 81 74(input) 84
-              85:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 77 75(@main(struct-VSInput-vf3-vf3-vf2-vf3-vf3-vf3-f1-i11;)
-              86:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 77
-              87:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 88 88 16 16
-              93:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 91 90(output) 84
-                              Store 90(output) 97
-              98:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 99 99 16 16
-             103:    102(ptr) AccessChain 74(input) 101
-             104:   18(fvec3) Load 103
-             105:    102(ptr) AccessChain 90(output) 100
-                              Store 105 104
-             106:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 107 107 16 16
-             109:    108(ptr) AccessChain 74(input) 100
-             110:   20(fvec2) Load 109
-             113:    112(ptr) AccessChain 74(input) 111
-             114:     23(int) Load 113
-             115:    8(float) ConvertSToF 114
-             116:    8(float) CompositeExtract 110 0
-             117:    8(float) CompositeExtract 110 1
-             118:   18(fvec3) CompositeConstruct 116 117 115
-             119:    102(ptr) AccessChain 90(output) 101
-                              Store 119 118
-             120:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 121 121 16 16
-             126:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 124 123(s) 84
-             128:    122(ptr) AccessChain 74(input) 127 16
-             129:    8(float) Load 128
-             161:    160(ptr) AccessChain 156 159 101
-             162:    8(float) Load 161
-             163:    8(float) FAdd 129 162
-             164:    8(float) ExtInst 3(GLSL.std.450) 13(Sin) 163
-                              Store 123(s) 164
-             165:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 166 166 16 16
-             170:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 168 167(c) 84
-             171:    122(ptr) AccessChain 74(input) 127 16
-             172:    8(float) Load 171
-             173:    160(ptr) AccessChain 156 159 101
+      94(output):     92(ptr) Variable Function
+          131(s):    129(ptr) Variable Function
+          179(c):    129(ptr) Variable Function
+         195(mx):    193(ptr) Variable Function
+         230(my):    193(ptr) Variable Function
+         264(mz):    193(ptr) Variable Function
+     284(rotMat):    193(ptr) Variable Function
+    314(gRotMat):    312(ptr) Variable Function
+     342(locPos):    322(ptr) Variable Function
+        356(pos):    322(ptr) Variable Function
+       422(lPos):    106(ptr) Variable Function
+              82:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 80
+              83:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 81 81 16 16
+              86:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 84 76(input) 87
+              88:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 80 77(@main(struct-VSInput-vf3-vf3-vf2-vf3-vf3-vf3-f1-i11;)
+              89:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 80
+              90:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 91 91 16 16
+              97:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 95 94(output) 87
+                              Store 94(output) 101
+             102:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 103 103 16 16
+             108:    106(ptr) AccessChain 76(input) 105
+             109:   18(fvec3) Load 108
+             110:    106(ptr) AccessChain 94(output) 104
+                              Store 110 109
+             111:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 112 112 16 16
+             115:    113(ptr) AccessChain 76(input) 104
+             116:   20(fvec2) Load 115
+             120:    118(ptr) AccessChain 76(input) 117
+             121:     23(int) Load 120
+             122:    8(float) ConvertSToF 121
+             123:    8(float) CompositeExtract 116 0
+             124:    8(float) CompositeExtract 116 1
+             125:   18(fvec3) CompositeConstruct 123 124 122
+             126:    106(ptr) AccessChain 94(output) 105
+                              Store 126 125
+             127:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 128 128 16 16
+             134:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 132 131(s) 87
+             136:    129(ptr) AccessChain 76(input) 135 16
+             137:    8(float) Load 136
+             173:    171(ptr) AccessChain 167 170 105
              174:    8(float) Load 173
-             175:    8(float) FAdd 172 174
-             176:    8(float) ExtInst 3(GLSL.std.450) 14(Cos) 175
-                              Store 167(c) 176
+             175:    8(float) FAdd 137 174
+             176:    8(float) ExtInst 3(GLSL.std.450) 13(Sin) 175
+                              Store 131(s) 176
              177:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 178 178 16 16
-             185:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 183 182(mx) 84
-             186:    8(float) Load 167(c)
-             187:    8(float) Load 123(s)
-             188:    8(float) FNegate 187
+             182:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 180 179(c) 87
+             183:    129(ptr) AccessChain 76(input) 135 16
+             184:    8(float) Load 183
+             185:    171(ptr) AccessChain 167 170 105
+             186:    8(float) Load 185
+             187:    8(float) FAdd 184 186
+             188:    8(float) ExtInst 3(GLSL.std.450) 14(Cos) 187
+                              Store 179(c) 188
              189:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 190 190 16 16
-             191:    8(float) Load 123(s)
-             192:    8(float) Load 167(c)
-             194:   18(fvec3) CompositeConstruct 186 188 94
-             195:   18(fvec3) CompositeConstruct 191 192 94
-             196:   18(fvec3) CompositeConstruct 94 94 193
-             197:         179 CompositeConstruct 194 195 196
-             198:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 178 178 16 16
-                              Store 182(mx) 197
-             199:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 200 200 16 16
-             201:    122(ptr) AccessChain 74(input) 127 52
-             202:    8(float) Load 201
-             203:    160(ptr) AccessChain 156 159 101
-             204:    8(float) Load 203
-             205:    8(float) FAdd 202 204
-             206:    8(float) ExtInst 3(GLSL.std.450) 13(Sin) 205
-                              Store 123(s) 206
-             207:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 208 208 16 16
-             209:    122(ptr) AccessChain 74(input) 127 52
-             210:    8(float) Load 209
-             211:    160(ptr) AccessChain 156 159 101
-             212:    8(float) Load 211
-             213:    8(float) FAdd 210 212
-             214:    8(float) ExtInst 3(GLSL.std.450) 14(Cos) 213
-                              Store 167(c) 214
-             215:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 216 216 16 16
-             220:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 218 217(my) 84
-             221:    8(float) Load 167(c)
-             222:    8(float) Load 123(s)
-             223:    8(float) FNegate 222
-             224:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 225 225 16 16
-             226:    8(float) Load 123(s)
-             227:    8(float) Load 167(c)
-             228:   18(fvec3) CompositeConstruct 221 94 223
-             229:   18(fvec3) CompositeConstruct 94 193 94
-             230:   18(fvec3) CompositeConstruct 226 94 227
-             231:         179 CompositeConstruct 228 229 230
-             232:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 216 216 16 16
-                              Store 217(my) 231
-             233:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 234 234 16 16
-             235:    122(ptr) AccessChain 74(input) 127 21
-             236:    8(float) Load 235
-             237:    160(ptr) AccessChain 156 159 101
-             238:    8(float) Load 237
-             239:    8(float) FAdd 236 238
-             240:    8(float) ExtInst 3(GLSL.std.450) 13(Sin) 239
-                              Store 123(s) 240
-             241:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 242 242 16 16
-             243:    122(ptr) AccessChain 74(input) 127 21
-             244:    8(float) Load 243
-             245:    160(ptr) AccessChain 156 159 101
-             246:    8(float) Load 245
-             247:    8(float) FAdd 244 246
-             248:    8(float) ExtInst 3(GLSL.std.450) 14(Cos) 247
-                              Store 167(c) 248
-             249:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 250 250 16 16
-             254:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 252 251(mz) 84
-             255:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 256 256 16 16
-             257:    8(float) Load 167(c)
-             258:    8(float) Load 123(s)
-             259:    8(float) FNegate 258
-             260:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 261 261 16 16
-             262:    8(float) Load 123(s)
-             263:    8(float) Load 167(c)
-             264:   18(fvec3) CompositeConstruct 193 94 94
-             265:   18(fvec3) CompositeConstruct 94 257 259
-             266:   18(fvec3) CompositeConstruct 94 262 263
-             267:         179 CompositeConstruct 264 265 266
-             268:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 250 250 16 16
-                              Store 251(mz) 267
-             269:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 270 270 16 16
-             274:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 272 271(rotMat) 84
-             275:         179 Load 182(mx)
-             276:         179 Load 217(my)
-             277:         179 MatrixTimesMatrix 275 276
-             278:         179 Load 251(mz)
-             279:         179 MatrixTimesMatrix 277 278
-                              Store 271(rotMat) 279
-             280:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 281 281 16 16
-             282:    122(ptr) AccessChain 74(input) 127 52
-             283:    8(float) Load 282
-             285:    160(ptr) AccessChain 156 159 284
-             286:    8(float) Load 285
-             287:    8(float) FAdd 283 286
-             288:    8(float) ExtInst 3(GLSL.std.450) 13(Sin) 287
-                              Store 123(s) 288
-             289:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 290 290 16 16
-             291:    122(ptr) AccessChain 74(input) 127 52
-             292:    8(float) Load 291
-             293:    160(ptr) AccessChain 156 159 284
-             294:    8(float) Load 293
-             295:    8(float) FAdd 292 294
-             296:    8(float) ExtInst 3(GLSL.std.450) 14(Cos) 295
-                              Store 167(c) 296
-             297:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 298 298 16 16
-             303:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 301 300(gRotMat) 84
-             304:    8(float) Load 167(c)
-             305:    8(float) Load 123(s)
-             306:    8(float) FNegate 305
-             307:   56(fvec4) CompositeConstruct 304 94 306 94
-             309:    308(ptr) AccessChain 300(gRotMat) 159
-                              Store 309 307
+             198:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 196 195(mx) 87
+             199:    8(float) Load 179(c)
+             200:    8(float) Load 131(s)
+             201:    8(float) FNegate 200
+             202:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 203 203 16 16
+             204:    8(float) Load 131(s)
+             205:    8(float) Load 179(c)
+             207:   18(fvec3) CompositeConstruct 199 201 98
+             208:   18(fvec3) CompositeConstruct 204 205 98
+             209:   18(fvec3) CompositeConstruct 98 98 206
+             210:         191 CompositeConstruct 207 208 209
+             211:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 190 190 16 16
+                              Store 195(mx) 210
+             212:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 213 213 16 16
+             214:    129(ptr) AccessChain 76(input) 135 52
+             215:    8(float) Load 214
+             216:    171(ptr) AccessChain 167 170 105
+             217:    8(float) Load 216
+             218:    8(float) FAdd 215 217
+             219:    8(float) ExtInst 3(GLSL.std.450) 13(Sin) 218
+                              Store 131(s) 219
+             220:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 221 221 16 16
+             222:    129(ptr) AccessChain 76(input) 135 52
+             223:    8(float) Load 222
+             224:    171(ptr) AccessChain 167 170 105
+             225:    8(float) Load 224
+             226:    8(float) FAdd 223 225
+             227:    8(float) ExtInst 3(GLSL.std.450) 14(Cos) 226
+                              Store 179(c) 227
+             228:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 229 229 16 16
+             233:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 231 230(my) 87
+             234:    8(float) Load 179(c)
+             235:    8(float) Load 131(s)
+             236:    8(float) FNegate 235
+             237:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 238 238 16 16
+             239:    8(float) Load 131(s)
+             240:    8(float) Load 179(c)
+             241:   18(fvec3) CompositeConstruct 234 98 236
+             242:   18(fvec3) CompositeConstruct 98 206 98
+             243:   18(fvec3) CompositeConstruct 239 98 240
+             244:         191 CompositeConstruct 241 242 243
+             245:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 229 229 16 16
+                              Store 230(my) 244
+             246:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 247 247 16 16
+             248:    129(ptr) AccessChain 76(input) 135 21
+             249:    8(float) Load 248
+             250:    171(ptr) AccessChain 167 170 105
+             251:    8(float) Load 250
+             252:    8(float) FAdd 249 251
+             253:    8(float) ExtInst 3(GLSL.std.450) 13(Sin) 252
+                              Store 131(s) 253
+             254:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 255 255 16 16
+             256:    129(ptr) AccessChain 76(input) 135 21
+             257:    8(float) Load 256
+             258:    171(ptr) AccessChain 167 170 105
+             259:    8(float) Load 258
+             260:    8(float) FAdd 257 259
+             261:    8(float) ExtInst 3(GLSL.std.450) 14(Cos) 260
+                              Store 179(c) 261
+             262:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 263 263 16 16
+             267:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 265 264(mz) 87
+             268:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 269 269 16 16
+             270:    8(float) Load 179(c)
+             271:    8(float) Load 131(s)
+             272:    8(float) FNegate 271
+             273:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 274 274 16 16
+             275:    8(float) Load 131(s)
+             276:    8(float) Load 179(c)
+             277:   18(fvec3) CompositeConstruct 206 98 98
+             278:   18(fvec3) CompositeConstruct 98 270 272
+             279:   18(fvec3) CompositeConstruct 98 275 276
+             280:         191 CompositeConstruct 277 278 279
+             281:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 263 263 16 16
+                              Store 264(mz) 280
+             282:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 283 283 16 16
+             287:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 285 284(rotMat) 87
+             288:         191 Load 195(mx)
+             289:         191 Load 230(my)
+             290:         191 MatrixTimesMatrix 288 289
+             291:         191 Load 264(mz)
+             292:         191 MatrixTimesMatrix 290 291
+                              Store 284(rotMat) 292
+             293:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 294 294 16 16
+             295:    129(ptr) AccessChain 76(input) 135 52
+             296:    8(float) Load 295
+             298:    171(ptr) AccessChain 167 170 297
+             299:    8(float) Load 298
+             300:    8(float) FAdd 296 299
+             301:    8(float) ExtInst 3(GLSL.std.450) 13(Sin) 300
+                              Store 131(s) 301
+             302:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 303 303 16 16
+             304:    129(ptr) AccessChain 76(input) 135 52
+             305:    8(float) Load 304
+             306:    171(ptr) AccessChain 167 170 297
+             307:    8(float) Load 306
+             308:    8(float) FAdd 305 307
+             309:    8(float) ExtInst 3(GLSL.std.450) 14(Cos) 308
+                              Store 179(c) 309
              310:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 311 311 16 16
-             314:    308(ptr) AccessChain 300(gRotMat) 312
-                              Store 314 313
-             315:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 316 316 16 16
-             317:    8(float) Load 123(s)
-             318:    8(float) Load 167(c)
-             319:   56(fvec4) CompositeConstruct 317 94 318 94
-             320:    308(ptr) AccessChain 300(gRotMat) 100
-                              Store 320 319
-             321:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 322 322 16 16
-             324:    308(ptr) AccessChain 300(gRotMat) 101
-                              Store 324 323
+             317:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 315 314(gRotMat) 87
+             318:    8(float) Load 179(c)
+             319:    8(float) Load 131(s)
+             320:    8(float) FNegate 319
+             321:   58(fvec4) CompositeConstruct 318 98 320 98
+             324:    322(ptr) AccessChain 314(gRotMat) 170
+                              Store 324 321
              325:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 326 326 16 16
-             330:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 328 327(locPos) 84
-             331:    102(ptr) AccessChain 74(input) 159
-             332:   18(fvec3) Load 331
-             333:         179 Load 271(rotMat)
-             334:   18(fvec3) VectorTimesMatrix 332 333
-             335:    8(float) CompositeExtract 334 0
-             336:    8(float) CompositeExtract 334 1
-             337:    8(float) CompositeExtract 334 2
-             338:   56(fvec4) CompositeConstruct 335 336 337 193
-                              Store 327(locPos) 338
-             339:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 340 340 16 16
-             344:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 342 341(pos) 84
-             345:   56(fvec4) Load 327(locPos)
-             346:   18(fvec3) VectorShuffle 345 345 0 1 2
-             348:    122(ptr) AccessChain 74(input) 347
-             349:    8(float) Load 348
-             350:   18(fvec3) VectorTimesScalar 346 349
-             351:    102(ptr) AccessChain 74(input) 284
-             352:   18(fvec3) Load 351
-             353:   18(fvec3) FAdd 350 352
-             354:    8(float) CompositeExtract 353 0
-             355:    8(float) CompositeExtract 353 1
-             356:    8(float) CompositeExtract 353 2
-             357:   56(fvec4) CompositeConstruct 354 355 356 193
-                              Store 341(pos) 357
-             358:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 359 359 16 16
-             360:   56(fvec4) Load 341(pos)
-             361:         130 Load 300(gRotMat)
-             362:   56(fvec4) VectorTimesMatrix 360 361
-             364:    363(ptr) AccessChain 156 159 312
-             365:         130 Load 364
-             366:   56(fvec4) VectorTimesMatrix 362 365
-             367:    363(ptr) AccessChain 156 159 159
-             368:         130 Load 367
-             369:   56(fvec4) VectorTimesMatrix 366 368
-             370:    308(ptr) AccessChain 90(output) 159
-                              Store 370 369
-             371:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 372 372 16 16
-             373:    102(ptr) AccessChain 74(input) 312
-             374:   18(fvec3) Load 373
-             375:         179 Load 271(rotMat)
-             376:   18(fvec3) VectorTimesMatrix 374 375
-             377:         130 Load 300(gRotMat)
-             378:    363(ptr) AccessChain 156 159 312
-             379:         130 Load 378
-             380:         130 MatrixTimesMatrix 377 379
-             381:   56(fvec4) CompositeExtract 380 0
-             382:   18(fvec3) VectorShuffle 381 381 0 1 2
-             383:   56(fvec4) CompositeExtract 380 1
-             384:   18(fvec3) VectorShuffle 383 383 0 1 2
-             385:   56(fvec4) CompositeExtract 380 2
-             386:   18(fvec3) VectorShuffle 385 385 0 1 2
-             387:         179 CompositeConstruct 382 384 386
-             388:   18(fvec3) VectorTimesMatrix 376 387
-             389:    102(ptr) AccessChain 90(output) 312
-                              Store 389 388
-             390:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 391 391 16 16
-             392:    102(ptr) AccessChain 74(input) 159
-             393:   18(fvec3) Load 392
-             394:    102(ptr) AccessChain 74(input) 284
-             395:   18(fvec3) Load 394
-             396:   18(fvec3) FAdd 393 395
-             397:    8(float) CompositeExtract 396 0
-             398:    8(float) CompositeExtract 396 1
-             399:    8(float) CompositeExtract 396 2
-             400:   56(fvec4) CompositeConstruct 397 398 399 193
-             401:    363(ptr) AccessChain 156 159 312
-             402:         130 Load 401
-             403:   56(fvec4) VectorTimesMatrix 400 402
-                              Store 341(pos) 403
-             404:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 405 405 16 16
-             409:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 407 406(lPos) 84
-             411:    410(ptr) AccessChain 156 159 100
-             412:   56(fvec4) Load 411
-             413:   18(fvec3) VectorShuffle 412 412 0 1 2
-             414:    363(ptr) AccessChain 156 159 312
-             415:         130 Load 414
-             416:   56(fvec4) CompositeExtract 415 0
-             417:   18(fvec3) VectorShuffle 416 416 0 1 2
-             418:   56(fvec4) CompositeExtract 415 1
-             419:   18(fvec3) VectorShuffle 418 418 0 1 2
-             420:   56(fvec4) CompositeExtract 415 2
-             421:   18(fvec3) VectorShuffle 420 420 0 1 2
-             422:         179 CompositeConstruct 417 419 421
-             423:   18(fvec3) VectorTimesMatrix 413 422
-                              Store 406(lPos) 423
-             424:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 425 425 16 16
-             426:   18(fvec3) Load 406(lPos)
-             427:   56(fvec4) Load 341(pos)
-             428:   18(fvec3) VectorShuffle 427 427 0 1 2
-             429:   18(fvec3) FSub 426 428
-             430:    102(ptr) AccessChain 90(output) 127
-                              Store 430 429
-             431:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 432 432 16 16
-             433:   56(fvec4) Load 341(pos)
+             329:    322(ptr) AccessChain 314(gRotMat) 327
+                              Store 329 328
+             330:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 331 331 16 16
+             332:    8(float) Load 131(s)
+             333:    8(float) Load 179(c)
+             334:   58(fvec4) CompositeConstruct 332 98 333 98
+             335:    322(ptr) AccessChain 314(gRotMat) 104
+                              Store 335 334
+             336:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 337 337 16 16
+             339:    322(ptr) AccessChain 314(gRotMat) 105
+                              Store 339 338
+             340:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 341 341 16 16
+             345:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 343 342(locPos) 87
+             346:    106(ptr) AccessChain 76(input) 170
+             347:   18(fvec3) Load 346
+             348:         191 Load 284(rotMat)
+             349:   18(fvec3) VectorTimesMatrix 347 348
+             350:    8(float) CompositeExtract 349 0
+             351:    8(float) CompositeExtract 349 1
+             352:    8(float) CompositeExtract 349 2
+             353:   58(fvec4) CompositeConstruct 350 351 352 206
+                              Store 342(locPos) 353
+             354:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 355 355 16 16
+             359:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 357 356(pos) 87
+             360:   58(fvec4) Load 342(locPos)
+             361:   18(fvec3) VectorShuffle 360 360 0 1 2
+             363:    129(ptr) AccessChain 76(input) 362
+             364:    8(float) Load 363
+             365:   18(fvec3) VectorTimesScalar 361 364
+             366:    106(ptr) AccessChain 76(input) 297
+             367:   18(fvec3) Load 366
+             368:   18(fvec3) FAdd 365 367
+             369:    8(float) CompositeExtract 368 0
+             370:    8(float) CompositeExtract 368 1
+             371:    8(float) CompositeExtract 368 2
+             372:   58(fvec4) CompositeConstruct 369 370 371 206
+                              Store 356(pos) 372
+             373:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 374 374 16 16
+             375:   58(fvec4) Load 356(pos)
+             376:         138 Load 314(gRotMat)
+             377:   58(fvec4) VectorTimesMatrix 375 376
+             380:    378(ptr) AccessChain 167 170 327
+             381:         138 Load 380
+             382:   58(fvec4) VectorTimesMatrix 377 381
+             383:    378(ptr) AccessChain 167 170 170
+             384:         138 Load 383
+             385:   58(fvec4) VectorTimesMatrix 382 384
+             386:    322(ptr) AccessChain 94(output) 170
+                              Store 386 385
+             387:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 388 388 16 16
+             389:    106(ptr) AccessChain 76(input) 327
+             390:   18(fvec3) Load 389
+             391:         191 Load 284(rotMat)
+             392:   18(fvec3) VectorTimesMatrix 390 391
+             393:         138 Load 314(gRotMat)
+             394:    378(ptr) AccessChain 167 170 327
+             395:         138 Load 394
+             396:         138 MatrixTimesMatrix 393 395
+             397:   58(fvec4) CompositeExtract 396 0
+             398:   18(fvec3) VectorShuffle 397 397 0 1 2
+             399:   58(fvec4) CompositeExtract 396 1
+             400:   18(fvec3) VectorShuffle 399 399 0 1 2
+             401:   58(fvec4) CompositeExtract 396 2
+             402:   18(fvec3) VectorShuffle 401 401 0 1 2
+             403:         191 CompositeConstruct 398 400 402
+             404:   18(fvec3) VectorTimesMatrix 392 403
+             405:    106(ptr) AccessChain 94(output) 327
+                              Store 405 404
+             406:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 407 407 16 16
+             408:    106(ptr) AccessChain 76(input) 170
+             409:   18(fvec3) Load 408
+             410:    106(ptr) AccessChain 76(input) 297
+             411:   18(fvec3) Load 410
+             412:   18(fvec3) FAdd 409 411
+             413:    8(float) CompositeExtract 412 0
+             414:    8(float) CompositeExtract 412 1
+             415:    8(float) CompositeExtract 412 2
+             416:   58(fvec4) CompositeConstruct 413 414 415 206
+             417:    378(ptr) AccessChain 167 170 327
+             418:         138 Load 417
+             419:   58(fvec4) VectorTimesMatrix 416 418
+                              Store 356(pos) 419
+             420:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 421 421 16 16
+             425:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 423 422(lPos) 87
+             428:    426(ptr) AccessChain 167 170 104
+             429:   58(fvec4) Load 428
+             430:   18(fvec3) VectorShuffle 429 429 0 1 2
+             431:    378(ptr) AccessChain 167 170 327
+             432:         138 Load 431
+             433:   58(fvec4) CompositeExtract 432 0
              434:   18(fvec3) VectorShuffle 433 433 0 1 2
-             435:   18(fvec3) FNegate 434
-             436:    102(ptr) AccessChain 90(output) 284
-                              Store 436 435
-             437:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 438 438 16 16
-             439:58(VSOutput) Load 90(output)
-                              ReturnValue 439
+             435:   58(fvec4) CompositeExtract 432 1
+             436:   18(fvec3) VectorShuffle 435 435 0 1 2
+             437:   58(fvec4) CompositeExtract 432 2
+             438:   18(fvec3) VectorShuffle 437 437 0 1 2
+             439:         191 CompositeConstruct 434 436 438
+             440:   18(fvec3) VectorTimesMatrix 430 439
+                              Store 422(lPos) 440
+             441:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 442 442 16 16
+             443:   18(fvec3) Load 422(lPos)
+             444:   58(fvec4) Load 356(pos)
+             445:   18(fvec3) VectorShuffle 444 444 0 1 2
+             446:   18(fvec3) FSub 443 445
+             447:    106(ptr) AccessChain 94(output) 135
+                              Store 447 446
+             448:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 449 449 16 16
+             450:   58(fvec4) Load 356(pos)
+             451:   18(fvec3) VectorShuffle 450 450 0 1 2
+             452:   18(fvec3) FNegate 451
+             453:    106(ptr) AccessChain 94(output) 297
+                              Store 453 452
+             454:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 30 455 455 16 16
+             456:60(VSOutput) Load 94(output)
+                              ReturnValue 456
                               FunctionEnd
diff --git a/Test/baseResults/spv.debuginfo.scalar_types.glsl.frag.out b/Test/baseResults/spv.debuginfo.scalar_types.glsl.frag.out
new file mode 100644
index 0000000..e17bf1a
--- /dev/null
+++ b/Test/baseResults/spv.debuginfo.scalar_types.glsl.frag.out
@@ -0,0 +1,208 @@
+spv.debuginfo.scalar_types.glsl.frag
+// Module Version 10000
+// Generated by (magic number): 8000b
+// Id's are bound by 158
+
+                              Capability Shader
+                              Capability Float16
+                              Capability Float64
+                              Capability Int64
+                              Capability Int16
+                              Capability Int8
+                              Extension  "SPV_KHR_non_semantic_info"
+               2:             ExtInstImport  "NonSemantic.Shader.DebugInfo.100"
+               3:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 14  "main"
+                              ExecutionMode 14 OriginUpperLeft
+               1:             String  ""
+               8:             String  "uint"
+              16:             String  "main"
+              19:             String  "// OpModuleProcessed auto-map-locations
+// OpModuleProcessed auto-map-bindings
+// OpModuleProcessed client vulkan100
+// OpModuleProcessed target-env vulkan1.0
+// OpModuleProcessed keep-uncalled
+// OpModuleProcessed entry-point main
+#line 1
+"
+              30:             String  "bool"
+              36:             String  "VAR_bool"
+              42:             String  "int"
+              48:             String  "VAR_int"
+              56:             String  "VAR_uint"
+              60:             String  "float"
+              66:             String  "VAR_float"
+              71:             String  "double"
+              78:             String  "VAR_double"
+              83:             String  "int8_t"
+              89:             String  "VAR_int8_t"
+              94:             String  "uint8_t"
+             100:             String  "VAR_uint8_t"
+             105:             String  "int16_t"
+             112:             String  "VAR_int16_t"
+             117:             String  "uint16_t"
+             123:             String  "VAR_uint16_t"
+             128:             String  "int64_t"
+             134:             String  "VAR_int64_t"
+             139:             String  "uint64_t"
+             145:             String  "VAR_uint64_t"
+             150:             String  "float16_t"
+             156:             String  "VAR_float16_t"
+                              SourceExtension  "GL_EXT_shader_explicit_arithmetic_types"
+                              Name 14  "main"
+                              Name 34  "VAR_bool"
+                              Name 46  "VAR_int"
+                              Name 54  "VAR_uint"
+                              Name 64  "VAR_float"
+                              Name 76  "VAR_double"
+                              Name 87  "VAR_int8_t"
+                              Name 98  "VAR_uint8_t"
+                              Name 110  "VAR_int16_t"
+                              Name 121  "VAR_uint16_t"
+                              Name 132  "VAR_int64_t"
+                              Name 143  "VAR_uint64_t"
+                              Name 154  "VAR_float16_t"
+               4:             TypeVoid
+               5:             TypeFunction 4
+               7:             TypeInt 32 0
+              10:      7(int) Constant 32
+              11:      7(int) Constant 6
+              12:      7(int) Constant 0
+               9:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 8 10 11 12
+              13:      7(int) Constant 3
+               6:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 13 4
+              18:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 1 19
+              20:      7(int) Constant 42
+              22:      7(int) Constant 1
+              23:      7(int) Constant 4
+              24:      7(int) Constant 2
+              21:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 22 23 18 24
+              17:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 16 6 18 20 12 21 16 13 20
+              28:      7(int) Constant 43
+              29:             TypeBool
+              31:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 30 10 24 12
+              32:             TypePointer Private 29(bool)
+              33:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 31 11 12
+    34(VAR_bool):     32(ptr) Variable Private
+              37:      7(int) Constant 8
+              35:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 36 31 18 28 12 21 36 34(VAR_bool) 37
+              38:    29(bool) ConstantFalse
+              40:      7(int) Constant 44
+              41:             TypeInt 32 1
+              43:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 42 10 23 12
+              44:             TypePointer Private 41(int)
+              45:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 43 11 12
+     46(VAR_int):     44(ptr) Variable Private
+              47:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 48 43 18 40 12 21 48 46(VAR_int) 37
+              49:     41(int) Constant 0
+              51:      7(int) Constant 45
+              52:             TypePointer Private 7(int)
+              53:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 9 11 12
+    54(VAR_uint):     52(ptr) Variable Private
+              55:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 56 9 18 51 12 21 56 54(VAR_uint) 37
+              58:      7(int) Constant 46
+              59:             TypeFloat 32
+              61:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 60 10 13 12
+              62:             TypePointer Private 59(float)
+              63:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 61 11 12
+   64(VAR_float):     62(ptr) Variable Private
+              65:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 66 61 18 58 12 21 66 64(VAR_float) 37
+              67:   59(float) Constant 0
+              69:      7(int) Constant 47
+              70:             TypeFloat 64
+              73:      7(int) Constant 64
+              72:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 71 73 13 12
+              74:             TypePointer Private 70(float64_t)
+              75:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 72 11 12
+  76(VAR_double):     74(ptr) Variable Private
+              77:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 78 72 18 69 12 21 78 76(VAR_double) 37
+              79:70(float64_t) Constant 0 0
+              81:      7(int) Constant 48
+              82:             TypeInt 8 1
+              84:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 83 37 23 12
+              85:             TypePointer Private 82(int8_t)
+              86:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 84 11 12
+  87(VAR_int8_t):     85(ptr) Variable Private
+              88:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 89 84 18 81 12 21 89 87(VAR_int8_t) 37
+              90:  82(int8_t) Constant 0
+              92:      7(int) Constant 49
+              93:             TypeInt 8 0
+              95:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 94 37 11 12
+              96:             TypePointer Private 93(int8_t)
+              97:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 95 11 12
+ 98(VAR_uint8_t):     96(ptr) Variable Private
+              99:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 100 95 18 92 12 21 100 98(VAR_uint8_t) 37
+             101:  93(int8_t) Constant 0
+             103:      7(int) Constant 50
+             104:             TypeInt 16 1
+             107:      7(int) Constant 16
+             106:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 105 107 23 12
+             108:             TypePointer Private 104(int16_t)
+             109:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 106 11 12
+110(VAR_int16_t):    108(ptr) Variable Private
+             111:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 112 106 18 103 12 21 112 110(VAR_int16_t) 37
+             113:104(int16_t) Constant 0
+             115:      7(int) Constant 51
+             116:             TypeInt 16 0
+             118:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 117 107 11 12
+             119:             TypePointer Private 116(int16_t)
+             120:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 118 11 12
+121(VAR_uint16_t):    119(ptr) Variable Private
+             122:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 123 118 18 115 12 21 123 121(VAR_uint16_t) 37
+             124:116(int16_t) Constant 0
+             126:      7(int) Constant 52
+             127:             TypeInt 64 1
+             129:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 128 73 23 12
+             130:             TypePointer Private 127(int64_t)
+             131:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 129 11 12
+132(VAR_int64_t):    130(ptr) Variable Private
+             133:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 134 129 18 126 12 21 134 132(VAR_int64_t) 37
+             135:127(int64_t) Constant 0 0
+             137:      7(int) Constant 53
+             138:             TypeInt 64 0
+             140:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 139 73 11 12
+             141:             TypePointer Private 138(int64_t)
+             142:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 140 11 12
+143(VAR_uint64_t):    141(ptr) Variable Private
+             144:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 145 140 18 137 12 21 145 143(VAR_uint64_t) 37
+             146:138(int64_t) Constant 0 0
+             148:      7(int) Constant 54
+             149:             TypeFloat 16
+             151:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 150 107 13 12
+             152:             TypePointer Private 149(float16_t)
+             153:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 3(DebugTypePointer) 151 11 12
+154(VAR_float16_t):    152(ptr) Variable Private
+             155:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 156 151 18 148 12 21 156 154(VAR_float16_t) 37
+             157:149(float16_t) Constant 0
+                              Line 1 42 11
+        14(main):           4 Function None 5
+              15:             Label
+              25:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 17 14(main)
+              26:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 17
+              27:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 28 28 12 12
+                              Store 34(VAR_bool) 38
+              39:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 40 40 12 12
+                              Store 46(VAR_int) 49
+              50:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 51 51 12 12
+                              Store 54(VAR_uint) 12
+              57:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 58 58 12 12
+                              Store 64(VAR_float) 67
+              68:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 69 69 12 12
+                              Store 76(VAR_double) 79
+              80:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 81 81 12 12
+                              Store 87(VAR_int8_t) 90
+              91:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 92 92 12 12
+                              Store 98(VAR_uint8_t) 101
+             102:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 103 103 12 12
+                              Store 110(VAR_int16_t) 113
+             114:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 115 115 12 12
+                              Store 121(VAR_uint16_t) 124
+             125:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 126 126 12 12
+                              Store 132(VAR_int64_t) 135
+             136:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 137 137 12 12
+                              Store 143(VAR_uint64_t) 146
+             147:           4 ExtInst 2(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 18 148 148 12 12
+                              Store 154(VAR_float16_t) 157
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.exportFunctions.comp.out b/Test/baseResults/spv.exportFunctions.comp.out
new file mode 100644
index 0000000..958cf68
--- /dev/null
+++ b/Test/baseResults/spv.exportFunctions.comp.out
@@ -0,0 +1,36 @@
+spv.exportFunctions.comp
+// Module Version 10000
+// Generated by (magic number): 8000b
+// Id's are bound by 22
+
+                              Capability Shader
+                              Capability Linkage
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              Source GLSL 450
+                              Name 7  "add(f1;f1;"
+                              Name 5  "a"
+                              Name 6  "b"
+                              Name 11  "foo("
+                              Decorate 7(add(f1;f1;) Linkage Attributes 6579297 0
+                              Decorate 11(foo() Linkage Attributes 7303014 0
+               2:             TypeFloat 32
+               3:             TypePointer Function 2(float)
+               4:             TypeFunction 2(float) 3(ptr) 3(ptr)
+               9:             TypeInt 32 1
+              10:             TypeFunction 9(int)
+              17:             TypeVoid
+              19:      9(int) Constant 0
+   7(add(f1;f1;):    2(float) Function None 4
+            5(a):      3(ptr) FunctionParameter
+            6(b):      3(ptr) FunctionParameter
+               8:             Label
+              13:    2(float) Load 5(a)
+              14:    2(float) Load 6(b)
+              15:    2(float) FAdd 13 14
+                              ReturnValue 15
+                              FunctionEnd
+        11(foo():      9(int) Function None 10
+              12:             Label
+                              ReturnValue 19
+                              FunctionEnd
diff --git a/Test/baseResults/spv.ext.meshShaderBuiltins.mesh.out b/Test/baseResults/spv.ext.meshShaderBuiltins.mesh.out
index 4db6112..a1d71a5 100644
--- a/Test/baseResults/spv.ext.meshShaderBuiltins.mesh.out
+++ b/Test/baseResults/spv.ext.meshShaderBuiltins.mesh.out
@@ -5,12 +5,10 @@
 
                               Capability ClipDistance
                               Capability CullDistance
-                              Capability FragmentShadingRateKHR
                               Capability DrawParameters
                               Capability MultiView
                               Capability MeshShadingEXT
                               Extension  "SPV_EXT_mesh_shader"
-                              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
@@ -43,7 +41,6 @@
                               MemberName 90(gl_MeshPerPrimitiveEXT) 1  "gl_Layer"
                               MemberName 90(gl_MeshPerPrimitiveEXT) 2  "gl_ViewportIndex"
                               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"
@@ -66,8 +63,6 @@
                               MemberDecorate 90(gl_MeshPerPrimitiveEXT) 2 BuiltIn ViewportIndex
                               MemberDecorate 90(gl_MeshPerPrimitiveEXT) 3 PerPrimitiveNV
                               MemberDecorate 90(gl_MeshPerPrimitiveEXT) 3 BuiltIn CullPrimitiveEXT
-                              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
@@ -113,7 +108,7 @@
               63:      8(int) Constant 264
               64:      8(int) Constant 2
               89:             TypeBool
-90(gl_MeshPerPrimitiveEXT):             TypeStruct 43(int) 43(int) 43(int) 89(bool) 43(int)
+90(gl_MeshPerPrimitiveEXT):             TypeStruct 43(int) 43(int) 43(int) 89(bool)
               91:             TypeArray 90(gl_MeshPerPrimitiveEXT) 29
               92:             TypePointer Output 91
 93(gl_MeshPrimitivesEXT):     92(ptr) Variable Output
diff --git a/Test/baseResults/spv.ext.meshShaderBuiltinsShadingRate.mesh.out b/Test/baseResults/spv.ext.meshShaderBuiltinsShadingRate.mesh.out
new file mode 100644
index 0000000..65bd740
--- /dev/null
+++ b/Test/baseResults/spv.ext.meshShaderBuiltinsShadingRate.mesh.out
@@ -0,0 +1,281 @@
+spv.ext.meshShaderBuiltinsShadingRate.mesh
+// Module Version 10400
+// Generated by (magic number): 8000b
+// Id's are bound by 164
+
+                              Capability ClipDistance
+                              Capability CullDistance
+                              Capability FragmentShadingRateKHR
+                              Capability DrawParameters
+                              Capability MultiView
+                              Capability MeshShadingEXT
+                              Extension  "SPV_EXT_mesh_shader"
+                              Extension  "SPV_KHR_fragment_shading_rate"
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint MeshEXT 4  "main" 13 19 24 41 93 140 158 161
+                              ExecutionMode 4 LocalSize 32 1 1
+                              ExecutionMode 4 OutputVertices 81
+                              ExecutionMode 4 OutputPrimitivesNV 32
+                              ExecutionMode 4 OutputTrianglesNV
+                              Source GLSL 460
+                              SourceExtension  "GL_ARB_shader_draw_parameters"
+                              SourceExtension  "GL_EXT_fragment_shading_rate"
+                              SourceExtension  "GL_EXT_mesh_shader"
+                              SourceExtension  "GL_EXT_multiview"
+                              Name 4  "main"
+                              Name 6  "testAdditionalBuiltins("
+                              Name 10  "iid"
+                              Name 13  "gl_LocalInvocationID"
+                              Name 18  "gid"
+                              Name 19  "gl_WorkGroupID"
+                              Name 23  "numWorkGrous"
+                              Name 24  "gl_NumWorkGroups"
+                              Name 26  "vertexCount"
+                              Name 28  "primitiveCount"
+                              Name 38  "gl_MeshPerVertexEXT"
+                              MemberName 38(gl_MeshPerVertexEXT) 0  "gl_Position"
+                              MemberName 38(gl_MeshPerVertexEXT) 1  "gl_PointSize"
+                              MemberName 38(gl_MeshPerVertexEXT) 2  "gl_ClipDistance"
+                              MemberName 38(gl_MeshPerVertexEXT) 3  "gl_CullDistance"
+                              Name 41  "gl_MeshVerticesEXT"
+                              Name 90  "gl_MeshPerPrimitiveEXT"
+                              MemberName 90(gl_MeshPerPrimitiveEXT) 0  "gl_PrimitiveID"
+                              MemberName 90(gl_MeshPerPrimitiveEXT) 1  "gl_Layer"
+                              MemberName 90(gl_MeshPerPrimitiveEXT) 2  "gl_ViewportIndex"
+                              MemberName 90(gl_MeshPerPrimitiveEXT) 3  "gl_CullPrimitiveEXT"
+                              MemberName 90(gl_MeshPerPrimitiveEXT) 4  "gl_PrimitiveShadingRateEXT"
+                              Name 93  "gl_MeshPrimitivesEXT"
+                              Name 140  "gl_PrimitiveTriangleIndicesEXT"
+                              Name 156  "id"
+                              Name 158  "gl_DrawIDARB"
+                              Name 160  "viewIdx"
+                              Name 161  "gl_ViewIndex"
+                              Decorate 13(gl_LocalInvocationID) BuiltIn LocalInvocationId
+                              Decorate 19(gl_WorkGroupID) BuiltIn WorkgroupId
+                              Decorate 24(gl_NumWorkGroups) BuiltIn NumWorkgroups
+                              MemberDecorate 38(gl_MeshPerVertexEXT) 0 BuiltIn Position
+                              MemberDecorate 38(gl_MeshPerVertexEXT) 1 BuiltIn PointSize
+                              MemberDecorate 38(gl_MeshPerVertexEXT) 2 BuiltIn ClipDistance
+                              MemberDecorate 38(gl_MeshPerVertexEXT) 3 BuiltIn CullDistance
+                              Decorate 38(gl_MeshPerVertexEXT) Block
+                              MemberDecorate 90(gl_MeshPerPrimitiveEXT) 0 PerPrimitiveNV
+                              MemberDecorate 90(gl_MeshPerPrimitiveEXT) 0 BuiltIn PrimitiveId
+                              MemberDecorate 90(gl_MeshPerPrimitiveEXT) 1 PerPrimitiveNV
+                              MemberDecorate 90(gl_MeshPerPrimitiveEXT) 1 BuiltIn Layer
+                              MemberDecorate 90(gl_MeshPerPrimitiveEXT) 2 PerPrimitiveNV
+                              MemberDecorate 90(gl_MeshPerPrimitiveEXT) 2 BuiltIn ViewportIndex
+                              MemberDecorate 90(gl_MeshPerPrimitiveEXT) 3 PerPrimitiveNV
+                              MemberDecorate 90(gl_MeshPerPrimitiveEXT) 3 BuiltIn CullPrimitiveEXT
+                              MemberDecorate 90(gl_MeshPerPrimitiveEXT) 4 PerPrimitiveNV
+                              MemberDecorate 90(gl_MeshPerPrimitiveEXT) 4 BuiltIn PrimitiveShadingRateKHR
+                              Decorate 90(gl_MeshPerPrimitiveEXT) Block
+                              Decorate 140(gl_PrimitiveTriangleIndicesEXT) BuiltIn PrimitiveTriangleIndicesEXT
+                              Decorate 158(gl_DrawIDARB) BuiltIn DrawIndex
+                              Decorate 161(gl_ViewIndex) BuiltIn ViewIndex
+                              Decorate 163 BuiltIn WorkgroupSize
+               2:             TypeVoid
+               3:             TypeFunction 2
+               8:             TypeInt 32 0
+               9:             TypePointer Function 8(int)
+              11:             TypeVector 8(int) 3
+              12:             TypePointer Input 11(ivec3)
+13(gl_LocalInvocationID):     12(ptr) Variable Input
+              14:      8(int) Constant 0
+              15:             TypePointer Input 8(int)
+19(gl_WorkGroupID):     12(ptr) Variable Input
+              22:             TypePointer Function 11(ivec3)
+24(gl_NumWorkGroups):     12(ptr) Variable Input
+              27:      8(int) Constant 81
+              29:      8(int) Constant 32
+              32:             TypeFloat 32
+              33:             TypeVector 32(float) 4
+              34:      8(int) Constant 4
+              35:             TypeArray 32(float) 34
+              36:      8(int) Constant 3
+              37:             TypeArray 32(float) 36
+38(gl_MeshPerVertexEXT):             TypeStruct 33(fvec4) 32(float) 35 37
+              39:             TypeArray 38(gl_MeshPerVertexEXT) 27
+              40:             TypePointer Output 39
+41(gl_MeshVerticesEXT):     40(ptr) Variable Output
+              43:             TypeInt 32 1
+              44:     43(int) Constant 0
+              45:   32(float) Constant 1065353216
+              46:   33(fvec4) ConstantComposite 45 45 45 45
+              47:             TypePointer Output 33(fvec4)
+              50:     43(int) Constant 1
+              51:   32(float) Constant 1073741824
+              52:             TypePointer Output 32(float)
+              55:     43(int) Constant 2
+              56:     43(int) Constant 3
+              57:   32(float) Constant 1077936128
+              60:   32(float) Constant 1082130432
+              62:      8(int) Constant 1
+              63:      8(int) Constant 264
+              64:      8(int) Constant 2
+              89:             TypeBool
+90(gl_MeshPerPrimitiveEXT):             TypeStruct 43(int) 43(int) 43(int) 89(bool) 43(int)
+              91:             TypeArray 90(gl_MeshPerPrimitiveEXT) 29
+              92:             TypePointer Output 91
+93(gl_MeshPrimitivesEXT):     92(ptr) Variable Output
+              95:     43(int) Constant 6
+              96:             TypePointer Output 43(int)
+              99:     43(int) Constant 7
+             102:     43(int) Constant 8
+             105:    89(bool) ConstantFalse
+             106:             TypePointer Output 89(bool)
+             109:     43(int) Constant 4
+             138:             TypeArray 11(ivec3) 29
+             139:             TypePointer Output 138
+140(gl_PrimitiveTriangleIndicesEXT):    139(ptr) Variable Output
+             141:      8(int) Constant 257
+             142:   11(ivec3) ConstantComposite 141 141 141
+             143:             TypePointer Output 11(ivec3)
+             147:   11(ivec3) ConstantComposite 64 64 64
+             155:             TypePointer Function 43(int)
+             157:             TypePointer Input 43(int)
+158(gl_DrawIDARB):    157(ptr) Variable Input
+161(gl_ViewIndex):    157(ptr) Variable Input
+             163:   11(ivec3) ConstantComposite 29 62 62
+         4(main):           2 Function None 3
+               5:             Label
+         10(iid):      9(ptr) Variable Function
+         18(gid):      9(ptr) Variable Function
+23(numWorkGrous):     22(ptr) Variable Function
+ 26(vertexCount):      9(ptr) Variable Function
+28(primitiveCount):      9(ptr) Variable Function
+              16:     15(ptr) AccessChain 13(gl_LocalInvocationID) 14
+              17:      8(int) Load 16
+                              Store 10(iid) 17
+              20:     15(ptr) AccessChain 19(gl_WorkGroupID) 14
+              21:      8(int) Load 20
+                              Store 18(gid) 21
+              25:   11(ivec3) Load 24(gl_NumWorkGroups)
+                              Store 23(numWorkGrous) 25
+                              Store 26(vertexCount) 27
+                              Store 28(primitiveCount) 29
+              30:      8(int) Load 26(vertexCount)
+              31:      8(int) Load 28(primitiveCount)
+                              SetMeshOutputsEXT 30 31
+              42:      8(int) Load 10(iid)
+              48:     47(ptr) AccessChain 41(gl_MeshVerticesEXT) 42 44
+                              Store 48 46
+              49:      8(int) Load 10(iid)
+              53:     52(ptr) AccessChain 41(gl_MeshVerticesEXT) 49 50
+                              Store 53 51
+              54:      8(int) Load 10(iid)
+              58:     52(ptr) AccessChain 41(gl_MeshVerticesEXT) 54 55 56
+                              Store 58 57
+              59:      8(int) Load 10(iid)
+              61:     52(ptr) AccessChain 41(gl_MeshVerticesEXT) 59 56 55
+                              Store 61 60
+                              MemoryBarrier 62 63
+                              ControlBarrier 64 64 63
+              65:      8(int) Load 10(iid)
+              66:      8(int) IAdd 65 62
+              67:      8(int) Load 10(iid)
+              68:     47(ptr) AccessChain 41(gl_MeshVerticesEXT) 67 44
+              69:   33(fvec4) Load 68
+              70:     47(ptr) AccessChain 41(gl_MeshVerticesEXT) 66 44
+                              Store 70 69
+              71:      8(int) Load 10(iid)
+              72:      8(int) IAdd 71 62
+              73:      8(int) Load 10(iid)
+              74:     52(ptr) AccessChain 41(gl_MeshVerticesEXT) 73 50
+              75:   32(float) Load 74
+              76:     52(ptr) AccessChain 41(gl_MeshVerticesEXT) 72 50
+                              Store 76 75
+              77:      8(int) Load 10(iid)
+              78:      8(int) IAdd 77 62
+              79:      8(int) Load 10(iid)
+              80:     52(ptr) AccessChain 41(gl_MeshVerticesEXT) 79 55 56
+              81:   32(float) Load 80
+              82:     52(ptr) AccessChain 41(gl_MeshVerticesEXT) 78 55 56
+                              Store 82 81
+              83:      8(int) Load 10(iid)
+              84:      8(int) IAdd 83 62
+              85:      8(int) Load 10(iid)
+              86:     52(ptr) AccessChain 41(gl_MeshVerticesEXT) 85 56 55
+              87:   32(float) Load 86
+              88:     52(ptr) AccessChain 41(gl_MeshVerticesEXT) 84 56 55
+                              Store 88 87
+                              MemoryBarrier 62 63
+                              ControlBarrier 64 64 63
+              94:      8(int) Load 10(iid)
+              97:     96(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 94 44
+                              Store 97 95
+              98:      8(int) Load 10(iid)
+             100:     96(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 98 50
+                              Store 100 99
+             101:      8(int) Load 10(iid)
+             103:     96(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 101 55
+                              Store 103 102
+             104:      8(int) Load 10(iid)
+             107:    106(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 104 56
+                              Store 107 105
+             108:      8(int) Load 10(iid)
+             110:     96(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 108 109
+                              Store 110 44
+                              MemoryBarrier 62 63
+                              ControlBarrier 64 64 63
+             111:      8(int) Load 10(iid)
+             112:      8(int) IAdd 111 62
+             113:      8(int) Load 10(iid)
+             114:     96(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 113 44
+             115:     43(int) Load 114
+             116:     96(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 112 44
+                              Store 116 115
+             117:      8(int) Load 10(iid)
+             118:      8(int) IAdd 117 62
+             119:      8(int) Load 10(iid)
+             120:     96(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 119 50
+             121:     43(int) Load 120
+             122:     96(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 118 50
+                              Store 122 121
+             123:      8(int) Load 10(iid)
+             124:      8(int) IAdd 123 62
+             125:      8(int) Load 10(iid)
+             126:     96(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 125 55
+             127:     43(int) Load 126
+             128:     96(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 124 55
+                              Store 128 127
+             129:      8(int) Load 10(iid)
+             130:      8(int) IAdd 129 62
+             131:      8(int) Load 10(iid)
+             132:    106(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 131 56
+             133:    89(bool) Load 132
+             134:    106(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 130 56
+                              Store 134 133
+             135:      8(int) Load 10(iid)
+             136:      8(int) IAdd 135 62
+             137:     96(ptr) AccessChain 93(gl_MeshPrimitivesEXT) 136 109
+                              Store 137 44
+                              MemoryBarrier 62 63
+                              ControlBarrier 64 64 63
+             144:    143(ptr) AccessChain 140(gl_PrimitiveTriangleIndicesEXT) 44
+                              Store 144 142
+             145:      8(int) Load 28(primitiveCount)
+             146:      8(int) ISub 145 62
+             148:    143(ptr) AccessChain 140(gl_PrimitiveTriangleIndicesEXT) 146
+                              Store 148 147
+             149:      8(int) Load 18(gid)
+             150:      8(int) Load 18(gid)
+             151:      8(int) ISub 150 62
+             152:    143(ptr) AccessChain 140(gl_PrimitiveTriangleIndicesEXT) 151
+             153:   11(ivec3) Load 152
+             154:    143(ptr) AccessChain 140(gl_PrimitiveTriangleIndicesEXT) 149
+                              Store 154 153
+                              MemoryBarrier 62 63
+                              ControlBarrier 64 64 63
+                              Return
+                              FunctionEnd
+6(testAdditionalBuiltins():           2 Function None 3
+               7:             Label
+         156(id):    155(ptr) Variable Function
+    160(viewIdx):    155(ptr) Variable Function
+             159:     43(int) Load 158(gl_DrawIDARB)
+                              Store 156(id) 159
+             162:     43(int) Load 161(gl_ViewIndex)
+                              Store 160(viewIdx) 162
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.ext.meshShaderRedeclBuiltins.mesh.out b/Test/baseResults/spv.ext.meshShaderRedeclBuiltins.mesh.out
index a331a47..3577300 100644
--- a/Test/baseResults/spv.ext.meshShaderRedeclBuiltins.mesh.out
+++ b/Test/baseResults/spv.ext.meshShaderRedeclBuiltins.mesh.out
@@ -5,10 +5,8 @@
 
                               Capability ClipDistance
                               Capability CullDistance
-                              Capability FragmentShadingRateKHR
                               Capability MeshShadingEXT
                               Extension  "SPV_EXT_mesh_shader"
-                              Extension  "SPV_KHR_fragment_shading_rate"
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
                               EntryPoint MeshEXT 4  "main" 11 17 29 81 122
@@ -34,7 +32,6 @@
                               MemberName 78(gl_MeshPerPrimitiveEXT) 1  "gl_Layer"
                               MemberName 78(gl_MeshPerPrimitiveEXT) 2  "gl_ViewportIndex"
                               MemberName 78(gl_MeshPerPrimitiveEXT) 3  "gl_CullPrimitiveEXT"
-                              MemberName 78(gl_MeshPerPrimitiveEXT) 4  "gl_PrimitiveShadingRateEXT"
                               Name 81  "gl_MeshPrimitivesEXT"
                               Name 122  "gl_PrimitivePointIndicesEXT"
                               Decorate 11(gl_LocalInvocationID) BuiltIn LocalInvocationId
@@ -52,8 +49,6 @@
                               MemberDecorate 78(gl_MeshPerPrimitiveEXT) 2 BuiltIn ViewportIndex
                               MemberDecorate 78(gl_MeshPerPrimitiveEXT) 3 PerPrimitiveNV
                               MemberDecorate 78(gl_MeshPerPrimitiveEXT) 3 BuiltIn CullPrimitiveEXT
-                              MemberDecorate 78(gl_MeshPerPrimitiveEXT) 4 PerPrimitiveNV
-                              MemberDecorate 78(gl_MeshPerPrimitiveEXT) 4 BuiltIn PrimitiveShadingRateKHR
                               Decorate 78(gl_MeshPerPrimitiveEXT) Block
                               Decorate 122(gl_PrimitivePointIndicesEXT) BuiltIn PrimitivePointIndicesEXT
                               Decorate 127 BuiltIn WorkgroupSize
@@ -93,7 +88,7 @@
               51:      6(int) Constant 264
               52:      6(int) Constant 2
               77:             TypeBool
-78(gl_MeshPerPrimitiveEXT):             TypeStruct 31(int) 31(int) 31(int) 77(bool) 31(int)
+78(gl_MeshPerPrimitiveEXT):             TypeStruct 31(int) 31(int) 31(int) 77(bool)
               79:             TypeArray 78(gl_MeshPerPrimitiveEXT) 21
               80:             TypePointer Output 79
 81(gl_MeshPrimitivesEXT):     80(ptr) Variable Output
diff --git a/Test/baseResults/spv.ext.textureShadowLod.error.frag.out b/Test/baseResults/spv.ext.textureShadowLod.error.frag.out
new file mode 100644
index 0000000..18adb05
--- /dev/null
+++ b/Test/baseResults/spv.ext.textureShadowLod.error.frag.out
@@ -0,0 +1,6 @@
+spv.ext.textureShadowLod.error.frag
+ERROR: 0:11: 'textureLod(..., float lod)' : required extension not requested: GL_EXT_texture_shadow_lod
+ERROR: 1 compilation errors.  No code generated.
+
+
+SPIR-V is not generated for failed compile or link
diff --git a/Test/baseResults/spv.ext.textureShadowLod.frag.out b/Test/baseResults/spv.ext.textureShadowLod.frag.out
new file mode 100644
index 0000000..ca4a872
--- /dev/null
+++ b/Test/baseResults/spv.ext.textureShadowLod.frag.out
@@ -0,0 +1,89 @@
+spv.ext.textureShadowLod.frag
+// Module Version 10000
+// Generated by (magic number): 8000b
+// Id's are bound by 55
+
+                              Capability Shader
+                              Capability SampledCubeArray
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 8 16
+                              ExecutionMode 4 OriginUpperLeft
+                              Source GLSL 450
+                              SourceExtension  "GL_EXT_texture_shadow_lod"
+                              Name 4  "main"
+                              Name 8  "c"
+                              Name 12  "s2da"
+                              Name 16  "tc"
+                              Name 24  "sca"
+                              Name 43  "sc"
+                              Decorate 8(c) Location 0
+                              Decorate 12(s2da) DescriptorSet 0
+                              Decorate 12(s2da) Binding 0
+                              Decorate 16(tc) Location 0
+                              Decorate 24(sca) DescriptorSet 0
+                              Decorate 24(sca) Binding 1
+                              Decorate 43(sc) DescriptorSet 0
+                              Decorate 43(sc) Binding 2
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypePointer Output 6(float)
+            8(c):      7(ptr) Variable Output
+               9:             TypeImage 6(float) 2D depth array sampled format:Unknown
+              10:             TypeSampledImage 9
+              11:             TypePointer UniformConstant 10
+        12(s2da):     11(ptr) Variable UniformConstant
+              14:             TypeVector 6(float) 4
+              15:             TypePointer Input 14(fvec4)
+          16(tc):     15(ptr) Variable Input
+              18:    6(float) Constant 0
+              21:             TypeImage 6(float) Cube depth array sampled format:Unknown
+              22:             TypeSampledImage 21
+              23:             TypePointer UniformConstant 22
+         24(sca):     23(ptr) Variable UniformConstant
+              30:             TypeInt 32 1
+              31:             TypeVector 30(int) 2
+              32:     30(int) Constant 0
+              33:   31(ivec2) ConstantComposite 32 32
+              40:             TypeImage 6(float) Cube depth sampled format:Unknown
+              41:             TypeSampledImage 40
+              42:             TypePointer UniformConstant 41
+          43(sc):     42(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+              13:          10 Load 12(s2da)
+              17:   14(fvec4) Load 16(tc)
+              19:    6(float) CompositeExtract 17 3
+              20:    6(float) ImageSampleDrefImplicitLod 13 17 19 Bias 18
+                              Store 8(c) 20
+              25:          22 Load 24(sca)
+              26:   14(fvec4) Load 16(tc)
+              27:    6(float) ImageSampleDrefImplicitLod 25 26 18
+                              Store 8(c) 27
+              28:          10 Load 12(s2da)
+              29:   14(fvec4) Load 16(tc)
+              34:    6(float) CompositeExtract 29 3
+              35:    6(float) ImageSampleDrefImplicitLod 28 29 34 Bias ConstOffset 18 33
+                              Store 8(c) 35
+              36:          10 Load 12(s2da)
+              37:   14(fvec4) Load 16(tc)
+              38:    6(float) CompositeExtract 37 3
+              39:    6(float) ImageSampleDrefExplicitLod 36 37 38 Lod 18
+                              Store 8(c) 39
+              44:          41 Load 43(sc)
+              45:   14(fvec4) Load 16(tc)
+              46:    6(float) CompositeExtract 45 3
+              47:    6(float) ImageSampleDrefExplicitLod 44 45 46 Lod 18
+                              Store 8(c) 47
+              48:          22 Load 24(sca)
+              49:   14(fvec4) Load 16(tc)
+              50:    6(float) ImageSampleDrefExplicitLod 48 49 18 Lod 18
+                              Store 8(c) 50
+              51:          10 Load 12(s2da)
+              52:   14(fvec4) Load 16(tc)
+              53:    6(float) CompositeExtract 52 3
+              54:    6(float) ImageSampleDrefExplicitLod 51 52 53 Lod ConstOffset 18 33
+                              Store 8(c) 54
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.floatFetch.frag.out b/Test/baseResults/spv.floatFetch.frag.out
new file mode 100644
index 0000000..8b9fc72
--- /dev/null
+++ b/Test/baseResults/spv.floatFetch.frag.out
@@ -0,0 +1,4423 @@
+spv.floatFetch.frag
+Validation failed
+// Module Version 10000
+// Generated by (magic number): 8000b
+// Id's are bound by 3599
+
+                              Capability Shader
+                              Capability ImageGatherExtended
+                              Capability StorageImageMultisample
+                              Capability ImageCubeArray
+                              Capability ImageRect
+                              Capability SampledRect
+                              Capability InputAttachment
+                              Capability SparseResidency
+                              Capability MinLod
+                              Capability Sampled1D
+                              Capability Image1D
+                              Capability SampledCubeArray
+                              Capability SampledBuffer
+                              Capability ImageBuffer
+                              Capability ImageMSArray
+                              Capability ImageQuery
+                              Capability ImageGatherBiasLodAMD
+                              Extension  "SPV_AMD_texture_gather_bias_lod"
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 127 138 150 197 283 371 866 874 882 2665 3590 3598
+                              ExecutionMode 4 OriginUpperLeft
+                              Source GLSL 450
+                              SourceExtension  "GL_AMD_texture_gather_bias_lod"
+                              SourceExtension  "GL_ARB_sparse_texture2"
+                              SourceExtension  "GL_ARB_sparse_texture_clamp"
+                              Name 4  "main"
+                              Name 9  "testTexture("
+                              Name 11  "testTextureProj("
+                              Name 13  "testTextureLod("
+                              Name 15  "testTextureOffset("
+                              Name 17  "testTextureProjOffset("
+                              Name 19  "testTextureLodOffset("
+                              Name 21  "testTextureProjLodOffset("
+                              Name 23  "testTexelFetch("
+                              Name 25  "testTexelFetchOffset("
+                              Name 27  "testTextureGrad("
+                              Name 29  "testTextureGradOffset("
+                              Name 31  "testTextureProjGrad("
+                              Name 33  "testTextureProjGradoffset("
+                              Name 35  "testTextureGather("
+                              Name 37  "testTextureGatherOffset("
+                              Name 39  "testTextureGatherOffsets("
+                              Name 41  "testTextureGatherLod("
+                              Name 43  "testTextureGatherLodOffset("
+                              Name 45  "testTextureGatherLodOffsets("
+                              Name 50  "testTextureSize("
+                              Name 54  "testTextureQueryLod("
+                              Name 57  "testTextureQueryLevels("
+                              Name 59  "testTextureSamples("
+                              Name 61  "testImageLoad("
+                              Name 66  "testImageStore(vf4;"
+                              Name 65  "data"
+                              Name 68  "testSparseTexture("
+                              Name 70  "testSparseTextureLod("
+                              Name 72  "testSparseTextureOffset("
+                              Name 74  "testSparseTextureLodOffset("
+                              Name 76  "testSparseTextureGrad("
+                              Name 78  "testSparseTextureGradOffset("
+                              Name 80  "testSparseTexelFetch("
+                              Name 82  "testSparseTexelFetchOffset("
+                              Name 84  "testSparseTextureGather("
+                              Name 86  "testSparseTextureGatherOffset("
+                              Name 88  "testSparseTextureGatherOffsets("
+                              Name 90  "testSparseTextureGatherLod("
+                              Name 92  "testSparseTextureGatherLodOffset("
+                              Name 94  "testSparseTextureGatherLodOffsets("
+                              Name 96  "testSparseImageLoad("
+                              Name 98  "testSparseTextureClamp("
+                              Name 100  "testTextureClamp("
+                              Name 102  "testSparseTextureOffsetClamp("
+                              Name 104  "testTextureOffsetClamp("
+                              Name 106  "testSparseTextureGradClamp("
+                              Name 108  "testTextureGradClamp("
+                              Name 110  "testSparseTextureGradOffsetClamp("
+                              Name 112  "testTextureGradOffsetClamp("
+                              Name 114  "testCombinedTextureSampler("
+                              Name 116  "testSubpassLoad("
+                              Name 118  "texel"
+                              Name 124  "s1D"
+                              Name 127  "c1"
+                              Name 135  "s2D"
+                              Name 138  "c2"
+                              Name 146  "s3D"
+                              Name 150  "c3"
+                              Name 158  "sCube"
+                              Name 167  "s1DShadow"
+                              Name 182  "s2DShadow"
+                              Name 194  "sCubeShadow"
+                              Name 197  "c4"
+                              Name 208  "s1DArray"
+                              Name 217  "s2DArray"
+                              Name 226  "sCubeArray"
+                              Name 235  "s1DArrayShadow"
+                              Name 247  "s2DArrayShadow"
+                              Name 259  "s2DRect"
+                              Name 268  "s2DRectShadow"
+                              Name 280  "sCubeArrayShadow"
+                              Name 283  "compare"
+                              Name 293  "texel"
+                              Name 368  "texel"
+                              Name 371  "lod"
+                              Name 442  "texel"
+                              Name 521  "texel"
+                              Name 596  "texel"
+                              Name 657  "texel"
+                              Name 717  "texel"
+                              Name 773  "sBuffer"
+                              Name 784  "s2DMS"
+                              Name 795  "s2DMSArray"
+                              Name 807  "texel"
+                              Name 863  "texel"
+                              Name 866  "dPdxy1"
+                              Name 874  "dPdxy2"
+                              Name 882  "dPdxy3"
+                              Name 986  "texel"
+                              Name 1082  "texel"
+                              Name 1177  "texel"
+                              Name 1272  "texel"
+                              Name 1332  "texel"
+                              Name 1369  "texel"
+                              Name 1409  "texel"
+                              Name 1437  "texel"
+                              Name 1453  "texel"
+                              Name 1470  "size"
+                              Name 1688  "lod"
+                              Name 1758  "levels"
+                              Name 1827  "samples"
+                              Name 1841  "texel"
+                              Name 1844  "i1D"
+                              Name 1853  "i2D"
+                              Name 1862  "i3D"
+                              Name 1871  "i2DRect"
+                              Name 1880  "iCube"
+                              Name 1889  "iBuffer"
+                              Name 1898  "i1DArray"
+                              Name 1907  "i2DArray"
+                              Name 1916  "iCubeArray"
+                              Name 1925  "i2DMS"
+                              Name 1934  "i2DMSArray"
+                              Name 1988  "texel"
+                              Name 1991  "ResType"
+                              Name 2009  "ResType"
+                              Name 2059  "texel"
+                              Name 2101  "texel"
+                              Name 2146  "texel"
+                              Name 2176  "texel"
+                              Name 2258  "texel"
+                              Name 2317  "texel"
+                              Name 2369  "texel"
+                              Name 2407  "texel"
+                              Name 2466  "texel"
+                              Name 2503  "texel"
+                              Name 2550  "texel"
+                              Name 2578  "texel"
+                              Name 2594  "texel"
+                              Name 2610  "texel"
+                              Name 2662  "texel"
+                              Name 2665  "lodClamp"
+                              Name 2729  "texel"
+                              Name 2829  "texel"
+                              Name 2867  "texel"
+                              Name 2937  "texel"
+                              Name 3011  "texel"
+                              Name 3126  "texel"
+                              Name 3174  "texel"
+                              Name 3262  "texel"
+                              Name 3264  "t1D"
+                              Name 3268  "s"
+                              Name 3276  "t2D"
+                              Name 3285  "t3D"
+                              Name 3294  "tCube"
+                              Name 3303  "sShadow"
+                              Name 3334  "t1DArray"
+                              Name 3343  "t2DArray"
+                              Name 3352  "tCubeArray"
+                              Name 3381  "t2DRect"
+                              Name 3414  "subpass"
+                              Name 3420  "subpassMS"
+                              Name 3426  "result"
+                              Name 3511  "param"
+                              Name 3590  "fragColor"
+                              Name 3593  "tBuffer"
+                              Name 3595  "t2DMS"
+                              Name 3597  "t2DMSArray"
+                              Name 3598  "bias"
+                              Decorate 124(s1D) DescriptorSet 0
+                              Decorate 124(s1D) Binding 0
+                              Decorate 127(c1) Location 0
+                              Decorate 135(s2D) DescriptorSet 0
+                              Decorate 135(s2D) Binding 1
+                              Decorate 138(c2) Location 1
+                              Decorate 146(s3D) DescriptorSet 0
+                              Decorate 146(s3D) Binding 2
+                              Decorate 150(c3) Location 2
+                              Decorate 158(sCube) DescriptorSet 0
+                              Decorate 158(sCube) Binding 4
+                              Decorate 167(s1DShadow) DescriptorSet 0
+                              Decorate 167(s1DShadow) Binding 11
+                              Decorate 182(s2DShadow) DescriptorSet 0
+                              Decorate 182(s2DShadow) Binding 12
+                              Decorate 194(sCubeShadow) DescriptorSet 0
+                              Decorate 194(sCubeShadow) Binding 14
+                              Decorate 197(c4) Location 3
+                              Decorate 208(s1DArray) DescriptorSet 0
+                              Decorate 208(s1DArray) Binding 7
+                              Decorate 217(s2DArray) DescriptorSet 0
+                              Decorate 217(s2DArray) Binding 8
+                              Decorate 226(sCubeArray) DescriptorSet 0
+                              Decorate 226(sCubeArray) Binding 9
+                              Decorate 235(s1DArrayShadow) DescriptorSet 0
+                              Decorate 235(s1DArrayShadow) Binding 15
+                              Decorate 247(s2DArrayShadow) DescriptorSet 0
+                              Decorate 247(s2DArrayShadow) Binding 16
+                              Decorate 259(s2DRect) DescriptorSet 0
+                              Decorate 259(s2DRect) Binding 3
+                              Decorate 268(s2DRectShadow) DescriptorSet 0
+                              Decorate 268(s2DRectShadow) Binding 13
+                              Decorate 280(sCubeArrayShadow) DescriptorSet 0
+                              Decorate 280(sCubeArrayShadow) Binding 17
+                              Decorate 283(compare) Location 4
+                              Decorate 371(lod) Location 5
+                              Decorate 773(sBuffer) DescriptorSet 0
+                              Decorate 773(sBuffer) Binding 5
+                              Decorate 784(s2DMS) DescriptorSet 0
+                              Decorate 784(s2DMS) Binding 6
+                              Decorate 795(s2DMSArray) DescriptorSet 0
+                              Decorate 795(s2DMSArray) Binding 10
+                              Decorate 866(dPdxy1) Location 8
+                              Decorate 874(dPdxy2) Location 9
+                              Decorate 882(dPdxy3) Location 10
+                              Decorate 1844(i1D) DescriptorSet 1
+                              Decorate 1844(i1D) Binding 0
+                              Decorate 1853(i2D) DescriptorSet 1
+                              Decorate 1853(i2D) Binding 1
+                              Decorate 1862(i3D) DescriptorSet 1
+                              Decorate 1862(i3D) Binding 2
+                              Decorate 1871(i2DRect) DescriptorSet 1
+                              Decorate 1871(i2DRect) Binding 3
+                              Decorate 1880(iCube) DescriptorSet 1
+                              Decorate 1880(iCube) Binding 4
+                              Decorate 1889(iBuffer) DescriptorSet 1
+                              Decorate 1889(iBuffer) Binding 8
+                              Decorate 1898(i1DArray) DescriptorSet 1
+                              Decorate 1898(i1DArray) Binding 5
+                              Decorate 1907(i2DArray) DescriptorSet 1
+                              Decorate 1907(i2DArray) Binding 6
+                              Decorate 1916(iCubeArray) DescriptorSet 1
+                              Decorate 1916(iCubeArray) Binding 7
+                              Decorate 1925(i2DMS) DescriptorSet 1
+                              Decorate 1925(i2DMS) Binding 9
+                              Decorate 1934(i2DMSArray) DescriptorSet 1
+                              Decorate 1934(i2DMSArray) Binding 10
+                              Decorate 2665(lodClamp) Location 7
+                              Decorate 3264(t1D) DescriptorSet 2
+                              Decorate 3264(t1D) Binding 0
+                              Decorate 3268(s) DescriptorSet 2
+                              Decorate 3268(s) Binding 11
+                              Decorate 3276(t2D) DescriptorSet 2
+                              Decorate 3276(t2D) Binding 1
+                              Decorate 3285(t3D) DescriptorSet 2
+                              Decorate 3285(t3D) Binding 2
+                              Decorate 3294(tCube) DescriptorSet 2
+                              Decorate 3294(tCube) Binding 4
+                              Decorate 3303(sShadow) DescriptorSet 2
+                              Decorate 3303(sShadow) Binding 12
+                              Decorate 3334(t1DArray) DescriptorSet 2
+                              Decorate 3334(t1DArray) Binding 5
+                              Decorate 3343(t2DArray) DescriptorSet 2
+                              Decorate 3343(t2DArray) Binding 6
+                              Decorate 3352(tCubeArray) DescriptorSet 2
+                              Decorate 3352(tCubeArray) Binding 7
+                              Decorate 3381(t2DRect) DescriptorSet 2
+                              Decorate 3381(t2DRect) Binding 3
+                              Decorate 3414(subpass) DescriptorSet 3
+                              Decorate 3414(subpass) Binding 0
+                              Decorate 3414(subpass) InputAttachmentIndex 0
+                              Decorate 3420(subpassMS) DescriptorSet 3
+                              Decorate 3420(subpassMS) Binding 1
+                              Decorate 3420(subpassMS) InputAttachmentIndex 0
+                              Decorate 3590(fragColor) Location 0
+                              Decorate 3593(tBuffer) DescriptorSet 2
+                              Decorate 3593(tBuffer) Binding 8
+                              Decorate 3595(t2DMS) DescriptorSet 2
+                              Decorate 3595(t2DMS) Binding 9
+                              Decorate 3597(t2DMSArray) DescriptorSet 2
+                              Decorate 3597(t2DMSArray) Binding 10
+                              Decorate 3598(bias) Location 6
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypeFunction 7(fvec4)
+              47:             TypeInt 32 1
+              48:             TypeVector 47(int) 4
+              49:             TypeFunction 48(ivec4)
+              52:             TypeVector 6(float) 2
+              53:             TypeFunction 52(fvec2)
+              56:             TypeFunction 47(int)
+              63:             TypePointer Function 7(fvec4)
+              64:             TypeFunction 2 63(ptr)
+             119:    6(float) Constant 0
+             120:    7(fvec4) ConstantComposite 119 119 119 119
+             121:             TypeImage 6(float) 1D sampled format:Unknown
+             122:             TypeSampledImage 121
+             123:             TypePointer UniformConstant 122
+        124(s1D):    123(ptr) Variable UniformConstant
+             126:             TypePointer Input 6(float)
+         127(c1):    126(ptr) Variable Input
+             132:             TypeImage 6(float) 2D sampled format:Unknown
+             133:             TypeSampledImage 132
+             134:             TypePointer UniformConstant 133
+        135(s2D):    134(ptr) Variable UniformConstant
+             137:             TypePointer Input 52(fvec2)
+         138(c2):    137(ptr) Variable Input
+             143:             TypeImage 6(float) 3D sampled format:Unknown
+             144:             TypeSampledImage 143
+             145:             TypePointer UniformConstant 144
+        146(s3D):    145(ptr) Variable UniformConstant
+             148:             TypeVector 6(float) 3
+             149:             TypePointer Input 148(fvec3)
+         150(c3):    149(ptr) Variable Input
+             155:             TypeImage 6(float) Cube sampled format:Unknown
+             156:             TypeSampledImage 155
+             157:             TypePointer UniformConstant 156
+      158(sCube):    157(ptr) Variable UniformConstant
+             164:             TypeImage 6(float) 1D depth sampled format:Unknown
+             165:             TypeSampledImage 164
+             166:             TypePointer UniformConstant 165
+  167(s1DShadow):    166(ptr) Variable UniformConstant
+             172:             TypeInt 32 0
+             173:    172(int) Constant 0
+             174:             TypePointer Function 6(float)
+             179:             TypeImage 6(float) 2D depth sampled format:Unknown
+             180:             TypeSampledImage 179
+             181:             TypePointer UniformConstant 180
+  182(s2DShadow):    181(ptr) Variable UniformConstant
+             191:             TypeImage 6(float) Cube depth sampled format:Unknown
+             192:             TypeSampledImage 191
+             193:             TypePointer UniformConstant 192
+194(sCubeShadow):    193(ptr) Variable UniformConstant
+             196:             TypePointer Input 7(fvec4)
+         197(c4):    196(ptr) Variable Input
+             205:             TypeImage 6(float) 1D array sampled format:Unknown
+             206:             TypeSampledImage 205
+             207:             TypePointer UniformConstant 206
+   208(s1DArray):    207(ptr) Variable UniformConstant
+             214:             TypeImage 6(float) 2D array sampled format:Unknown
+             215:             TypeSampledImage 214
+             216:             TypePointer UniformConstant 215
+   217(s2DArray):    216(ptr) Variable UniformConstant
+             223:             TypeImage 6(float) Cube array sampled format:Unknown
+             224:             TypeSampledImage 223
+             225:             TypePointer UniformConstant 224
+ 226(sCubeArray):    225(ptr) Variable UniformConstant
+             232:             TypeImage 6(float) 1D depth array sampled format:Unknown
+             233:             TypeSampledImage 232
+             234:             TypePointer UniformConstant 233
+235(s1DArrayShadow):    234(ptr) Variable UniformConstant
+             244:             TypeImage 6(float) 2D depth array sampled format:Unknown
+             245:             TypeSampledImage 244
+             246:             TypePointer UniformConstant 245
+247(s2DArrayShadow):    246(ptr) Variable UniformConstant
+             256:             TypeImage 6(float) Rect sampled format:Unknown
+             257:             TypeSampledImage 256
+             258:             TypePointer UniformConstant 257
+    259(s2DRect):    258(ptr) Variable UniformConstant
+             265:             TypeImage 6(float) Rect depth sampled format:Unknown
+             266:             TypeSampledImage 265
+             267:             TypePointer UniformConstant 266
+268(s2DRectShadow):    267(ptr) Variable UniformConstant
+             277:             TypeImage 6(float) Cube depth array sampled format:Unknown
+             278:             TypeSampledImage 277
+             279:             TypePointer UniformConstant 278
+280(sCubeArrayShadow):    279(ptr) Variable UniformConstant
+    283(compare):    126(ptr) Variable Input
+        371(lod):    126(ptr) Variable Input
+             445:     47(int) Constant 1
+             451:             TypeVector 47(int) 2
+             452:  451(ivec2) ConstantComposite 445 445
+             458:             TypeVector 47(int) 3
+             459:  458(ivec3) ConstantComposite 445 445 445
+             770:             TypeImage 6(float) Buffer sampled format:Unknown
+             771:             TypeSampledImage 770
+             772:             TypePointer UniformConstant 771
+    773(sBuffer):    772(ptr) Variable UniformConstant
+             781:             TypeImage 6(float) 2D multi-sampled sampled format:Unknown
+             782:             TypeSampledImage 781
+             783:             TypePointer UniformConstant 782
+      784(s2DMS):    783(ptr) Variable UniformConstant
+             792:             TypeImage 6(float) 2D array multi-sampled sampled format:Unknown
+             793:             TypeSampledImage 792
+             794:             TypePointer UniformConstant 793
+ 795(s2DMSArray):    794(ptr) Variable UniformConstant
+             799:     47(int) Constant 2
+     866(dPdxy1):    126(ptr) Variable Input
+     874(dPdxy2):    137(ptr) Variable Input
+     882(dPdxy3):    149(ptr) Variable Input
+            1275:     47(int) Constant 0
+            1372:    172(int) Constant 4
+            1373:             TypeArray 451(ivec2) 1372
+            1374:        1373 ConstantComposite 452 452 452 452
+            1469:             TypePointer Function 48(ivec4)
+            1471:   48(ivec4) ConstantComposite 1275 1275 1275 1275
+            1477:             TypePointer Function 47(int)
+            1492:    172(int) Constant 1
+            1507:    172(int) Constant 2
+            1687:             TypePointer Function 52(fvec2)
+            1689:   52(fvec2) ConstantComposite 119 119
+            1842:             TypeImage 6(float) 1D nonsampled format:Rgba16f
+            1843:             TypePointer UniformConstant 1842
+       1844(i1D):   1843(ptr) Variable UniformConstant
+            1851:             TypeImage 6(float) 2D nonsampled format:Rgba16f
+            1852:             TypePointer UniformConstant 1851
+       1853(i2D):   1852(ptr) Variable UniformConstant
+            1860:             TypeImage 6(float) 3D nonsampled format:Rgba16f
+            1861:             TypePointer UniformConstant 1860
+       1862(i3D):   1861(ptr) Variable UniformConstant
+            1869:             TypeImage 6(float) Rect nonsampled format:Rgba16f
+            1870:             TypePointer UniformConstant 1869
+   1871(i2DRect):   1870(ptr) Variable UniformConstant
+            1878:             TypeImage 6(float) Cube nonsampled format:Rgba16f
+            1879:             TypePointer UniformConstant 1878
+     1880(iCube):   1879(ptr) Variable UniformConstant
+            1887:             TypeImage 6(float) Buffer nonsampled format:Rgba16f
+            1888:             TypePointer UniformConstant 1887
+   1889(iBuffer):   1888(ptr) Variable UniformConstant
+            1896:             TypeImage 6(float) 1D array nonsampled format:Rgba16f
+            1897:             TypePointer UniformConstant 1896
+  1898(i1DArray):   1897(ptr) Variable UniformConstant
+            1905:             TypeImage 6(float) 2D array nonsampled format:Rgba16f
+            1906:             TypePointer UniformConstant 1905
+  1907(i2DArray):   1906(ptr) Variable UniformConstant
+            1914:             TypeImage 6(float) Cube array nonsampled format:Rgba16f
+            1915:             TypePointer UniformConstant 1914
+1916(iCubeArray):   1915(ptr) Variable UniformConstant
+            1923:             TypeImage 6(float) 2D multi-sampled nonsampled format:Rgba16f
+            1924:             TypePointer UniformConstant 1923
+     1925(i2DMS):   1924(ptr) Variable UniformConstant
+            1932:             TypeImage 6(float) 2D array multi-sampled nonsampled format:Rgba16f
+            1933:             TypePointer UniformConstant 1932
+1934(i2DMSArray):   1933(ptr) Variable UniformConstant
+   1991(ResType):             TypeStruct 47(int) 7(fvec4)
+   2009(ResType):             TypeStruct 47(int) 6(float)
+            2506:  451(ivec2) ConstantComposite 445 799
+            2507:     47(int) Constant 3
+            2508:     47(int) Constant 4
+            2509:  451(ivec2) ConstantComposite 2507 2508
+            2510:     47(int) Constant 15
+            2511:     47(int) Constant 16
+            2512:  451(ivec2) ConstantComposite 2510 2511
+            2513:     47(int) Constant 4294967294
+            2514:  451(ivec2) ConstantComposite 2513 1275
+            2515:        1373 ConstantComposite 2506 2509 2512 2514
+  2665(lodClamp):    126(ptr) Variable Input
+            3263:             TypePointer UniformConstant 121
+       3264(t1D):   3263(ptr) Variable UniformConstant
+            3266:             TypeSampler
+            3267:             TypePointer UniformConstant 3266
+         3268(s):   3267(ptr) Variable UniformConstant
+            3275:             TypePointer UniformConstant 132
+       3276(t2D):   3275(ptr) Variable UniformConstant
+            3284:             TypePointer UniformConstant 143
+       3285(t3D):   3284(ptr) Variable UniformConstant
+            3293:             TypePointer UniformConstant 155
+     3294(tCube):   3293(ptr) Variable UniformConstant
+   3303(sShadow):   3267(ptr) Variable UniformConstant
+            3333:             TypePointer UniformConstant 205
+  3334(t1DArray):   3333(ptr) Variable UniformConstant
+            3342:             TypePointer UniformConstant 214
+  3343(t2DArray):   3342(ptr) Variable UniformConstant
+            3351:             TypePointer UniformConstant 223
+3352(tCubeArray):   3351(ptr) Variable UniformConstant
+            3380:             TypePointer UniformConstant 256
+   3381(t2DRect):   3380(ptr) Variable UniformConstant
+            3412:             TypeImage 6(float) SubpassData nonsampled format:Unknown
+            3413:             TypePointer UniformConstant 3412
+   3414(subpass):   3413(ptr) Variable UniformConstant
+            3416:  451(ivec2) ConstantComposite 1275 1275
+            3418:             TypeImage 6(float) SubpassData multi-sampled nonsampled format:Unknown
+            3419:             TypePointer UniformConstant 3418
+ 3420(subpassMS):   3419(ptr) Variable UniformConstant
+            3589:             TypePointer Output 7(fvec4)
+ 3590(fragColor):   3589(ptr) Variable Output
+            3592:             TypePointer UniformConstant 770
+   3593(tBuffer):   3592(ptr) Variable UniformConstant
+            3594:             TypePointer UniformConstant 781
+     3595(t2DMS):   3594(ptr) Variable UniformConstant
+            3596:             TypePointer UniformConstant 792
+3597(t2DMSArray):   3596(ptr) Variable UniformConstant
+      3598(bias):    126(ptr) Variable Input
+         4(main):           2 Function None 3
+               5:             Label
+    3426(result):     63(ptr) Variable Function
+     3511(param):     63(ptr) Variable Function
+                              Store 3426(result) 120
+            3427:    7(fvec4) FunctionCall 9(testTexture()
+            3428:    7(fvec4) Load 3426(result)
+            3429:    7(fvec4) FAdd 3428 3427
+                              Store 3426(result) 3429
+            3430:    7(fvec4) FunctionCall 11(testTextureProj()
+            3431:    7(fvec4) Load 3426(result)
+            3432:    7(fvec4) FAdd 3431 3430
+                              Store 3426(result) 3432
+            3433:    7(fvec4) FunctionCall 13(testTextureLod()
+            3434:    7(fvec4) Load 3426(result)
+            3435:    7(fvec4) FAdd 3434 3433
+                              Store 3426(result) 3435
+            3436:    7(fvec4) FunctionCall 15(testTextureOffset()
+            3437:    7(fvec4) Load 3426(result)
+            3438:    7(fvec4) FAdd 3437 3436
+                              Store 3426(result) 3438
+            3439:    7(fvec4) FunctionCall 19(testTextureLodOffset()
+            3440:    7(fvec4) Load 3426(result)
+            3441:    7(fvec4) FAdd 3440 3439
+                              Store 3426(result) 3441
+            3442:    7(fvec4) FunctionCall 21(testTextureProjLodOffset()
+            3443:    7(fvec4) Load 3426(result)
+            3444:    7(fvec4) FAdd 3443 3442
+                              Store 3426(result) 3444
+            3445:    7(fvec4) FunctionCall 23(testTexelFetch()
+            3446:    7(fvec4) Load 3426(result)
+            3447:    7(fvec4) FAdd 3446 3445
+                              Store 3426(result) 3447
+            3448:    7(fvec4) FunctionCall 25(testTexelFetchOffset()
+            3449:    7(fvec4) Load 3426(result)
+            3450:    7(fvec4) FAdd 3449 3448
+                              Store 3426(result) 3450
+            3451:    7(fvec4) FunctionCall 27(testTextureGrad()
+            3452:    7(fvec4) Load 3426(result)
+            3453:    7(fvec4) FAdd 3452 3451
+                              Store 3426(result) 3453
+            3454:    7(fvec4) FunctionCall 29(testTextureGradOffset()
+            3455:    7(fvec4) Load 3426(result)
+            3456:    7(fvec4) FAdd 3455 3454
+                              Store 3426(result) 3456
+            3457:    7(fvec4) FunctionCall 31(testTextureProjGrad()
+            3458:    7(fvec4) Load 3426(result)
+            3459:    7(fvec4) FAdd 3458 3457
+                              Store 3426(result) 3459
+            3460:    7(fvec4) FunctionCall 33(testTextureProjGradoffset()
+            3461:    7(fvec4) Load 3426(result)
+            3462:    7(fvec4) FAdd 3461 3460
+                              Store 3426(result) 3462
+            3463:    7(fvec4) FunctionCall 35(testTextureGather()
+            3464:    7(fvec4) Load 3426(result)
+            3465:    7(fvec4) FAdd 3464 3463
+                              Store 3426(result) 3465
+            3466:    7(fvec4) FunctionCall 37(testTextureGatherOffset()
+            3467:    7(fvec4) Load 3426(result)
+            3468:    7(fvec4) FAdd 3467 3466
+                              Store 3426(result) 3468
+            3469:    7(fvec4) FunctionCall 39(testTextureGatherOffsets()
+            3470:    7(fvec4) Load 3426(result)
+            3471:    7(fvec4) FAdd 3470 3469
+                              Store 3426(result) 3471
+            3472:    7(fvec4) FunctionCall 41(testTextureGatherLod()
+            3473:    7(fvec4) Load 3426(result)
+            3474:    7(fvec4) FAdd 3473 3472
+                              Store 3426(result) 3474
+            3475:    7(fvec4) FunctionCall 43(testTextureGatherLodOffset()
+            3476:    7(fvec4) Load 3426(result)
+            3477:    7(fvec4) FAdd 3476 3475
+                              Store 3426(result) 3477
+            3478:    7(fvec4) FunctionCall 45(testTextureGatherLodOffsets()
+            3479:    7(fvec4) Load 3426(result)
+            3480:    7(fvec4) FAdd 3479 3478
+                              Store 3426(result) 3480
+            3481:   48(ivec4) FunctionCall 50(testTextureSize()
+            3482:    7(fvec4) ConvertSToF 3481
+            3483:    7(fvec4) Load 3426(result)
+            3484:    7(fvec4) FAdd 3483 3482
+                              Store 3426(result) 3484
+            3485:   52(fvec2) FunctionCall 54(testTextureQueryLod()
+            3486:    6(float) CompositeExtract 3485 0
+            3487:    6(float) CompositeExtract 3485 1
+            3488:   52(fvec2) CompositeConstruct 3486 3487
+            3489:    7(fvec4) Load 3426(result)
+            3490:   52(fvec2) VectorShuffle 3489 3489 0 1
+            3491:   52(fvec2) FAdd 3490 3488
+            3492:    174(ptr) AccessChain 3426(result) 173
+            3493:    6(float) CompositeExtract 3491 0
+                              Store 3492 3493
+            3494:    174(ptr) AccessChain 3426(result) 1492
+            3495:    6(float) CompositeExtract 3491 1
+                              Store 3494 3495
+            3496:     47(int) FunctionCall 57(testTextureQueryLevels()
+            3497:    6(float) ConvertSToF 3496
+            3498:    174(ptr) AccessChain 3426(result) 173
+            3499:    6(float) Load 3498
+            3500:    6(float) FAdd 3499 3497
+            3501:    174(ptr) AccessChain 3426(result) 173
+                              Store 3501 3500
+            3502:     47(int) FunctionCall 59(testTextureSamples()
+            3503:    6(float) ConvertSToF 3502
+            3504:    174(ptr) AccessChain 3426(result) 173
+            3505:    6(float) Load 3504
+            3506:    6(float) FAdd 3505 3503
+            3507:    174(ptr) AccessChain 3426(result) 173
+                              Store 3507 3506
+            3508:    7(fvec4) FunctionCall 61(testImageLoad()
+            3509:    7(fvec4) Load 3426(result)
+            3510:    7(fvec4) FAdd 3509 3508
+                              Store 3426(result) 3510
+            3512:    7(fvec4) Load 3426(result)
+                              Store 3511(param) 3512
+            3513:           2 FunctionCall 66(testImageStore(vf4;) 3511(param)
+            3514:    7(fvec4) FunctionCall 68(testSparseTexture()
+            3515:    7(fvec4) Load 3426(result)
+            3516:    7(fvec4) FAdd 3515 3514
+                              Store 3426(result) 3516
+            3517:    7(fvec4) FunctionCall 70(testSparseTextureLod()
+            3518:    7(fvec4) Load 3426(result)
+            3519:    7(fvec4) FAdd 3518 3517
+                              Store 3426(result) 3519
+            3520:    7(fvec4) FunctionCall 72(testSparseTextureOffset()
+            3521:    7(fvec4) Load 3426(result)
+            3522:    7(fvec4) FAdd 3521 3520
+                              Store 3426(result) 3522
+            3523:    7(fvec4) FunctionCall 74(testSparseTextureLodOffset()
+            3524:    7(fvec4) Load 3426(result)
+            3525:    7(fvec4) FAdd 3524 3523
+                              Store 3426(result) 3525
+            3526:    7(fvec4) FunctionCall 76(testSparseTextureGrad()
+            3527:    7(fvec4) Load 3426(result)
+            3528:    7(fvec4) FAdd 3527 3526
+                              Store 3426(result) 3528
+            3529:    7(fvec4) FunctionCall 78(testSparseTextureGradOffset()
+            3530:    7(fvec4) Load 3426(result)
+            3531:    7(fvec4) FAdd 3530 3529
+                              Store 3426(result) 3531
+            3532:    7(fvec4) FunctionCall 80(testSparseTexelFetch()
+            3533:    7(fvec4) Load 3426(result)
+            3534:    7(fvec4) FAdd 3533 3532
+                              Store 3426(result) 3534
+            3535:    7(fvec4) FunctionCall 82(testSparseTexelFetchOffset()
+            3536:    7(fvec4) Load 3426(result)
+            3537:    7(fvec4) FAdd 3536 3535
+                              Store 3426(result) 3537
+            3538:    7(fvec4) FunctionCall 84(testSparseTextureGather()
+            3539:    7(fvec4) Load 3426(result)
+            3540:    7(fvec4) FAdd 3539 3538
+                              Store 3426(result) 3540
+            3541:    7(fvec4) FunctionCall 86(testSparseTextureGatherOffset()
+            3542:    7(fvec4) Load 3426(result)
+            3543:    7(fvec4) FAdd 3542 3541
+                              Store 3426(result) 3543
+            3544:    7(fvec4) FunctionCall 88(testSparseTextureGatherOffsets()
+            3545:    7(fvec4) Load 3426(result)
+            3546:    7(fvec4) FAdd 3545 3544
+                              Store 3426(result) 3546
+            3547:    7(fvec4) FunctionCall 90(testSparseTextureGatherLod()
+            3548:    7(fvec4) Load 3426(result)
+            3549:    7(fvec4) FAdd 3548 3547
+                              Store 3426(result) 3549
+            3550:    7(fvec4) FunctionCall 92(testSparseTextureGatherLodOffset()
+            3551:    7(fvec4) Load 3426(result)
+            3552:    7(fvec4) FAdd 3551 3550
+                              Store 3426(result) 3552
+            3553:    7(fvec4) FunctionCall 94(testSparseTextureGatherLodOffsets()
+            3554:    7(fvec4) Load 3426(result)
+            3555:    7(fvec4) FAdd 3554 3553
+                              Store 3426(result) 3555
+            3556:    7(fvec4) FunctionCall 96(testSparseImageLoad()
+            3557:    7(fvec4) Load 3426(result)
+            3558:    7(fvec4) FAdd 3557 3556
+                              Store 3426(result) 3558
+            3559:    7(fvec4) FunctionCall 98(testSparseTextureClamp()
+            3560:    7(fvec4) Load 3426(result)
+            3561:    7(fvec4) FAdd 3560 3559
+                              Store 3426(result) 3561
+            3562:    7(fvec4) FunctionCall 100(testTextureClamp()
+            3563:    7(fvec4) Load 3426(result)
+            3564:    7(fvec4) FAdd 3563 3562
+                              Store 3426(result) 3564
+            3565:    7(fvec4) FunctionCall 102(testSparseTextureOffsetClamp()
+            3566:    7(fvec4) Load 3426(result)
+            3567:    7(fvec4) FAdd 3566 3565
+                              Store 3426(result) 3567
+            3568:    7(fvec4) FunctionCall 104(testTextureOffsetClamp()
+            3569:    7(fvec4) Load 3426(result)
+            3570:    7(fvec4) FAdd 3569 3568
+                              Store 3426(result) 3570
+            3571:    7(fvec4) FunctionCall 76(testSparseTextureGrad()
+            3572:    7(fvec4) Load 3426(result)
+            3573:    7(fvec4) FAdd 3572 3571
+                              Store 3426(result) 3573
+            3574:    7(fvec4) FunctionCall 27(testTextureGrad()
+            3575:    7(fvec4) Load 3426(result)
+            3576:    7(fvec4) FAdd 3575 3574
+                              Store 3426(result) 3576
+            3577:    7(fvec4) FunctionCall 110(testSparseTextureGradOffsetClamp()
+            3578:    7(fvec4) Load 3426(result)
+            3579:    7(fvec4) FAdd 3578 3577
+                              Store 3426(result) 3579
+            3580:    7(fvec4) FunctionCall 112(testTextureGradOffsetClamp()
+            3581:    7(fvec4) Load 3426(result)
+            3582:    7(fvec4) FAdd 3581 3580
+                              Store 3426(result) 3582
+            3583:    7(fvec4) FunctionCall 114(testCombinedTextureSampler()
+            3584:    7(fvec4) Load 3426(result)
+            3585:    7(fvec4) FAdd 3584 3583
+                              Store 3426(result) 3585
+            3586:    7(fvec4) FunctionCall 116(testSubpassLoad()
+            3587:    7(fvec4) Load 3426(result)
+            3588:    7(fvec4) FAdd 3587 3586
+                              Store 3426(result) 3588
+            3591:    7(fvec4) Load 3426(result)
+                              Store 3590(fragColor) 3591
+                              Return
+                              FunctionEnd
+ 9(testTexture():    7(fvec4) Function None 8
+              10:             Label
+      118(texel):     63(ptr) Variable Function
+                              Store 118(texel) 120
+             125:         122 Load 124(s1D)
+             128:    6(float) Load 127(c1)
+             129:    7(fvec4) ImageSampleImplicitLod 125 128
+             130:    7(fvec4) Load 118(texel)
+             131:    7(fvec4) FAdd 130 129
+                              Store 118(texel) 131
+             136:         133 Load 135(s2D)
+             139:   52(fvec2) Load 138(c2)
+             140:    7(fvec4) ImageSampleImplicitLod 136 139
+             141:    7(fvec4) Load 118(texel)
+             142:    7(fvec4) FAdd 141 140
+                              Store 118(texel) 142
+             147:         144 Load 146(s3D)
+             151:  148(fvec3) Load 150(c3)
+             152:    7(fvec4) ImageSampleImplicitLod 147 151
+             153:    7(fvec4) Load 118(texel)
+             154:    7(fvec4) FAdd 153 152
+                              Store 118(texel) 154
+             159:         156 Load 158(sCube)
+             160:  148(fvec3) Load 150(c3)
+             161:    7(fvec4) ImageSampleImplicitLod 159 160
+             162:    7(fvec4) Load 118(texel)
+             163:    7(fvec4) FAdd 162 161
+                              Store 118(texel) 163
+             168:         165 Load 167(s1DShadow)
+             169:  148(fvec3) Load 150(c3)
+             170:    6(float) CompositeExtract 169 2
+             171:    6(float) ImageSampleDrefImplicitLod 168 169 170
+             175:    174(ptr) AccessChain 118(texel) 173
+             176:    6(float) Load 175
+             177:    6(float) FAdd 176 171
+             178:    174(ptr) AccessChain 118(texel) 173
+                              Store 178 177
+             183:         180 Load 182(s2DShadow)
+             184:  148(fvec3) Load 150(c3)
+             185:    6(float) CompositeExtract 184 2
+             186:    6(float) ImageSampleDrefImplicitLod 183 184 185
+             187:    174(ptr) AccessChain 118(texel) 173
+             188:    6(float) Load 187
+             189:    6(float) FAdd 188 186
+             190:    174(ptr) AccessChain 118(texel) 173
+                              Store 190 189
+             195:         192 Load 194(sCubeShadow)
+             198:    7(fvec4) Load 197(c4)
+             199:    6(float) CompositeExtract 198 3
+             200:    6(float) ImageSampleDrefImplicitLod 195 198 199
+             201:    174(ptr) AccessChain 118(texel) 173
+             202:    6(float) Load 201
+             203:    6(float) FAdd 202 200
+             204:    174(ptr) AccessChain 118(texel) 173
+                              Store 204 203
+             209:         206 Load 208(s1DArray)
+             210:   52(fvec2) Load 138(c2)
+             211:    7(fvec4) ImageSampleImplicitLod 209 210
+             212:    7(fvec4) Load 118(texel)
+             213:    7(fvec4) FAdd 212 211
+                              Store 118(texel) 213
+             218:         215 Load 217(s2DArray)
+             219:  148(fvec3) Load 150(c3)
+             220:    7(fvec4) ImageSampleImplicitLod 218 219
+             221:    7(fvec4) Load 118(texel)
+             222:    7(fvec4) FAdd 221 220
+                              Store 118(texel) 222
+             227:         224 Load 226(sCubeArray)
+             228:    7(fvec4) Load 197(c4)
+             229:    7(fvec4) ImageSampleImplicitLod 227 228
+             230:    7(fvec4) Load 118(texel)
+             231:    7(fvec4) FAdd 230 229
+                              Store 118(texel) 231
+             236:         233 Load 235(s1DArrayShadow)
+             237:  148(fvec3) Load 150(c3)
+             238:    6(float) CompositeExtract 237 2
+             239:    6(float) ImageSampleDrefImplicitLod 236 237 238
+             240:    174(ptr) AccessChain 118(texel) 173
+             241:    6(float) Load 240
+             242:    6(float) FAdd 241 239
+             243:    174(ptr) AccessChain 118(texel) 173
+                              Store 243 242
+             248:         245 Load 247(s2DArrayShadow)
+             249:    7(fvec4) Load 197(c4)
+             250:    6(float) CompositeExtract 249 3
+             251:    6(float) ImageSampleDrefImplicitLod 248 249 250
+             252:    174(ptr) AccessChain 118(texel) 173
+             253:    6(float) Load 252
+             254:    6(float) FAdd 253 251
+             255:    174(ptr) AccessChain 118(texel) 173
+                              Store 255 254
+             260:         257 Load 259(s2DRect)
+             261:   52(fvec2) Load 138(c2)
+             262:    7(fvec4) ImageSampleImplicitLod 260 261
+             263:    7(fvec4) Load 118(texel)
+             264:    7(fvec4) FAdd 263 262
+                              Store 118(texel) 264
+             269:         266 Load 268(s2DRectShadow)
+             270:  148(fvec3) Load 150(c3)
+             271:    6(float) CompositeExtract 270 2
+             272:    6(float) ImageSampleDrefImplicitLod 269 270 271
+             273:    174(ptr) AccessChain 118(texel) 173
+             274:    6(float) Load 273
+             275:    6(float) FAdd 274 272
+             276:    174(ptr) AccessChain 118(texel) 173
+                              Store 276 275
+             281:         278 Load 280(sCubeArrayShadow)
+             282:    7(fvec4) Load 197(c4)
+             284:    6(float) Load 283(compare)
+             285:    6(float) ImageSampleDrefImplicitLod 281 282 284
+             286:    174(ptr) AccessChain 118(texel) 173
+             287:    6(float) Load 286
+             288:    6(float) FAdd 287 285
+             289:    174(ptr) AccessChain 118(texel) 173
+                              Store 289 288
+             290:    7(fvec4) Load 118(texel)
+                              ReturnValue 290
+                              FunctionEnd
+11(testTextureProj():    7(fvec4) Function None 8
+              12:             Label
+      293(texel):     63(ptr) Variable Function
+                              Store 293(texel) 120
+             294:         122 Load 124(s1D)
+             295:   52(fvec2) Load 138(c2)
+             296:    7(fvec4) ImageSampleProjImplicitLod 294 295
+             297:    7(fvec4) Load 293(texel)
+             298:    7(fvec4) FAdd 297 296
+                              Store 293(texel) 298
+             299:         122 Load 124(s1D)
+             300:    7(fvec4) Load 197(c4)
+             301:    6(float) CompositeExtract 300 3
+             302:    7(fvec4) CompositeInsert 301 300 1
+             303:    7(fvec4) ImageSampleProjImplicitLod 299 302
+             304:    7(fvec4) Load 293(texel)
+             305:    7(fvec4) FAdd 304 303
+                              Store 293(texel) 305
+             306:         133 Load 135(s2D)
+             307:  148(fvec3) Load 150(c3)
+             308:    7(fvec4) ImageSampleProjImplicitLod 306 307
+             309:    7(fvec4) Load 293(texel)
+             310:    7(fvec4) FAdd 309 308
+                              Store 293(texel) 310
+             311:         133 Load 135(s2D)
+             312:    7(fvec4) Load 197(c4)
+             313:    6(float) CompositeExtract 312 3
+             314:    7(fvec4) CompositeInsert 313 312 2
+             315:    7(fvec4) ImageSampleProjImplicitLod 311 314
+             316:    7(fvec4) Load 293(texel)
+             317:    7(fvec4) FAdd 316 315
+                              Store 293(texel) 317
+             318:         144 Load 146(s3D)
+             319:    7(fvec4) Load 197(c4)
+             320:    7(fvec4) ImageSampleProjImplicitLod 318 319
+             321:    7(fvec4) Load 293(texel)
+             322:    7(fvec4) FAdd 321 320
+                              Store 293(texel) 322
+             323:         165 Load 167(s1DShadow)
+             324:    7(fvec4) Load 197(c4)
+             325:    6(float) CompositeExtract 324 2
+             326:    6(float) CompositeExtract 324 3
+             327:    7(fvec4) CompositeInsert 326 324 1
+             328:    6(float) ImageSampleProjDrefImplicitLod 323 327 325
+             329:    174(ptr) AccessChain 293(texel) 173
+             330:    6(float) Load 329
+             331:    6(float) FAdd 330 328
+             332:    174(ptr) AccessChain 293(texel) 173
+                              Store 332 331
+             333:         180 Load 182(s2DShadow)
+             334:    7(fvec4) Load 197(c4)
+             335:    6(float) CompositeExtract 334 2
+             336:    6(float) CompositeExtract 334 3
+             337:    7(fvec4) CompositeInsert 336 334 2
+             338:    6(float) ImageSampleProjDrefImplicitLod 333 337 335
+             339:    174(ptr) AccessChain 293(texel) 173
+             340:    6(float) Load 339
+             341:    6(float) FAdd 340 338
+             342:    174(ptr) AccessChain 293(texel) 173
+                              Store 342 341
+             343:         257 Load 259(s2DRect)
+             344:  148(fvec3) Load 150(c3)
+             345:    7(fvec4) ImageSampleProjImplicitLod 343 344
+             346:    7(fvec4) Load 293(texel)
+             347:    7(fvec4) FAdd 346 345
+                              Store 293(texel) 347
+             348:         257 Load 259(s2DRect)
+             349:    7(fvec4) Load 197(c4)
+             350:    6(float) CompositeExtract 349 3
+             351:    7(fvec4) CompositeInsert 350 349 2
+             352:    7(fvec4) ImageSampleProjImplicitLod 348 351
+             353:    7(fvec4) Load 293(texel)
+             354:    7(fvec4) FAdd 353 352
+                              Store 293(texel) 354
+             355:         266 Load 268(s2DRectShadow)
+             356:    7(fvec4) Load 197(c4)
+             357:    6(float) CompositeExtract 356 2
+             358:    6(float) CompositeExtract 356 3
+             359:    7(fvec4) CompositeInsert 358 356 2
+             360:    6(float) ImageSampleProjDrefImplicitLod 355 359 357
+             361:    174(ptr) AccessChain 293(texel) 173
+             362:    6(float) Load 361
+             363:    6(float) FAdd 362 360
+             364:    174(ptr) AccessChain 293(texel) 173
+                              Store 364 363
+             365:    7(fvec4) Load 293(texel)
+                              ReturnValue 365
+                              FunctionEnd
+13(testTextureLod():    7(fvec4) Function None 8
+              14:             Label
+      368(texel):     63(ptr) Variable Function
+                              Store 368(texel) 120
+             369:         122 Load 124(s1D)
+             370:    6(float) Load 127(c1)
+             372:    6(float) Load 371(lod)
+             373:    7(fvec4) ImageSampleExplicitLod 369 370 Lod 372
+             374:    7(fvec4) Load 368(texel)
+             375:    7(fvec4) FAdd 374 373
+                              Store 368(texel) 375
+             376:         133 Load 135(s2D)
+             377:   52(fvec2) Load 138(c2)
+             378:    6(float) Load 371(lod)
+             379:    7(fvec4) ImageSampleExplicitLod 376 377 Lod 378
+             380:    7(fvec4) Load 368(texel)
+             381:    7(fvec4) FAdd 380 379
+                              Store 368(texel) 381
+             382:         144 Load 146(s3D)
+             383:  148(fvec3) Load 150(c3)
+             384:    6(float) Load 371(lod)
+             385:    7(fvec4) ImageSampleExplicitLod 382 383 Lod 384
+             386:    7(fvec4) Load 368(texel)
+             387:    7(fvec4) FAdd 386 385
+                              Store 368(texel) 387
+             388:         156 Load 158(sCube)
+             389:  148(fvec3) Load 150(c3)
+             390:    6(float) Load 371(lod)
+             391:    7(fvec4) ImageSampleExplicitLod 388 389 Lod 390
+             392:    7(fvec4) Load 368(texel)
+             393:    7(fvec4) FAdd 392 391
+                              Store 368(texel) 393
+             394:         165 Load 167(s1DShadow)
+             395:  148(fvec3) Load 150(c3)
+             396:    6(float) Load 371(lod)
+             397:    6(float) CompositeExtract 395 2
+             398:    6(float) ImageSampleDrefExplicitLod 394 395 397 Lod 396
+             399:    174(ptr) AccessChain 368(texel) 173
+             400:    6(float) Load 399
+             401:    6(float) FAdd 400 398
+             402:    174(ptr) AccessChain 368(texel) 173
+                              Store 402 401
+             403:         180 Load 182(s2DShadow)
+             404:  148(fvec3) Load 150(c3)
+             405:    6(float) Load 371(lod)
+             406:    6(float) CompositeExtract 404 2
+             407:    6(float) ImageSampleDrefExplicitLod 403 404 406 Lod 405
+             408:    174(ptr) AccessChain 368(texel) 173
+             409:    6(float) Load 408
+             410:    6(float) FAdd 409 407
+             411:    174(ptr) AccessChain 368(texel) 173
+                              Store 411 410
+             412:         206 Load 208(s1DArray)
+             413:   52(fvec2) Load 138(c2)
+             414:    6(float) Load 371(lod)
+             415:    7(fvec4) ImageSampleExplicitLod 412 413 Lod 414
+             416:    7(fvec4) Load 368(texel)
+             417:    7(fvec4) FAdd 416 415
+                              Store 368(texel) 417
+             418:         215 Load 217(s2DArray)
+             419:  148(fvec3) Load 150(c3)
+             420:    6(float) Load 371(lod)
+             421:    7(fvec4) ImageSampleExplicitLod 418 419 Lod 420
+             422:    7(fvec4) Load 368(texel)
+             423:    7(fvec4) FAdd 422 421
+                              Store 368(texel) 423
+             424:         233 Load 235(s1DArrayShadow)
+             425:  148(fvec3) Load 150(c3)
+             426:    6(float) Load 371(lod)
+             427:    6(float) CompositeExtract 425 2
+             428:    6(float) ImageSampleDrefExplicitLod 424 425 427 Lod 426
+             429:    174(ptr) AccessChain 368(texel) 173
+             430:    6(float) Load 429
+             431:    6(float) FAdd 430 428
+             432:    174(ptr) AccessChain 368(texel) 173
+                              Store 432 431
+             433:         224 Load 226(sCubeArray)
+             434:    7(fvec4) Load 197(c4)
+             435:    6(float) Load 371(lod)
+             436:    7(fvec4) ImageSampleExplicitLod 433 434 Lod 435
+             437:    7(fvec4) Load 368(texel)
+             438:    7(fvec4) FAdd 437 436
+                              Store 368(texel) 438
+             439:    7(fvec4) Load 368(texel)
+                              ReturnValue 439
+                              FunctionEnd
+15(testTextureOffset():    7(fvec4) Function None 8
+              16:             Label
+      442(texel):     63(ptr) Variable Function
+                              Store 442(texel) 120
+             443:         122 Load 124(s1D)
+             444:    6(float) Load 127(c1)
+             446:    7(fvec4) ImageSampleImplicitLod 443 444 ConstOffset 445
+             447:    7(fvec4) Load 442(texel)
+             448:    7(fvec4) FAdd 447 446
+                              Store 442(texel) 448
+             449:         133 Load 135(s2D)
+             450:   52(fvec2) Load 138(c2)
+             453:    7(fvec4) ImageSampleImplicitLod 449 450 ConstOffset 452
+             454:    7(fvec4) Load 442(texel)
+             455:    7(fvec4) FAdd 454 453
+                              Store 442(texel) 455
+             456:         144 Load 146(s3D)
+             457:  148(fvec3) Load 150(c3)
+             460:    7(fvec4) ImageSampleImplicitLod 456 457 ConstOffset 459
+             461:    7(fvec4) Load 442(texel)
+             462:    7(fvec4) FAdd 461 460
+                              Store 442(texel) 462
+             463:         257 Load 259(s2DRect)
+             464:   52(fvec2) Load 138(c2)
+             465:    7(fvec4) ImageSampleImplicitLod 463 464 ConstOffset 452
+             466:    7(fvec4) Load 442(texel)
+             467:    7(fvec4) FAdd 466 465
+                              Store 442(texel) 467
+             468:         266 Load 268(s2DRectShadow)
+             469:  148(fvec3) Load 150(c3)
+             470:    6(float) CompositeExtract 469 2
+             471:    6(float) ImageSampleDrefImplicitLod 468 469 470 ConstOffset 452
+             472:    174(ptr) AccessChain 442(texel) 173
+             473:    6(float) Load 472
+             474:    6(float) FAdd 473 471
+             475:    174(ptr) AccessChain 442(texel) 173
+                              Store 475 474
+             476:         165 Load 167(s1DShadow)
+             477:  148(fvec3) Load 150(c3)
+             478:    6(float) CompositeExtract 477 2
+             479:    6(float) ImageSampleDrefImplicitLod 476 477 478 ConstOffset 445
+             480:    174(ptr) AccessChain 442(texel) 173
+             481:    6(float) Load 480
+             482:    6(float) FAdd 481 479
+             483:    174(ptr) AccessChain 442(texel) 173
+                              Store 483 482
+             484:         180 Load 182(s2DShadow)
+             485:  148(fvec3) Load 150(c3)
+             486:    6(float) CompositeExtract 485 2
+             487:    6(float) ImageSampleDrefImplicitLod 484 485 486 ConstOffset 452
+             488:    174(ptr) AccessChain 442(texel) 173
+             489:    6(float) Load 488
+             490:    6(float) FAdd 489 487
+             491:    174(ptr) AccessChain 442(texel) 173
+                              Store 491 490
+             492:         206 Load 208(s1DArray)
+             493:   52(fvec2) Load 138(c2)
+             494:    7(fvec4) ImageSampleImplicitLod 492 493 ConstOffset 445
+             495:    7(fvec4) Load 442(texel)
+             496:    7(fvec4) FAdd 495 494
+                              Store 442(texel) 496
+             497:         215 Load 217(s2DArray)
+             498:  148(fvec3) Load 150(c3)
+             499:    7(fvec4) ImageSampleImplicitLod 497 498 ConstOffset 452
+             500:    7(fvec4) Load 442(texel)
+             501:    7(fvec4) FAdd 500 499
+                              Store 442(texel) 501
+             502:         233 Load 235(s1DArrayShadow)
+             503:  148(fvec3) Load 150(c3)
+             504:    6(float) CompositeExtract 503 2
+             505:    6(float) ImageSampleDrefImplicitLod 502 503 504 ConstOffset 445
+             506:    174(ptr) AccessChain 442(texel) 173
+             507:    6(float) Load 506
+             508:    6(float) FAdd 507 505
+             509:    174(ptr) AccessChain 442(texel) 173
+                              Store 509 508
+             510:         245 Load 247(s2DArrayShadow)
+             511:    7(fvec4) Load 197(c4)
+             512:    6(float) CompositeExtract 511 3
+             513:    6(float) ImageSampleDrefImplicitLod 510 511 512 ConstOffset 452
+             514:    174(ptr) AccessChain 442(texel) 173
+             515:    6(float) Load 514
+             516:    6(float) FAdd 515 513
+             517:    174(ptr) AccessChain 442(texel) 173
+                              Store 517 516
+             518:    7(fvec4) Load 442(texel)
+                              ReturnValue 518
+                              FunctionEnd
+17(testTextureProjOffset():    7(fvec4) Function None 8
+              18:             Label
+      521(texel):     63(ptr) Variable Function
+                              Store 521(texel) 120
+             522:         122 Load 124(s1D)
+             523:   52(fvec2) Load 138(c2)
+             524:    7(fvec4) ImageSampleProjImplicitLod 522 523 ConstOffset 445
+             525:    7(fvec4) Load 521(texel)
+             526:    7(fvec4) FAdd 525 524
+                              Store 521(texel) 526
+             527:         122 Load 124(s1D)
+             528:    7(fvec4) Load 197(c4)
+             529:    6(float) CompositeExtract 528 3
+             530:    7(fvec4) CompositeInsert 529 528 1
+             531:    7(fvec4) ImageSampleProjImplicitLod 527 530 ConstOffset 445
+             532:    7(fvec4) Load 521(texel)
+             533:    7(fvec4) FAdd 532 531
+                              Store 521(texel) 533
+             534:         133 Load 135(s2D)
+             535:  148(fvec3) Load 150(c3)
+             536:    7(fvec4) ImageSampleProjImplicitLod 534 535 ConstOffset 452
+             537:    7(fvec4) Load 521(texel)
+             538:    7(fvec4) FAdd 537 536
+                              Store 521(texel) 538
+             539:         133 Load 135(s2D)
+             540:    7(fvec4) Load 197(c4)
+             541:    6(float) CompositeExtract 540 3
+             542:    7(fvec4) CompositeInsert 541 540 2
+             543:    7(fvec4) ImageSampleProjImplicitLod 539 542 ConstOffset 452
+             544:    7(fvec4) Load 521(texel)
+             545:    7(fvec4) FAdd 544 543
+                              Store 521(texel) 545
+             546:         144 Load 146(s3D)
+             547:    7(fvec4) Load 197(c4)
+             548:    7(fvec4) ImageSampleProjImplicitLod 546 547 ConstOffset 459
+             549:    7(fvec4) Load 521(texel)
+             550:    7(fvec4) FAdd 549 548
+                              Store 521(texel) 550
+             551:         257 Load 259(s2DRect)
+             552:  148(fvec3) Load 150(c3)
+             553:    7(fvec4) ImageSampleProjImplicitLod 551 552 ConstOffset 452
+             554:    7(fvec4) Load 521(texel)
+             555:    7(fvec4) FAdd 554 553
+                              Store 521(texel) 555
+             556:         257 Load 259(s2DRect)
+             557:    7(fvec4) Load 197(c4)
+             558:    6(float) CompositeExtract 557 3
+             559:    7(fvec4) CompositeInsert 558 557 2
+             560:    7(fvec4) ImageSampleProjImplicitLod 556 559 ConstOffset 452
+             561:    7(fvec4) Load 521(texel)
+             562:    7(fvec4) FAdd 561 560
+                              Store 521(texel) 562
+             563:         266 Load 268(s2DRectShadow)
+             564:    7(fvec4) Load 197(c4)
+             565:    6(float) CompositeExtract 564 2
+             566:    6(float) CompositeExtract 564 3
+             567:    7(fvec4) CompositeInsert 566 564 2
+             568:    6(float) ImageSampleProjDrefImplicitLod 563 567 565 ConstOffset 452
+             569:    174(ptr) AccessChain 521(texel) 173
+             570:    6(float) Load 569
+             571:    6(float) FAdd 570 568
+             572:    174(ptr) AccessChain 521(texel) 173
+                              Store 572 571
+             573:         165 Load 167(s1DShadow)
+             574:    7(fvec4) Load 197(c4)
+             575:    6(float) CompositeExtract 574 2
+             576:    6(float) CompositeExtract 574 3
+             577:    7(fvec4) CompositeInsert 576 574 1
+             578:    6(float) ImageSampleProjDrefImplicitLod 573 577 575 ConstOffset 445
+             579:    174(ptr) AccessChain 521(texel) 173
+             580:    6(float) Load 579
+             581:    6(float) FAdd 580 578
+             582:    174(ptr) AccessChain 521(texel) 173
+                              Store 582 581
+             583:         180 Load 182(s2DShadow)
+             584:    7(fvec4) Load 197(c4)
+             585:    6(float) CompositeExtract 584 2
+             586:    6(float) CompositeExtract 584 3
+             587:    7(fvec4) CompositeInsert 586 584 2
+             588:    6(float) ImageSampleProjDrefImplicitLod 583 587 585 ConstOffset 452
+             589:    174(ptr) AccessChain 521(texel) 173
+             590:    6(float) Load 589
+             591:    6(float) FAdd 590 588
+             592:    174(ptr) AccessChain 521(texel) 173
+                              Store 592 591
+             593:    7(fvec4) Load 521(texel)
+                              ReturnValue 593
+                              FunctionEnd
+19(testTextureLodOffset():    7(fvec4) Function None 8
+              20:             Label
+      596(texel):     63(ptr) Variable Function
+                              Store 596(texel) 120
+             597:         122 Load 124(s1D)
+             598:    6(float) Load 127(c1)
+             599:    6(float) Load 371(lod)
+             600:    7(fvec4) ImageSampleExplicitLod 597 598 Lod ConstOffset 599 445
+             601:    7(fvec4) Load 596(texel)
+             602:    7(fvec4) FAdd 601 600
+                              Store 596(texel) 602
+             603:         133 Load 135(s2D)
+             604:   52(fvec2) Load 138(c2)
+             605:    6(float) Load 371(lod)
+             606:    7(fvec4) ImageSampleExplicitLod 603 604 Lod ConstOffset 605 452
+             607:    7(fvec4) Load 596(texel)
+             608:    7(fvec4) FAdd 607 606
+                              Store 596(texel) 608
+             609:         144 Load 146(s3D)
+             610:  148(fvec3) Load 150(c3)
+             611:    6(float) Load 371(lod)
+             612:    7(fvec4) ImageSampleExplicitLod 609 610 Lod ConstOffset 611 459
+             613:    7(fvec4) Load 596(texel)
+             614:    7(fvec4) FAdd 613 612
+                              Store 596(texel) 614
+             615:         165 Load 167(s1DShadow)
+             616:  148(fvec3) Load 150(c3)
+             617:    6(float) Load 371(lod)
+             618:    6(float) CompositeExtract 616 2
+             619:    6(float) ImageSampleDrefExplicitLod 615 616 618 Lod ConstOffset 617 445
+             620:    174(ptr) AccessChain 596(texel) 173
+             621:    6(float) Load 620
+             622:    6(float) FAdd 621 619
+             623:    174(ptr) AccessChain 596(texel) 173
+                              Store 623 622
+             624:         180 Load 182(s2DShadow)
+             625:  148(fvec3) Load 150(c3)
+             626:    6(float) Load 371(lod)
+             627:    6(float) CompositeExtract 625 2
+             628:    6(float) ImageSampleDrefExplicitLod 624 625 627 Lod ConstOffset 626 452
+             629:    174(ptr) AccessChain 596(texel) 173
+             630:    6(float) Load 629
+             631:    6(float) FAdd 630 628
+             632:    174(ptr) AccessChain 596(texel) 173
+                              Store 632 631
+             633:         206 Load 208(s1DArray)
+             634:   52(fvec2) Load 138(c2)
+             635:    6(float) Load 371(lod)
+             636:    7(fvec4) ImageSampleExplicitLod 633 634 Lod ConstOffset 635 445
+             637:    7(fvec4) Load 596(texel)
+             638:    7(fvec4) FAdd 637 636
+                              Store 596(texel) 638
+             639:         215 Load 217(s2DArray)
+             640:  148(fvec3) Load 150(c3)
+             641:    6(float) Load 371(lod)
+             642:    7(fvec4) ImageSampleExplicitLod 639 640 Lod ConstOffset 641 452
+             643:    7(fvec4) Load 596(texel)
+             644:    7(fvec4) FAdd 643 642
+                              Store 596(texel) 644
+             645:         233 Load 235(s1DArrayShadow)
+             646:  148(fvec3) Load 150(c3)
+             647:    6(float) Load 371(lod)
+             648:    6(float) CompositeExtract 646 2
+             649:    6(float) ImageSampleDrefExplicitLod 645 646 648 Lod ConstOffset 647 445
+             650:    174(ptr) AccessChain 596(texel) 173
+             651:    6(float) Load 650
+             652:    6(float) FAdd 651 649
+             653:    174(ptr) AccessChain 596(texel) 173
+                              Store 653 652
+             654:    7(fvec4) Load 596(texel)
+                              ReturnValue 654
+                              FunctionEnd
+21(testTextureProjLodOffset():    7(fvec4) Function None 8
+              22:             Label
+      657(texel):     63(ptr) Variable Function
+                              Store 657(texel) 120
+             658:         122 Load 124(s1D)
+             659:   52(fvec2) Load 138(c2)
+             660:    6(float) Load 371(lod)
+             661:    7(fvec4) ImageSampleProjExplicitLod 658 659 Lod ConstOffset 660 445
+             662:    7(fvec4) Load 657(texel)
+             663:    7(fvec4) FAdd 662 661
+                              Store 657(texel) 663
+             664:         122 Load 124(s1D)
+             665:    7(fvec4) Load 197(c4)
+             666:    6(float) Load 371(lod)
+             667:    6(float) CompositeExtract 665 3
+             668:    7(fvec4) CompositeInsert 667 665 1
+             669:    7(fvec4) ImageSampleProjExplicitLod 664 668 Lod ConstOffset 666 445
+             670:    7(fvec4) Load 657(texel)
+             671:    7(fvec4) FAdd 670 669
+                              Store 657(texel) 671
+             672:         133 Load 135(s2D)
+             673:  148(fvec3) Load 150(c3)
+             674:    6(float) Load 371(lod)
+             675:    7(fvec4) ImageSampleProjExplicitLod 672 673 Lod ConstOffset 674 452
+             676:    7(fvec4) Load 657(texel)
+             677:    7(fvec4) FAdd 676 675
+                              Store 657(texel) 677
+             678:         133 Load 135(s2D)
+             679:    7(fvec4) Load 197(c4)
+             680:    6(float) Load 371(lod)
+             681:    6(float) CompositeExtract 679 3
+             682:    7(fvec4) CompositeInsert 681 679 2
+             683:    7(fvec4) ImageSampleProjExplicitLod 678 682 Lod ConstOffset 680 452
+             684:    7(fvec4) Load 657(texel)
+             685:    7(fvec4) FAdd 684 683
+                              Store 657(texel) 685
+             686:         144 Load 146(s3D)
+             687:    7(fvec4) Load 197(c4)
+             688:    6(float) Load 371(lod)
+             689:    7(fvec4) ImageSampleProjExplicitLod 686 687 Lod ConstOffset 688 459
+             690:    7(fvec4) Load 657(texel)
+             691:    7(fvec4) FAdd 690 689
+                              Store 657(texel) 691
+             692:         165 Load 167(s1DShadow)
+             693:    7(fvec4) Load 197(c4)
+             694:    6(float) Load 371(lod)
+             695:    6(float) CompositeExtract 693 2
+             696:    6(float) CompositeExtract 693 3
+             697:    7(fvec4) CompositeInsert 696 693 1
+             698:    6(float) ImageSampleProjDrefExplicitLod 692 697 695 Lod ConstOffset 694 445
+             699:    174(ptr) AccessChain 657(texel) 173
+             700:    6(float) Load 699
+             701:    6(float) FAdd 700 698
+             702:    174(ptr) AccessChain 657(texel) 173
+                              Store 702 701
+             703:         180 Load 182(s2DShadow)
+             704:    7(fvec4) Load 197(c4)
+             705:    6(float) Load 371(lod)
+             706:    6(float) CompositeExtract 704 2
+             707:    6(float) CompositeExtract 704 3
+             708:    7(fvec4) CompositeInsert 707 704 2
+             709:    6(float) ImageSampleProjDrefExplicitLod 703 708 706 Lod ConstOffset 705 452
+             710:    174(ptr) AccessChain 657(texel) 173
+             711:    6(float) Load 710
+             712:    6(float) FAdd 711 709
+             713:    174(ptr) AccessChain 657(texel) 173
+                              Store 713 712
+             714:    7(fvec4) Load 657(texel)
+                              ReturnValue 714
+                              FunctionEnd
+23(testTexelFetch():    7(fvec4) Function None 8
+              24:             Label
+      717(texel):     63(ptr) Variable Function
+                              Store 717(texel) 120
+             718:         122 Load 124(s1D)
+             719:    6(float) Load 127(c1)
+             720:     47(int) ConvertFToS 719
+             721:    6(float) Load 371(lod)
+             722:     47(int) ConvertFToS 721
+             723:         121 Image 718
+             724:    7(fvec4) ImageFetch 723 720 Lod 722
+             725:    7(fvec4) Load 717(texel)
+             726:    7(fvec4) FAdd 725 724
+                              Store 717(texel) 726
+             727:         133 Load 135(s2D)
+             728:   52(fvec2) Load 138(c2)
+             729:  451(ivec2) ConvertFToS 728
+             730:    6(float) Load 371(lod)
+             731:     47(int) ConvertFToS 730
+             732:         132 Image 727
+             733:    7(fvec4) ImageFetch 732 729 Lod 731
+             734:    7(fvec4) Load 717(texel)
+             735:    7(fvec4) FAdd 734 733
+                              Store 717(texel) 735
+             736:         144 Load 146(s3D)
+             737:  148(fvec3) Load 150(c3)
+             738:  458(ivec3) ConvertFToS 737
+             739:    6(float) Load 371(lod)
+             740:     47(int) ConvertFToS 739
+             741:         143 Image 736
+             742:    7(fvec4) ImageFetch 741 738 Lod 740
+             743:    7(fvec4) Load 717(texel)
+             744:    7(fvec4) FAdd 743 742
+                              Store 717(texel) 744
+             745:         257 Load 259(s2DRect)
+             746:   52(fvec2) Load 138(c2)
+             747:  451(ivec2) ConvertFToS 746
+             748:         256 Image 745
+             749:    7(fvec4) ImageFetch 748 747
+             750:    7(fvec4) Load 717(texel)
+             751:    7(fvec4) FAdd 750 749
+                              Store 717(texel) 751
+             752:         206 Load 208(s1DArray)
+             753:   52(fvec2) Load 138(c2)
+             754:  451(ivec2) ConvertFToS 753
+             755:    6(float) Load 371(lod)
+             756:     47(int) ConvertFToS 755
+             757:         205 Image 752
+             758:    7(fvec4) ImageFetch 757 754 Lod 756
+             759:    7(fvec4) Load 717(texel)
+             760:    7(fvec4) FAdd 759 758
+                              Store 717(texel) 760
+             761:         215 Load 217(s2DArray)
+             762:  148(fvec3) Load 150(c3)
+             763:  458(ivec3) ConvertFToS 762
+             764:    6(float) Load 371(lod)
+             765:     47(int) ConvertFToS 764
+             766:         214 Image 761
+             767:    7(fvec4) ImageFetch 766 763 Lod 765
+             768:    7(fvec4) Load 717(texel)
+             769:    7(fvec4) FAdd 768 767
+                              Store 717(texel) 769
+             774:         771 Load 773(sBuffer)
+             775:    6(float) Load 127(c1)
+             776:     47(int) ConvertFToS 775
+             777:         770 Image 774
+             778:    7(fvec4) ImageFetch 777 776
+             779:    7(fvec4) Load 717(texel)
+             780:    7(fvec4) FAdd 779 778
+                              Store 717(texel) 780
+             785:         782 Load 784(s2DMS)
+             786:   52(fvec2) Load 138(c2)
+             787:  451(ivec2) ConvertFToS 786
+             788:         781 Image 785
+             789:    7(fvec4) ImageFetch 788 787 Sample 445
+             790:    7(fvec4) Load 717(texel)
+             791:    7(fvec4) FAdd 790 789
+                              Store 717(texel) 791
+             796:         793 Load 795(s2DMSArray)
+             797:  148(fvec3) Load 150(c3)
+             798:  458(ivec3) ConvertFToS 797
+             800:         792 Image 796
+             801:    7(fvec4) ImageFetch 800 798 Sample 799
+             802:    7(fvec4) Load 717(texel)
+             803:    7(fvec4) FAdd 802 801
+                              Store 717(texel) 803
+             804:    7(fvec4) Load 717(texel)
+                              ReturnValue 804
+                              FunctionEnd
+25(testTexelFetchOffset():    7(fvec4) Function None 8
+              26:             Label
+      807(texel):     63(ptr) Variable Function
+                              Store 807(texel) 120
+             808:         122 Load 124(s1D)
+             809:    6(float) Load 127(c1)
+             810:     47(int) ConvertFToS 809
+             811:    6(float) Load 371(lod)
+             812:     47(int) ConvertFToS 811
+             813:         121 Image 808
+             814:    7(fvec4) ImageFetch 813 810 Lod ConstOffset 812 445
+             815:    7(fvec4) Load 807(texel)
+             816:    7(fvec4) FAdd 815 814
+                              Store 807(texel) 816
+             817:         133 Load 135(s2D)
+             818:   52(fvec2) Load 138(c2)
+             819:  451(ivec2) ConvertFToS 818
+             820:    6(float) Load 371(lod)
+             821:     47(int) ConvertFToS 820
+             822:         132 Image 817
+             823:    7(fvec4) ImageFetch 822 819 Lod ConstOffset 821 452
+             824:    7(fvec4) Load 807(texel)
+             825:    7(fvec4) FAdd 824 823
+                              Store 807(texel) 825
+             826:         144 Load 146(s3D)
+             827:  148(fvec3) Load 150(c3)
+             828:  458(ivec3) ConvertFToS 827
+             829:    6(float) Load 371(lod)
+             830:     47(int) ConvertFToS 829
+             831:         143 Image 826
+             832:    7(fvec4) ImageFetch 831 828 Lod ConstOffset 830 459
+             833:    7(fvec4) Load 807(texel)
+             834:    7(fvec4) FAdd 833 832
+                              Store 807(texel) 834
+             835:         257 Load 259(s2DRect)
+             836:   52(fvec2) Load 138(c2)
+             837:  451(ivec2) ConvertFToS 836
+             838:         256 Image 835
+             839:    7(fvec4) ImageFetch 838 837 ConstOffset 452
+             840:    7(fvec4) Load 807(texel)
+             841:    7(fvec4) FAdd 840 839
+                              Store 807(texel) 841
+             842:         206 Load 208(s1DArray)
+             843:   52(fvec2) Load 138(c2)
+             844:  451(ivec2) ConvertFToS 843
+             845:    6(float) Load 371(lod)
+             846:     47(int) ConvertFToS 845
+             847:         205 Image 842
+             848:    7(fvec4) ImageFetch 847 844 Lod ConstOffset 846 445
+             849:    7(fvec4) Load 807(texel)
+             850:    7(fvec4) FAdd 849 848
+                              Store 807(texel) 850
+             851:         215 Load 217(s2DArray)
+             852:  148(fvec3) Load 150(c3)
+             853:  458(ivec3) ConvertFToS 852
+             854:    6(float) Load 371(lod)
+             855:     47(int) ConvertFToS 854
+             856:         214 Image 851
+             857:    7(fvec4) ImageFetch 856 853 Lod ConstOffset 855 452
+             858:    7(fvec4) Load 807(texel)
+             859:    7(fvec4) FAdd 858 857
+                              Store 807(texel) 859
+             860:    7(fvec4) Load 807(texel)
+                              ReturnValue 860
+                              FunctionEnd
+27(testTextureGrad():    7(fvec4) Function None 8
+              28:             Label
+      863(texel):     63(ptr) Variable Function
+                              Store 863(texel) 120
+             864:         122 Load 124(s1D)
+             865:    6(float) Load 127(c1)
+             867:    6(float) Load 866(dPdxy1)
+             868:    6(float) Load 866(dPdxy1)
+             869:    7(fvec4) ImageSampleExplicitLod 864 865 Grad 867 868
+             870:    7(fvec4) Load 863(texel)
+             871:    7(fvec4) FAdd 870 869
+                              Store 863(texel) 871
+             872:         133 Load 135(s2D)
+             873:   52(fvec2) Load 138(c2)
+             875:   52(fvec2) Load 874(dPdxy2)
+             876:   52(fvec2) Load 874(dPdxy2)
+             877:    7(fvec4) ImageSampleExplicitLod 872 873 Grad 875 876
+             878:    7(fvec4) Load 863(texel)
+             879:    7(fvec4) FAdd 878 877
+                              Store 863(texel) 879
+             880:         144 Load 146(s3D)
+             881:  148(fvec3) Load 150(c3)
+             883:  148(fvec3) Load 882(dPdxy3)
+             884:  148(fvec3) Load 882(dPdxy3)
+             885:    7(fvec4) ImageSampleExplicitLod 880 881 Grad 883 884
+             886:    7(fvec4) Load 863(texel)
+             887:    7(fvec4) FAdd 886 885
+                              Store 863(texel) 887
+             888:         156 Load 158(sCube)
+             889:  148(fvec3) Load 150(c3)
+             890:  148(fvec3) Load 882(dPdxy3)
+             891:  148(fvec3) Load 882(dPdxy3)
+             892:    7(fvec4) ImageSampleExplicitLod 888 889 Grad 890 891
+             893:    7(fvec4) Load 863(texel)
+             894:    7(fvec4) FAdd 893 892
+                              Store 863(texel) 894
+             895:         257 Load 259(s2DRect)
+             896:   52(fvec2) Load 138(c2)
+             897:   52(fvec2) Load 874(dPdxy2)
+             898:   52(fvec2) Load 874(dPdxy2)
+             899:    7(fvec4) ImageSampleExplicitLod 895 896 Grad 897 898
+             900:    7(fvec4) Load 863(texel)
+             901:    7(fvec4) FAdd 900 899
+                              Store 863(texel) 901
+             902:         266 Load 268(s2DRectShadow)
+             903:  148(fvec3) Load 150(c3)
+             904:   52(fvec2) Load 874(dPdxy2)
+             905:   52(fvec2) Load 874(dPdxy2)
+             906:    6(float) CompositeExtract 903 2
+             907:    6(float) ImageSampleDrefExplicitLod 902 903 906 Grad 904 905
+             908:    174(ptr) AccessChain 863(texel) 173
+             909:    6(float) Load 908
+             910:    6(float) FAdd 909 907
+             911:    174(ptr) AccessChain 863(texel) 173
+                              Store 911 910
+             912:         165 Load 167(s1DShadow)
+             913:  148(fvec3) Load 150(c3)
+             914:    6(float) Load 866(dPdxy1)
+             915:    6(float) Load 866(dPdxy1)
+             916:    6(float) CompositeExtract 913 2
+             917:    6(float) ImageSampleDrefExplicitLod 912 913 916 Grad 914 915
+             918:    174(ptr) AccessChain 863(texel) 173
+             919:    6(float) Load 918
+             920:    6(float) FAdd 919 917
+             921:    174(ptr) AccessChain 863(texel) 173
+                              Store 921 920
+             922:         180 Load 182(s2DShadow)
+             923:  148(fvec3) Load 150(c3)
+             924:   52(fvec2) Load 874(dPdxy2)
+             925:   52(fvec2) Load 874(dPdxy2)
+             926:    6(float) CompositeExtract 923 2
+             927:    6(float) ImageSampleDrefExplicitLod 922 923 926 Grad 924 925
+             928:    174(ptr) AccessChain 863(texel) 173
+             929:    6(float) Load 928
+             930:    6(float) FAdd 929 927
+             931:    174(ptr) AccessChain 863(texel) 173
+                              Store 931 930
+             932:         192 Load 194(sCubeShadow)
+             933:    7(fvec4) Load 197(c4)
+             934:  148(fvec3) Load 882(dPdxy3)
+             935:  148(fvec3) Load 882(dPdxy3)
+             936:    6(float) CompositeExtract 933 3
+             937:    6(float) ImageSampleDrefExplicitLod 932 933 936 Grad 934 935
+             938:    174(ptr) AccessChain 863(texel) 173
+             939:    6(float) Load 938
+             940:    6(float) FAdd 939 937
+             941:    174(ptr) AccessChain 863(texel) 173
+                              Store 941 940
+             942:         206 Load 208(s1DArray)
+             943:   52(fvec2) Load 138(c2)
+             944:    6(float) Load 866(dPdxy1)
+             945:    6(float) Load 866(dPdxy1)
+             946:    7(fvec4) ImageSampleExplicitLod 942 943 Grad 944 945
+             947:    7(fvec4) Load 863(texel)
+             948:    7(fvec4) FAdd 947 946
+                              Store 863(texel) 948
+             949:         215 Load 217(s2DArray)
+             950:  148(fvec3) Load 150(c3)
+             951:   52(fvec2) Load 874(dPdxy2)
+             952:   52(fvec2) Load 874(dPdxy2)
+             953:    7(fvec4) ImageSampleExplicitLod 949 950 Grad 951 952
+             954:    7(fvec4) Load 863(texel)
+             955:    7(fvec4) FAdd 954 953
+                              Store 863(texel) 955
+             956:         233 Load 235(s1DArrayShadow)
+             957:  148(fvec3) Load 150(c3)
+             958:    6(float) Load 866(dPdxy1)
+             959:    6(float) Load 866(dPdxy1)
+             960:    6(float) CompositeExtract 957 2
+             961:    6(float) ImageSampleDrefExplicitLod 956 957 960 Grad 958 959
+             962:    174(ptr) AccessChain 863(texel) 173
+             963:    6(float) Load 962
+             964:    6(float) FAdd 963 961
+             965:    174(ptr) AccessChain 863(texel) 173
+                              Store 965 964
+             966:         245 Load 247(s2DArrayShadow)
+             967:    7(fvec4) Load 197(c4)
+             968:   52(fvec2) Load 874(dPdxy2)
+             969:   52(fvec2) Load 874(dPdxy2)
+             970:    6(float) CompositeExtract 967 3
+             971:    6(float) ImageSampleDrefExplicitLod 966 967 970 Grad 968 969
+             972:    174(ptr) AccessChain 863(texel) 173
+             973:    6(float) Load 972
+             974:    6(float) FAdd 973 971
+             975:    174(ptr) AccessChain 863(texel) 173
+                              Store 975 974
+             976:         224 Load 226(sCubeArray)
+             977:    7(fvec4) Load 197(c4)
+             978:  148(fvec3) Load 882(dPdxy3)
+             979:  148(fvec3) Load 882(dPdxy3)
+             980:    7(fvec4) ImageSampleExplicitLod 976 977 Grad 978 979
+             981:    7(fvec4) Load 863(texel)
+             982:    7(fvec4) FAdd 981 980
+                              Store 863(texel) 982
+             983:    7(fvec4) Load 863(texel)
+                              ReturnValue 983
+                              FunctionEnd
+29(testTextureGradOffset():    7(fvec4) Function None 8
+              30:             Label
+      986(texel):     63(ptr) Variable Function
+                              Store 986(texel) 120
+             987:         122 Load 124(s1D)
+             988:    6(float) Load 127(c1)
+             989:    6(float) Load 866(dPdxy1)
+             990:    6(float) Load 866(dPdxy1)
+             991:    7(fvec4) ImageSampleExplicitLod 987 988 Grad ConstOffset 989 990 445
+             992:    7(fvec4) Load 986(texel)
+             993:    7(fvec4) FAdd 992 991
+                              Store 986(texel) 993
+             994:         133 Load 135(s2D)
+             995:   52(fvec2) Load 138(c2)
+             996:   52(fvec2) Load 874(dPdxy2)
+             997:   52(fvec2) Load 874(dPdxy2)
+             998:    7(fvec4) ImageSampleExplicitLod 994 995 Grad ConstOffset 996 997 452
+             999:    7(fvec4) Load 986(texel)
+            1000:    7(fvec4) FAdd 999 998
+                              Store 986(texel) 1000
+            1001:         144 Load 146(s3D)
+            1002:  148(fvec3) Load 150(c3)
+            1003:  148(fvec3) Load 882(dPdxy3)
+            1004:  148(fvec3) Load 882(dPdxy3)
+            1005:    7(fvec4) ImageSampleExplicitLod 1001 1002 Grad ConstOffset 1003 1004 459
+            1006:    7(fvec4) Load 986(texel)
+            1007:    7(fvec4) FAdd 1006 1005
+                              Store 986(texel) 1007
+            1008:         257 Load 259(s2DRect)
+            1009:   52(fvec2) Load 138(c2)
+            1010:   52(fvec2) Load 874(dPdxy2)
+            1011:   52(fvec2) Load 874(dPdxy2)
+            1012:    7(fvec4) ImageSampleExplicitLod 1008 1009 Grad ConstOffset 1010 1011 452
+            1013:    7(fvec4) Load 986(texel)
+            1014:    7(fvec4) FAdd 1013 1012
+                              Store 986(texel) 1014
+            1015:         266 Load 268(s2DRectShadow)
+            1016:  148(fvec3) Load 150(c3)
+            1017:   52(fvec2) Load 874(dPdxy2)
+            1018:   52(fvec2) Load 874(dPdxy2)
+            1019:    6(float) CompositeExtract 1016 2
+            1020:    6(float) ImageSampleDrefExplicitLod 1015 1016 1019 Grad ConstOffset 1017 1018 452
+            1021:    174(ptr) AccessChain 986(texel) 173
+            1022:    6(float) Load 1021
+            1023:    6(float) FAdd 1022 1020
+            1024:    174(ptr) AccessChain 986(texel) 173
+                              Store 1024 1023
+            1025:         165 Load 167(s1DShadow)
+            1026:  148(fvec3) Load 150(c3)
+            1027:    6(float) Load 866(dPdxy1)
+            1028:    6(float) Load 866(dPdxy1)
+            1029:    6(float) CompositeExtract 1026 2
+            1030:    6(float) ImageSampleDrefExplicitLod 1025 1026 1029 Grad ConstOffset 1027 1028 445
+            1031:    174(ptr) AccessChain 986(texel) 173
+            1032:    6(float) Load 1031
+            1033:    6(float) FAdd 1032 1030
+            1034:    174(ptr) AccessChain 986(texel) 173
+                              Store 1034 1033
+            1035:         180 Load 182(s2DShadow)
+            1036:  148(fvec3) Load 150(c3)
+            1037:   52(fvec2) Load 874(dPdxy2)
+            1038:   52(fvec2) Load 874(dPdxy2)
+            1039:    6(float) CompositeExtract 1036 2
+            1040:    6(float) ImageSampleDrefExplicitLod 1035 1036 1039 Grad ConstOffset 1037 1038 452
+            1041:    174(ptr) AccessChain 986(texel) 173
+            1042:    6(float) Load 1041
+            1043:    6(float) FAdd 1042 1040
+            1044:    174(ptr) AccessChain 986(texel) 173
+                              Store 1044 1043
+            1045:         206 Load 208(s1DArray)
+            1046:   52(fvec2) Load 138(c2)
+            1047:    6(float) Load 866(dPdxy1)
+            1048:    6(float) Load 866(dPdxy1)
+            1049:    7(fvec4) ImageSampleExplicitLod 1045 1046 Grad ConstOffset 1047 1048 445
+            1050:    7(fvec4) Load 986(texel)
+            1051:    7(fvec4) FAdd 1050 1049
+                              Store 986(texel) 1051
+            1052:         215 Load 217(s2DArray)
+            1053:  148(fvec3) Load 150(c3)
+            1054:   52(fvec2) Load 874(dPdxy2)
+            1055:   52(fvec2) Load 874(dPdxy2)
+            1056:    7(fvec4) ImageSampleExplicitLod 1052 1053 Grad ConstOffset 1054 1055 452
+            1057:    7(fvec4) Load 986(texel)
+            1058:    7(fvec4) FAdd 1057 1056
+                              Store 986(texel) 1058
+            1059:         233 Load 235(s1DArrayShadow)
+            1060:  148(fvec3) Load 150(c3)
+            1061:    6(float) Load 866(dPdxy1)
+            1062:    6(float) Load 866(dPdxy1)
+            1063:    6(float) CompositeExtract 1060 2
+            1064:    6(float) ImageSampleDrefExplicitLod 1059 1060 1063 Grad ConstOffset 1061 1062 445
+            1065:    174(ptr) AccessChain 986(texel) 173
+            1066:    6(float) Load 1065
+            1067:    6(float) FAdd 1066 1064
+            1068:    174(ptr) AccessChain 986(texel) 173
+                              Store 1068 1067
+            1069:         245 Load 247(s2DArrayShadow)
+            1070:    7(fvec4) Load 197(c4)
+            1071:   52(fvec2) Load 874(dPdxy2)
+            1072:   52(fvec2) Load 874(dPdxy2)
+            1073:    6(float) CompositeExtract 1070 3
+            1074:    6(float) ImageSampleDrefExplicitLod 1069 1070 1073 Grad ConstOffset 1071 1072 452
+            1075:    174(ptr) AccessChain 986(texel) 173
+            1076:    6(float) Load 1075
+            1077:    6(float) FAdd 1076 1074
+            1078:    174(ptr) AccessChain 986(texel) 173
+                              Store 1078 1077
+            1079:    7(fvec4) Load 986(texel)
+                              ReturnValue 1079
+                              FunctionEnd
+31(testTextureProjGrad():    7(fvec4) Function None 8
+              32:             Label
+     1082(texel):     63(ptr) Variable Function
+                              Store 1082(texel) 120
+            1083:         122 Load 124(s1D)
+            1084:   52(fvec2) Load 138(c2)
+            1085:    6(float) Load 866(dPdxy1)
+            1086:    6(float) Load 866(dPdxy1)
+            1087:    7(fvec4) ImageSampleProjExplicitLod 1083 1084 Grad 1085 1086
+            1088:    7(fvec4) Load 1082(texel)
+            1089:    7(fvec4) FAdd 1088 1087
+                              Store 1082(texel) 1089
+            1090:         122 Load 124(s1D)
+            1091:    7(fvec4) Load 197(c4)
+            1092:    6(float) Load 866(dPdxy1)
+            1093:    6(float) Load 866(dPdxy1)
+            1094:    6(float) CompositeExtract 1091 3
+            1095:    7(fvec4) CompositeInsert 1094 1091 1
+            1096:    7(fvec4) ImageSampleProjExplicitLod 1090 1095 Grad 1092 1093
+            1097:    7(fvec4) Load 1082(texel)
+            1098:    7(fvec4) FAdd 1097 1096
+                              Store 1082(texel) 1098
+            1099:         133 Load 135(s2D)
+            1100:  148(fvec3) Load 150(c3)
+            1101:   52(fvec2) Load 874(dPdxy2)
+            1102:   52(fvec2) Load 874(dPdxy2)
+            1103:    7(fvec4) ImageSampleProjExplicitLod 1099 1100 Grad 1101 1102
+            1104:    7(fvec4) Load 1082(texel)
+            1105:    7(fvec4) FAdd 1104 1103
+                              Store 1082(texel) 1105
+            1106:         133 Load 135(s2D)
+            1107:    7(fvec4) Load 197(c4)
+            1108:   52(fvec2) Load 874(dPdxy2)
+            1109:   52(fvec2) Load 874(dPdxy2)
+            1110:    6(float) CompositeExtract 1107 3
+            1111:    7(fvec4) CompositeInsert 1110 1107 2
+            1112:    7(fvec4) ImageSampleProjExplicitLod 1106 1111 Grad 1108 1109
+            1113:    7(fvec4) Load 1082(texel)
+            1114:    7(fvec4) FAdd 1113 1112
+                              Store 1082(texel) 1114
+            1115:         144 Load 146(s3D)
+            1116:    7(fvec4) Load 197(c4)
+            1117:  148(fvec3) Load 882(dPdxy3)
+            1118:  148(fvec3) Load 882(dPdxy3)
+            1119:    7(fvec4) ImageSampleProjExplicitLod 1115 1116 Grad 1117 1118
+            1120:    7(fvec4) Load 1082(texel)
+            1121:    7(fvec4) FAdd 1120 1119
+                              Store 1082(texel) 1121
+            1122:         257 Load 259(s2DRect)
+            1123:  148(fvec3) Load 150(c3)
+            1124:   52(fvec2) Load 874(dPdxy2)
+            1125:   52(fvec2) Load 874(dPdxy2)
+            1126:    7(fvec4) ImageSampleProjExplicitLod 1122 1123 Grad 1124 1125
+            1127:    7(fvec4) Load 1082(texel)
+            1128:    7(fvec4) FAdd 1127 1126
+                              Store 1082(texel) 1128
+            1129:         257 Load 259(s2DRect)
+            1130:    7(fvec4) Load 197(c4)
+            1131:   52(fvec2) Load 874(dPdxy2)
+            1132:   52(fvec2) Load 874(dPdxy2)
+            1133:    6(float) CompositeExtract 1130 3
+            1134:    7(fvec4) CompositeInsert 1133 1130 2
+            1135:    7(fvec4) ImageSampleProjExplicitLod 1129 1134 Grad 1131 1132
+            1136:    7(fvec4) Load 1082(texel)
+            1137:    7(fvec4) FAdd 1136 1135
+                              Store 1082(texel) 1137
+            1138:         266 Load 268(s2DRectShadow)
+            1139:    7(fvec4) Load 197(c4)
+            1140:   52(fvec2) Load 874(dPdxy2)
+            1141:   52(fvec2) Load 874(dPdxy2)
+            1142:    6(float) CompositeExtract 1139 2
+            1143:    6(float) CompositeExtract 1139 3
+            1144:    7(fvec4) CompositeInsert 1143 1139 2
+            1145:    6(float) ImageSampleProjDrefExplicitLod 1138 1144 1142 Grad 1140 1141
+            1146:    174(ptr) AccessChain 1082(texel) 173
+            1147:    6(float) Load 1146
+            1148:    6(float) FAdd 1147 1145
+            1149:    174(ptr) AccessChain 1082(texel) 173
+                              Store 1149 1148
+            1150:         165 Load 167(s1DShadow)
+            1151:    7(fvec4) Load 197(c4)
+            1152:    6(float) Load 866(dPdxy1)
+            1153:    6(float) Load 866(dPdxy1)
+            1154:    6(float) CompositeExtract 1151 2
+            1155:    6(float) CompositeExtract 1151 3
+            1156:    7(fvec4) CompositeInsert 1155 1151 1
+            1157:    6(float) ImageSampleProjDrefExplicitLod 1150 1156 1154 Grad 1152 1153
+            1158:    174(ptr) AccessChain 1082(texel) 173
+            1159:    6(float) Load 1158
+            1160:    6(float) FAdd 1159 1157
+            1161:    174(ptr) AccessChain 1082(texel) 173
+                              Store 1161 1160
+            1162:         180 Load 182(s2DShadow)
+            1163:    7(fvec4) Load 197(c4)
+            1164:   52(fvec2) Load 874(dPdxy2)
+            1165:   52(fvec2) Load 874(dPdxy2)
+            1166:    6(float) CompositeExtract 1163 2
+            1167:    6(float) CompositeExtract 1163 3
+            1168:    7(fvec4) CompositeInsert 1167 1163 2
+            1169:    6(float) ImageSampleProjDrefExplicitLod 1162 1168 1166 Grad 1164 1165
+            1170:    174(ptr) AccessChain 1082(texel) 173
+            1171:    6(float) Load 1170
+            1172:    6(float) FAdd 1171 1169
+            1173:    174(ptr) AccessChain 1082(texel) 173
+                              Store 1173 1172
+            1174:    7(fvec4) Load 1082(texel)
+                              ReturnValue 1174
+                              FunctionEnd
+33(testTextureProjGradoffset():    7(fvec4) Function None 8
+              34:             Label
+     1177(texel):     63(ptr) Variable Function
+                              Store 1177(texel) 120
+            1178:         122 Load 124(s1D)
+            1179:   52(fvec2) Load 138(c2)
+            1180:    6(float) Load 866(dPdxy1)
+            1181:    6(float) Load 866(dPdxy1)
+            1182:    7(fvec4) ImageSampleProjExplicitLod 1178 1179 Grad ConstOffset 1180 1181 445
+            1183:    7(fvec4) Load 1177(texel)
+            1184:    7(fvec4) FAdd 1183 1182
+                              Store 1177(texel) 1184
+            1185:         122 Load 124(s1D)
+            1186:    7(fvec4) Load 197(c4)
+            1187:    6(float) Load 866(dPdxy1)
+            1188:    6(float) Load 866(dPdxy1)
+            1189:    6(float) CompositeExtract 1186 3
+            1190:    7(fvec4) CompositeInsert 1189 1186 1
+            1191:    7(fvec4) ImageSampleProjExplicitLod 1185 1190 Grad ConstOffset 1187 1188 445
+            1192:    7(fvec4) Load 1177(texel)
+            1193:    7(fvec4) FAdd 1192 1191
+                              Store 1177(texel) 1193
+            1194:         133 Load 135(s2D)
+            1195:  148(fvec3) Load 150(c3)
+            1196:   52(fvec2) Load 874(dPdxy2)
+            1197:   52(fvec2) Load 874(dPdxy2)
+            1198:    7(fvec4) ImageSampleProjExplicitLod 1194 1195 Grad ConstOffset 1196 1197 452
+            1199:    7(fvec4) Load 1177(texel)
+            1200:    7(fvec4) FAdd 1199 1198
+                              Store 1177(texel) 1200
+            1201:         133 Load 135(s2D)
+            1202:    7(fvec4) Load 197(c4)
+            1203:   52(fvec2) Load 874(dPdxy2)
+            1204:   52(fvec2) Load 874(dPdxy2)
+            1205:    6(float) CompositeExtract 1202 3
+            1206:    7(fvec4) CompositeInsert 1205 1202 2
+            1207:    7(fvec4) ImageSampleProjExplicitLod 1201 1206 Grad ConstOffset 1203 1204 452
+            1208:    7(fvec4) Load 1177(texel)
+            1209:    7(fvec4) FAdd 1208 1207
+                              Store 1177(texel) 1209
+            1210:         257 Load 259(s2DRect)
+            1211:  148(fvec3) Load 150(c3)
+            1212:   52(fvec2) Load 874(dPdxy2)
+            1213:   52(fvec2) Load 874(dPdxy2)
+            1214:    7(fvec4) ImageSampleProjExplicitLod 1210 1211 Grad ConstOffset 1212 1213 452
+            1215:    7(fvec4) Load 1177(texel)
+            1216:    7(fvec4) FAdd 1215 1214
+                              Store 1177(texel) 1216
+            1217:         257 Load 259(s2DRect)
+            1218:    7(fvec4) Load 197(c4)
+            1219:   52(fvec2) Load 874(dPdxy2)
+            1220:   52(fvec2) Load 874(dPdxy2)
+            1221:    6(float) CompositeExtract 1218 3
+            1222:    7(fvec4) CompositeInsert 1221 1218 2
+            1223:    7(fvec4) ImageSampleProjExplicitLod 1217 1222 Grad ConstOffset 1219 1220 452
+            1224:    7(fvec4) Load 1177(texel)
+            1225:    7(fvec4) FAdd 1224 1223
+                              Store 1177(texel) 1225
+            1226:         266 Load 268(s2DRectShadow)
+            1227:    7(fvec4) Load 197(c4)
+            1228:   52(fvec2) Load 874(dPdxy2)
+            1229:   52(fvec2) Load 874(dPdxy2)
+            1230:    6(float) CompositeExtract 1227 2
+            1231:    6(float) CompositeExtract 1227 3
+            1232:    7(fvec4) CompositeInsert 1231 1227 2
+            1233:    6(float) ImageSampleProjDrefExplicitLod 1226 1232 1230 Grad ConstOffset 1228 1229 452
+            1234:    174(ptr) AccessChain 1177(texel) 173
+            1235:    6(float) Load 1234
+            1236:    6(float) FAdd 1235 1233
+            1237:    174(ptr) AccessChain 1177(texel) 173
+                              Store 1237 1236
+            1238:         144 Load 146(s3D)
+            1239:    7(fvec4) Load 197(c4)
+            1240:  148(fvec3) Load 882(dPdxy3)
+            1241:  148(fvec3) Load 882(dPdxy3)
+            1242:    7(fvec4) ImageSampleProjExplicitLod 1238 1239 Grad ConstOffset 1240 1241 459
+            1243:    7(fvec4) Load 1177(texel)
+            1244:    7(fvec4) FAdd 1243 1242
+                              Store 1177(texel) 1244
+            1245:         165 Load 167(s1DShadow)
+            1246:    7(fvec4) Load 197(c4)
+            1247:    6(float) Load 866(dPdxy1)
+            1248:    6(float) Load 866(dPdxy1)
+            1249:    6(float) CompositeExtract 1246 2
+            1250:    6(float) CompositeExtract 1246 3
+            1251:    7(fvec4) CompositeInsert 1250 1246 1
+            1252:    6(float) ImageSampleProjDrefExplicitLod 1245 1251 1249 Grad ConstOffset 1247 1248 445
+            1253:    174(ptr) AccessChain 1177(texel) 173
+            1254:    6(float) Load 1253
+            1255:    6(float) FAdd 1254 1252
+            1256:    174(ptr) AccessChain 1177(texel) 173
+                              Store 1256 1255
+            1257:         180 Load 182(s2DShadow)
+            1258:    7(fvec4) Load 197(c4)
+            1259:   52(fvec2) Load 874(dPdxy2)
+            1260:   52(fvec2) Load 874(dPdxy2)
+            1261:    6(float) CompositeExtract 1258 2
+            1262:    6(float) CompositeExtract 1258 3
+            1263:    7(fvec4) CompositeInsert 1262 1258 2
+            1264:    6(float) ImageSampleProjDrefExplicitLod 1257 1263 1261 Grad ConstOffset 1259 1260 452
+            1265:    174(ptr) AccessChain 1177(texel) 173
+            1266:    6(float) Load 1265
+            1267:    6(float) FAdd 1266 1264
+            1268:    174(ptr) AccessChain 1177(texel) 173
+                              Store 1268 1267
+            1269:    7(fvec4) Load 1177(texel)
+                              ReturnValue 1269
+                              FunctionEnd
+35(testTextureGather():    7(fvec4) Function None 8
+              36:             Label
+     1272(texel):     63(ptr) Variable Function
+                              Store 1272(texel) 120
+            1273:         133 Load 135(s2D)
+            1274:   52(fvec2) Load 138(c2)
+            1276:    7(fvec4) ImageGather 1273 1274 1275
+            1277:    7(fvec4) Load 1272(texel)
+            1278:    7(fvec4) FAdd 1277 1276
+                              Store 1272(texel) 1278
+            1279:         215 Load 217(s2DArray)
+            1280:  148(fvec3) Load 150(c3)
+            1281:    7(fvec4) ImageGather 1279 1280 1275
+            1282:    7(fvec4) Load 1272(texel)
+            1283:    7(fvec4) FAdd 1282 1281
+                              Store 1272(texel) 1283
+            1284:         156 Load 158(sCube)
+            1285:  148(fvec3) Load 150(c3)
+            1286:    7(fvec4) ImageGather 1284 1285 1275
+            1287:    7(fvec4) Load 1272(texel)
+            1288:    7(fvec4) FAdd 1287 1286
+                              Store 1272(texel) 1288
+            1289:         224 Load 226(sCubeArray)
+            1290:    7(fvec4) Load 197(c4)
+            1291:    7(fvec4) ImageGather 1289 1290 1275
+            1292:    7(fvec4) Load 1272(texel)
+            1293:    7(fvec4) FAdd 1292 1291
+                              Store 1272(texel) 1293
+            1294:         257 Load 259(s2DRect)
+            1295:   52(fvec2) Load 138(c2)
+            1296:    7(fvec4) ImageGather 1294 1295 1275
+            1297:    7(fvec4) Load 1272(texel)
+            1298:    7(fvec4) FAdd 1297 1296
+                              Store 1272(texel) 1298
+            1299:         180 Load 182(s2DShadow)
+            1300:   52(fvec2) Load 138(c2)
+            1301:    6(float) Load 283(compare)
+            1302:    7(fvec4) ImageDrefGather 1299 1300 1301
+            1303:    7(fvec4) Load 1272(texel)
+            1304:    7(fvec4) FAdd 1303 1302
+                              Store 1272(texel) 1304
+            1305:         245 Load 247(s2DArrayShadow)
+            1306:  148(fvec3) Load 150(c3)
+            1307:    6(float) Load 283(compare)
+            1308:    7(fvec4) ImageDrefGather 1305 1306 1307
+            1309:    7(fvec4) Load 1272(texel)
+            1310:    7(fvec4) FAdd 1309 1308
+                              Store 1272(texel) 1310
+            1311:         192 Load 194(sCubeShadow)
+            1312:  148(fvec3) Load 150(c3)
+            1313:    6(float) Load 283(compare)
+            1314:    7(fvec4) ImageDrefGather 1311 1312 1313
+            1315:    7(fvec4) Load 1272(texel)
+            1316:    7(fvec4) FAdd 1315 1314
+                              Store 1272(texel) 1316
+            1317:         278 Load 280(sCubeArrayShadow)
+            1318:    7(fvec4) Load 197(c4)
+            1319:    6(float) Load 283(compare)
+            1320:    7(fvec4) ImageDrefGather 1317 1318 1319
+            1321:    7(fvec4) Load 1272(texel)
+            1322:    7(fvec4) FAdd 1321 1320
+                              Store 1272(texel) 1322
+            1323:         266 Load 268(s2DRectShadow)
+            1324:   52(fvec2) Load 138(c2)
+            1325:    6(float) Load 283(compare)
+            1326:    7(fvec4) ImageDrefGather 1323 1324 1325
+            1327:    7(fvec4) Load 1272(texel)
+            1328:    7(fvec4) FAdd 1327 1326
+                              Store 1272(texel) 1328
+            1329:    7(fvec4) Load 1272(texel)
+                              ReturnValue 1329
+                              FunctionEnd
+37(testTextureGatherOffset():    7(fvec4) Function None 8
+              38:             Label
+     1332(texel):     63(ptr) Variable Function
+                              Store 1332(texel) 120
+            1333:         133 Load 135(s2D)
+            1334:   52(fvec2) Load 138(c2)
+            1335:    7(fvec4) ImageGather 1333 1334 1275 ConstOffset 452
+            1336:    7(fvec4) Load 1332(texel)
+            1337:    7(fvec4) FAdd 1336 1335
+                              Store 1332(texel) 1337
+            1338:         215 Load 217(s2DArray)
+            1339:  148(fvec3) Load 150(c3)
+            1340:    7(fvec4) ImageGather 1338 1339 1275 ConstOffset 452
+            1341:    7(fvec4) Load 1332(texel)
+            1342:    7(fvec4) FAdd 1341 1340
+                              Store 1332(texel) 1342
+            1343:         257 Load 259(s2DRect)
+            1344:   52(fvec2) Load 138(c2)
+            1345:    7(fvec4) ImageGather 1343 1344 1275 ConstOffset 452
+            1346:    7(fvec4) Load 1332(texel)
+            1347:    7(fvec4) FAdd 1346 1345
+                              Store 1332(texel) 1347
+            1348:         180 Load 182(s2DShadow)
+            1349:   52(fvec2) Load 138(c2)
+            1350:    6(float) Load 283(compare)
+            1351:    7(fvec4) ImageDrefGather 1348 1349 1350 ConstOffset 452
+            1352:    7(fvec4) Load 1332(texel)
+            1353:    7(fvec4) FAdd 1352 1351
+                              Store 1332(texel) 1353
+            1354:         245 Load 247(s2DArrayShadow)
+            1355:  148(fvec3) Load 150(c3)
+            1356:    6(float) Load 283(compare)
+            1357:    7(fvec4) ImageDrefGather 1354 1355 1356 ConstOffset 452
+            1358:    7(fvec4) Load 1332(texel)
+            1359:    7(fvec4) FAdd 1358 1357
+                              Store 1332(texel) 1359
+            1360:         266 Load 268(s2DRectShadow)
+            1361:   52(fvec2) Load 138(c2)
+            1362:    6(float) Load 283(compare)
+            1363:    7(fvec4) ImageDrefGather 1360 1361 1362 ConstOffset 452
+            1364:    7(fvec4) Load 1332(texel)
+            1365:    7(fvec4) FAdd 1364 1363
+                              Store 1332(texel) 1365
+            1366:    7(fvec4) Load 1332(texel)
+                              ReturnValue 1366
+                              FunctionEnd
+39(testTextureGatherOffsets():    7(fvec4) Function None 8
+              40:             Label
+     1369(texel):     63(ptr) Variable Function
+                              Store 1369(texel) 120
+            1370:         133 Load 135(s2D)
+            1371:   52(fvec2) Load 138(c2)
+            1375:    7(fvec4) ImageGather 1370 1371 1275 ConstOffsets 1374
+            1376:    7(fvec4) Load 1369(texel)
+            1377:    7(fvec4) FAdd 1376 1375
+                              Store 1369(texel) 1377
+            1378:         215 Load 217(s2DArray)
+            1379:  148(fvec3) Load 150(c3)
+            1380:    7(fvec4) ImageGather 1378 1379 1275 ConstOffsets 1374
+            1381:    7(fvec4) Load 1369(texel)
+            1382:    7(fvec4) FAdd 1381 1380
+                              Store 1369(texel) 1382
+            1383:         257 Load 259(s2DRect)
+            1384:   52(fvec2) Load 138(c2)
+            1385:    7(fvec4) ImageGather 1383 1384 1275 ConstOffsets 1374
+            1386:    7(fvec4) Load 1369(texel)
+            1387:    7(fvec4) FAdd 1386 1385
+                              Store 1369(texel) 1387
+            1388:         180 Load 182(s2DShadow)
+            1389:   52(fvec2) Load 138(c2)
+            1390:    6(float) Load 283(compare)
+            1391:    7(fvec4) ImageDrefGather 1388 1389 1390 ConstOffsets 1374
+            1392:    7(fvec4) Load 1369(texel)
+            1393:    7(fvec4) FAdd 1392 1391
+                              Store 1369(texel) 1393
+            1394:         245 Load 247(s2DArrayShadow)
+            1395:  148(fvec3) Load 150(c3)
+            1396:    6(float) Load 283(compare)
+            1397:    7(fvec4) ImageDrefGather 1394 1395 1396 ConstOffsets 1374
+            1398:    7(fvec4) Load 1369(texel)
+            1399:    7(fvec4) FAdd 1398 1397
+                              Store 1369(texel) 1399
+            1400:         266 Load 268(s2DRectShadow)
+            1401:   52(fvec2) Load 138(c2)
+            1402:    6(float) Load 283(compare)
+            1403:    7(fvec4) ImageDrefGather 1400 1401 1402 ConstOffsets 1374
+            1404:    7(fvec4) Load 1369(texel)
+            1405:    7(fvec4) FAdd 1404 1403
+                              Store 1369(texel) 1405
+            1406:    7(fvec4) Load 1369(texel)
+                              ReturnValue 1406
+                              FunctionEnd
+41(testTextureGatherLod():    7(fvec4) Function None 8
+              42:             Label
+     1409(texel):     63(ptr) Variable Function
+                              Store 1409(texel) 120
+            1410:         133 Load 135(s2D)
+            1411:   52(fvec2) Load 138(c2)
+            1412:    6(float) Load 371(lod)
+            1413:    7(fvec4) ImageGather 1410 1411 1275 Lod 1412
+            1414:    7(fvec4) Load 1409(texel)
+            1415:    7(fvec4) FAdd 1414 1413
+                              Store 1409(texel) 1415
+            1416:         215 Load 217(s2DArray)
+            1417:  148(fvec3) Load 150(c3)
+            1418:    6(float) Load 371(lod)
+            1419:    7(fvec4) ImageGather 1416 1417 1275 Lod 1418
+            1420:    7(fvec4) Load 1409(texel)
+            1421:    7(fvec4) FAdd 1420 1419
+                              Store 1409(texel) 1421
+            1422:         156 Load 158(sCube)
+            1423:  148(fvec3) Load 150(c3)
+            1424:    6(float) Load 371(lod)
+            1425:    7(fvec4) ImageGather 1422 1423 1275 Lod 1424
+            1426:    7(fvec4) Load 1409(texel)
+            1427:    7(fvec4) FAdd 1426 1425
+                              Store 1409(texel) 1427
+            1428:         224 Load 226(sCubeArray)
+            1429:    7(fvec4) Load 197(c4)
+            1430:    6(float) Load 371(lod)
+            1431:    7(fvec4) ImageGather 1428 1429 1275 Lod 1430
+            1432:    7(fvec4) Load 1409(texel)
+            1433:    7(fvec4) FAdd 1432 1431
+                              Store 1409(texel) 1433
+            1434:    7(fvec4) Load 1409(texel)
+                              ReturnValue 1434
+                              FunctionEnd
+43(testTextureGatherLodOffset():    7(fvec4) Function None 8
+              44:             Label
+     1437(texel):     63(ptr) Variable Function
+                              Store 1437(texel) 120
+            1438:         133 Load 135(s2D)
+            1439:   52(fvec2) Load 138(c2)
+            1440:    6(float) Load 371(lod)
+            1441:    7(fvec4) ImageGather 1438 1439 1275 Lod ConstOffset 1440 452
+            1442:    7(fvec4) Load 1437(texel)
+            1443:    7(fvec4) FAdd 1442 1441
+                              Store 1437(texel) 1443
+            1444:         215 Load 217(s2DArray)
+            1445:  148(fvec3) Load 150(c3)
+            1446:    6(float) Load 371(lod)
+            1447:    7(fvec4) ImageGather 1444 1445 1275 Lod ConstOffset 1446 452
+            1448:    7(fvec4) Load 1437(texel)
+            1449:    7(fvec4) FAdd 1448 1447
+                              Store 1437(texel) 1449
+            1450:    7(fvec4) Load 1437(texel)
+                              ReturnValue 1450
+                              FunctionEnd
+45(testTextureGatherLodOffsets():    7(fvec4) Function None 8
+              46:             Label
+     1453(texel):     63(ptr) Variable Function
+                              Store 1453(texel) 120
+            1454:         133 Load 135(s2D)
+            1455:   52(fvec2) Load 138(c2)
+            1456:    6(float) Load 371(lod)
+            1457:    7(fvec4) ImageGather 1454 1455 1275 Lod ConstOffsets 1456 1374
+            1458:    7(fvec4) Load 1453(texel)
+            1459:    7(fvec4) FAdd 1458 1457
+                              Store 1453(texel) 1459
+            1460:         215 Load 217(s2DArray)
+            1461:  148(fvec3) Load 150(c3)
+            1462:    6(float) Load 371(lod)
+            1463:    7(fvec4) ImageGather 1460 1461 1275 Lod ConstOffsets 1462 1374
+            1464:    7(fvec4) Load 1453(texel)
+            1465:    7(fvec4) FAdd 1464 1463
+                              Store 1453(texel) 1465
+            1466:    7(fvec4) Load 1453(texel)
+                              ReturnValue 1466
+                              FunctionEnd
+50(testTextureSize():   48(ivec4) Function None 49
+              51:             Label
+      1470(size):   1469(ptr) Variable Function
+                              Store 1470(size) 1471
+            1472:         122 Load 124(s1D)
+            1473:    6(float) Load 371(lod)
+            1474:     47(int) ConvertFToS 1473
+            1475:         121 Image 1472
+            1476:     47(int) ImageQuerySizeLod 1475 1474
+            1478:   1477(ptr) AccessChain 1470(size) 173
+            1479:     47(int) Load 1478
+            1480:     47(int) IAdd 1479 1476
+            1481:   1477(ptr) AccessChain 1470(size) 173
+                              Store 1481 1480
+            1482:         133 Load 135(s2D)
+            1483:    6(float) Load 371(lod)
+            1484:     47(int) ConvertFToS 1483
+            1485:         132 Image 1482
+            1486:  451(ivec2) ImageQuerySizeLod 1485 1484
+            1487:   48(ivec4) Load 1470(size)
+            1488:  451(ivec2) VectorShuffle 1487 1487 0 1
+            1489:  451(ivec2) IAdd 1488 1486
+            1490:   1477(ptr) AccessChain 1470(size) 173
+            1491:     47(int) CompositeExtract 1489 0
+                              Store 1490 1491
+            1493:   1477(ptr) AccessChain 1470(size) 1492
+            1494:     47(int) CompositeExtract 1489 1
+                              Store 1493 1494
+            1495:         144 Load 146(s3D)
+            1496:    6(float) Load 371(lod)
+            1497:     47(int) ConvertFToS 1496
+            1498:         143 Image 1495
+            1499:  458(ivec3) ImageQuerySizeLod 1498 1497
+            1500:   48(ivec4) Load 1470(size)
+            1501:  458(ivec3) VectorShuffle 1500 1500 0 1 2
+            1502:  458(ivec3) IAdd 1501 1499
+            1503:   1477(ptr) AccessChain 1470(size) 173
+            1504:     47(int) CompositeExtract 1502 0
+                              Store 1503 1504
+            1505:   1477(ptr) AccessChain 1470(size) 1492
+            1506:     47(int) CompositeExtract 1502 1
+                              Store 1505 1506
+            1508:   1477(ptr) AccessChain 1470(size) 1507
+            1509:     47(int) CompositeExtract 1502 2
+                              Store 1508 1509
+            1510:         156 Load 158(sCube)
+            1511:    6(float) Load 371(lod)
+            1512:     47(int) ConvertFToS 1511
+            1513:         155 Image 1510
+            1514:  451(ivec2) ImageQuerySizeLod 1513 1512
+            1515:   48(ivec4) Load 1470(size)
+            1516:  451(ivec2) VectorShuffle 1515 1515 0 1
+            1517:  451(ivec2) IAdd 1516 1514
+            1518:   1477(ptr) AccessChain 1470(size) 173
+            1519:     47(int) CompositeExtract 1517 0
+                              Store 1518 1519
+            1520:   1477(ptr) AccessChain 1470(size) 1492
+            1521:     47(int) CompositeExtract 1517 1
+                              Store 1520 1521
+            1522:         165 Load 167(s1DShadow)
+            1523:    6(float) Load 371(lod)
+            1524:     47(int) ConvertFToS 1523
+            1525:         164 Image 1522
+            1526:     47(int) ImageQuerySizeLod 1525 1524
+            1527:   1477(ptr) AccessChain 1470(size) 173
+            1528:     47(int) Load 1527
+            1529:     47(int) IAdd 1528 1526
+            1530:   1477(ptr) AccessChain 1470(size) 173
+                              Store 1530 1529
+            1531:         180 Load 182(s2DShadow)
+            1532:    6(float) Load 371(lod)
+            1533:     47(int) ConvertFToS 1532
+            1534:         179 Image 1531
+            1535:  451(ivec2) ImageQuerySizeLod 1534 1533
+            1536:   48(ivec4) Load 1470(size)
+            1537:  451(ivec2) VectorShuffle 1536 1536 0 1
+            1538:  451(ivec2) IAdd 1537 1535
+            1539:   1477(ptr) AccessChain 1470(size) 173
+            1540:     47(int) CompositeExtract 1538 0
+                              Store 1539 1540
+            1541:   1477(ptr) AccessChain 1470(size) 1492
+            1542:     47(int) CompositeExtract 1538 1
+                              Store 1541 1542
+            1543:         192 Load 194(sCubeShadow)
+            1544:    6(float) Load 371(lod)
+            1545:     47(int) ConvertFToS 1544
+            1546:         191 Image 1543
+            1547:  451(ivec2) ImageQuerySizeLod 1546 1545
+            1548:   48(ivec4) Load 1470(size)
+            1549:  451(ivec2) VectorShuffle 1548 1548 0 1
+            1550:  451(ivec2) IAdd 1549 1547
+            1551:   1477(ptr) AccessChain 1470(size) 173
+            1552:     47(int) CompositeExtract 1550 0
+                              Store 1551 1552
+            1553:   1477(ptr) AccessChain 1470(size) 1492
+            1554:     47(int) CompositeExtract 1550 1
+                              Store 1553 1554
+            1555:         224 Load 226(sCubeArray)
+            1556:    6(float) Load 371(lod)
+            1557:     47(int) ConvertFToS 1556
+            1558:         223 Image 1555
+            1559:  458(ivec3) ImageQuerySizeLod 1558 1557
+            1560:   48(ivec4) Load 1470(size)
+            1561:  458(ivec3) VectorShuffle 1560 1560 0 1 2
+            1562:  458(ivec3) IAdd 1561 1559
+            1563:   1477(ptr) AccessChain 1470(size) 173
+            1564:     47(int) CompositeExtract 1562 0
+                              Store 1563 1564
+            1565:   1477(ptr) AccessChain 1470(size) 1492
+            1566:     47(int) CompositeExtract 1562 1
+                              Store 1565 1566
+            1567:   1477(ptr) AccessChain 1470(size) 1507
+            1568:     47(int) CompositeExtract 1562 2
+                              Store 1567 1568
+            1569:         278 Load 280(sCubeArrayShadow)
+            1570:    6(float) Load 371(lod)
+            1571:     47(int) ConvertFToS 1570
+            1572:         277 Image 1569
+            1573:  458(ivec3) ImageQuerySizeLod 1572 1571
+            1574:   48(ivec4) Load 1470(size)
+            1575:  458(ivec3) VectorShuffle 1574 1574 0 1 2
+            1576:  458(ivec3) IAdd 1575 1573
+            1577:   1477(ptr) AccessChain 1470(size) 173
+            1578:     47(int) CompositeExtract 1576 0
+                              Store 1577 1578
+            1579:   1477(ptr) AccessChain 1470(size) 1492
+            1580:     47(int) CompositeExtract 1576 1
+                              Store 1579 1580
+            1581:   1477(ptr) AccessChain 1470(size) 1507
+            1582:     47(int) CompositeExtract 1576 2
+                              Store 1581 1582
+            1583:         257 Load 259(s2DRect)
+            1584:         256 Image 1583
+            1585:  451(ivec2) ImageQuerySize 1584
+            1586:   48(ivec4) Load 1470(size)
+            1587:  451(ivec2) VectorShuffle 1586 1586 0 1
+            1588:  451(ivec2) IAdd 1587 1585
+            1589:   1477(ptr) AccessChain 1470(size) 173
+            1590:     47(int) CompositeExtract 1588 0
+                              Store 1589 1590
+            1591:   1477(ptr) AccessChain 1470(size) 1492
+            1592:     47(int) CompositeExtract 1588 1
+                              Store 1591 1592
+            1593:         266 Load 268(s2DRectShadow)
+            1594:         265 Image 1593
+            1595:  451(ivec2) ImageQuerySize 1594
+            1596:   48(ivec4) Load 1470(size)
+            1597:  451(ivec2) VectorShuffle 1596 1596 0 1
+            1598:  451(ivec2) IAdd 1597 1595
+            1599:   1477(ptr) AccessChain 1470(size) 173
+            1600:     47(int) CompositeExtract 1598 0
+                              Store 1599 1600
+            1601:   1477(ptr) AccessChain 1470(size) 1492
+            1602:     47(int) CompositeExtract 1598 1
+                              Store 1601 1602
+            1603:         206 Load 208(s1DArray)
+            1604:    6(float) Load 371(lod)
+            1605:     47(int) ConvertFToS 1604
+            1606:         205 Image 1603
+            1607:  451(ivec2) ImageQuerySizeLod 1606 1605
+            1608:   48(ivec4) Load 1470(size)
+            1609:  451(ivec2) VectorShuffle 1608 1608 0 1
+            1610:  451(ivec2) IAdd 1609 1607
+            1611:   1477(ptr) AccessChain 1470(size) 173
+            1612:     47(int) CompositeExtract 1610 0
+                              Store 1611 1612
+            1613:   1477(ptr) AccessChain 1470(size) 1492
+            1614:     47(int) CompositeExtract 1610 1
+                              Store 1613 1614
+            1615:         215 Load 217(s2DArray)
+            1616:    6(float) Load 371(lod)
+            1617:     47(int) ConvertFToS 1616
+            1618:         214 Image 1615
+            1619:  458(ivec3) ImageQuerySizeLod 1618 1617
+            1620:   48(ivec4) Load 1470(size)
+            1621:  458(ivec3) VectorShuffle 1620 1620 0 1 2
+            1622:  458(ivec3) IAdd 1621 1619
+            1623:   1477(ptr) AccessChain 1470(size) 173
+            1624:     47(int) CompositeExtract 1622 0
+                              Store 1623 1624
+            1625:   1477(ptr) AccessChain 1470(size) 1492
+            1626:     47(int) CompositeExtract 1622 1
+                              Store 1625 1626
+            1627:   1477(ptr) AccessChain 1470(size) 1507
+            1628:     47(int) CompositeExtract 1622 2
+                              Store 1627 1628
+            1629:         233 Load 235(s1DArrayShadow)
+            1630:    6(float) Load 371(lod)
+            1631:     47(int) ConvertFToS 1630
+            1632:         232 Image 1629
+            1633:  451(ivec2) ImageQuerySizeLod 1632 1631
+            1634:   48(ivec4) Load 1470(size)
+            1635:  451(ivec2) VectorShuffle 1634 1634 0 1
+            1636:  451(ivec2) IAdd 1635 1633
+            1637:   1477(ptr) AccessChain 1470(size) 173
+            1638:     47(int) CompositeExtract 1636 0
+                              Store 1637 1638
+            1639:   1477(ptr) AccessChain 1470(size) 1492
+            1640:     47(int) CompositeExtract 1636 1
+                              Store 1639 1640
+            1641:         245 Load 247(s2DArrayShadow)
+            1642:    6(float) Load 371(lod)
+            1643:     47(int) ConvertFToS 1642
+            1644:         244 Image 1641
+            1645:  458(ivec3) ImageQuerySizeLod 1644 1643
+            1646:   48(ivec4) Load 1470(size)
+            1647:  458(ivec3) VectorShuffle 1646 1646 0 1 2
+            1648:  458(ivec3) IAdd 1647 1645
+            1649:   1477(ptr) AccessChain 1470(size) 173
+            1650:     47(int) CompositeExtract 1648 0
+                              Store 1649 1650
+            1651:   1477(ptr) AccessChain 1470(size) 1492
+            1652:     47(int) CompositeExtract 1648 1
+                              Store 1651 1652
+            1653:   1477(ptr) AccessChain 1470(size) 1507
+            1654:     47(int) CompositeExtract 1648 2
+                              Store 1653 1654
+            1655:         771 Load 773(sBuffer)
+            1656:         770 Image 1655
+            1657:     47(int) ImageQuerySize 1656
+            1658:   1477(ptr) AccessChain 1470(size) 173
+            1659:     47(int) Load 1658
+            1660:     47(int) IAdd 1659 1657
+            1661:   1477(ptr) AccessChain 1470(size) 173
+                              Store 1661 1660
+            1662:         782 Load 784(s2DMS)
+            1663:         781 Image 1662
+            1664:  451(ivec2) ImageQuerySize 1663
+            1665:   48(ivec4) Load 1470(size)
+            1666:  451(ivec2) VectorShuffle 1665 1665 0 1
+            1667:  451(ivec2) IAdd 1666 1664
+            1668:   1477(ptr) AccessChain 1470(size) 173
+            1669:     47(int) CompositeExtract 1667 0
+                              Store 1668 1669
+            1670:   1477(ptr) AccessChain 1470(size) 1492
+            1671:     47(int) CompositeExtract 1667 1
+                              Store 1670 1671
+            1672:         793 Load 795(s2DMSArray)
+            1673:         792 Image 1672
+            1674:  458(ivec3) ImageQuerySize 1673
+            1675:   48(ivec4) Load 1470(size)
+            1676:  458(ivec3) VectorShuffle 1675 1675 0 1 2
+            1677:  458(ivec3) IAdd 1676 1674
+            1678:   1477(ptr) AccessChain 1470(size) 173
+            1679:     47(int) CompositeExtract 1677 0
+                              Store 1678 1679
+            1680:   1477(ptr) AccessChain 1470(size) 1492
+            1681:     47(int) CompositeExtract 1677 1
+                              Store 1680 1681
+            1682:   1477(ptr) AccessChain 1470(size) 1507
+            1683:     47(int) CompositeExtract 1677 2
+                              Store 1682 1683
+            1684:   48(ivec4) Load 1470(size)
+                              ReturnValue 1684
+                              FunctionEnd
+54(testTextureQueryLod():   52(fvec2) Function None 53
+              55:             Label
+       1688(lod):   1687(ptr) Variable Function
+                              Store 1688(lod) 1689
+            1690:         122 Load 124(s1D)
+            1691:    6(float) Load 127(c1)
+            1692:   52(fvec2) ImageQueryLod 1690 1691
+            1693:   52(fvec2) Load 1688(lod)
+            1694:   52(fvec2) FAdd 1693 1692
+                              Store 1688(lod) 1694
+            1695:         133 Load 135(s2D)
+            1696:   52(fvec2) Load 138(c2)
+            1697:   52(fvec2) ImageQueryLod 1695 1696
+            1698:   52(fvec2) Load 1688(lod)
+            1699:   52(fvec2) FAdd 1698 1697
+                              Store 1688(lod) 1699
+            1700:         144 Load 146(s3D)
+            1701:  148(fvec3) Load 150(c3)
+            1702:   52(fvec2) ImageQueryLod 1700 1701
+            1703:   52(fvec2) Load 1688(lod)
+            1704:   52(fvec2) FAdd 1703 1702
+                              Store 1688(lod) 1704
+            1705:         156 Load 158(sCube)
+            1706:  148(fvec3) Load 150(c3)
+            1707:   52(fvec2) ImageQueryLod 1705 1706
+            1708:   52(fvec2) Load 1688(lod)
+            1709:   52(fvec2) FAdd 1708 1707
+                              Store 1688(lod) 1709
+            1710:         206 Load 208(s1DArray)
+            1711:    6(float) Load 127(c1)
+            1712:   52(fvec2) ImageQueryLod 1710 1711
+            1713:   52(fvec2) Load 1688(lod)
+            1714:   52(fvec2) FAdd 1713 1712
+                              Store 1688(lod) 1714
+            1715:         215 Load 217(s2DArray)
+            1716:   52(fvec2) Load 138(c2)
+            1717:   52(fvec2) ImageQueryLod 1715 1716
+            1718:   52(fvec2) Load 1688(lod)
+            1719:   52(fvec2) FAdd 1718 1717
+                              Store 1688(lod) 1719
+            1720:         224 Load 226(sCubeArray)
+            1721:  148(fvec3) Load 150(c3)
+            1722:   52(fvec2) ImageQueryLod 1720 1721
+            1723:   52(fvec2) Load 1688(lod)
+            1724:   52(fvec2) FAdd 1723 1722
+                              Store 1688(lod) 1724
+            1725:         165 Load 167(s1DShadow)
+            1726:    6(float) Load 127(c1)
+            1727:   52(fvec2) ImageQueryLod 1725 1726
+            1728:   52(fvec2) Load 1688(lod)
+            1729:   52(fvec2) FAdd 1728 1727
+                              Store 1688(lod) 1729
+            1730:         180 Load 182(s2DShadow)
+            1731:   52(fvec2) Load 138(c2)
+            1732:   52(fvec2) ImageQueryLod 1730 1731
+            1733:   52(fvec2) Load 1688(lod)
+            1734:   52(fvec2) FAdd 1733 1732
+                              Store 1688(lod) 1734
+            1735:         278 Load 280(sCubeArrayShadow)
+            1736:  148(fvec3) Load 150(c3)
+            1737:   52(fvec2) ImageQueryLod 1735 1736
+            1738:   52(fvec2) Load 1688(lod)
+            1739:   52(fvec2) FAdd 1738 1737
+                              Store 1688(lod) 1739
+            1740:         233 Load 235(s1DArrayShadow)
+            1741:    6(float) Load 127(c1)
+            1742:   52(fvec2) ImageQueryLod 1740 1741
+            1743:   52(fvec2) Load 1688(lod)
+            1744:   52(fvec2) FAdd 1743 1742
+                              Store 1688(lod) 1744
+            1745:         245 Load 247(s2DArrayShadow)
+            1746:   52(fvec2) Load 138(c2)
+            1747:   52(fvec2) ImageQueryLod 1745 1746
+            1748:   52(fvec2) Load 1688(lod)
+            1749:   52(fvec2) FAdd 1748 1747
+                              Store 1688(lod) 1749
+            1750:         278 Load 280(sCubeArrayShadow)
+            1751:  148(fvec3) Load 150(c3)
+            1752:   52(fvec2) ImageQueryLod 1750 1751
+            1753:   52(fvec2) Load 1688(lod)
+            1754:   52(fvec2) FAdd 1753 1752
+                              Store 1688(lod) 1754
+            1755:   52(fvec2) Load 1688(lod)
+                              ReturnValue 1755
+                              FunctionEnd
+57(testTextureQueryLevels():     47(int) Function None 56
+              58:             Label
+    1758(levels):   1477(ptr) Variable Function
+                              Store 1758(levels) 1275
+            1759:         122 Load 124(s1D)
+            1760:         121 Image 1759
+            1761:     47(int) ImageQueryLevels 1760
+            1762:     47(int) Load 1758(levels)
+            1763:     47(int) IAdd 1762 1761
+                              Store 1758(levels) 1763
+            1764:         133 Load 135(s2D)
+            1765:         132 Image 1764
+            1766:     47(int) ImageQueryLevels 1765
+            1767:     47(int) Load 1758(levels)
+            1768:     47(int) IAdd 1767 1766
+                              Store 1758(levels) 1768
+            1769:         144 Load 146(s3D)
+            1770:         143 Image 1769
+            1771:     47(int) ImageQueryLevels 1770
+            1772:     47(int) Load 1758(levels)
+            1773:     47(int) IAdd 1772 1771
+                              Store 1758(levels) 1773
+            1774:         156 Load 158(sCube)
+            1775:         155 Image 1774
+            1776:     47(int) ImageQueryLevels 1775
+            1777:     47(int) Load 1758(levels)
+            1778:     47(int) IAdd 1777 1776
+                              Store 1758(levels) 1778
+            1779:         165 Load 167(s1DShadow)
+            1780:         164 Image 1779
+            1781:     47(int) ImageQueryLevels 1780
+            1782:     47(int) Load 1758(levels)
+            1783:     47(int) IAdd 1782 1781
+                              Store 1758(levels) 1783
+            1784:         180 Load 182(s2DShadow)
+            1785:         179 Image 1784
+            1786:     47(int) ImageQueryLevels 1785
+            1787:     47(int) Load 1758(levels)
+            1788:     47(int) IAdd 1787 1786
+                              Store 1758(levels) 1788
+            1789:         192 Load 194(sCubeShadow)
+            1790:         191 Image 1789
+            1791:     47(int) ImageQueryLevels 1790
+            1792:     47(int) Load 1758(levels)
+            1793:     47(int) IAdd 1792 1791
+                              Store 1758(levels) 1793
+            1794:         224 Load 226(sCubeArray)
+            1795:         223 Image 1794
+            1796:     47(int) ImageQueryLevels 1795
+            1797:     47(int) Load 1758(levels)
+            1798:     47(int) IAdd 1797 1796
+                              Store 1758(levels) 1798
+            1799:         278 Load 280(sCubeArrayShadow)
+            1800:         277 Image 1799
+            1801:     47(int) ImageQueryLevels 1800
+            1802:     47(int) Load 1758(levels)
+            1803:     47(int) IAdd 1802 1801
+                              Store 1758(levels) 1803
+            1804:         206 Load 208(s1DArray)
+            1805:         205 Image 1804
+            1806:     47(int) ImageQueryLevels 1805
+            1807:     47(int) Load 1758(levels)
+            1808:     47(int) IAdd 1807 1806
+                              Store 1758(levels) 1808
+            1809:         215 Load 217(s2DArray)
+            1810:         214 Image 1809
+            1811:     47(int) ImageQueryLevels 1810
+            1812:     47(int) Load 1758(levels)
+            1813:     47(int) IAdd 1812 1811
+                              Store 1758(levels) 1813
+            1814:         233 Load 235(s1DArrayShadow)
+            1815:         232 Image 1814
+            1816:     47(int) ImageQueryLevels 1815
+            1817:     47(int) Load 1758(levels)
+            1818:     47(int) IAdd 1817 1816
+                              Store 1758(levels) 1818
+            1819:         245 Load 247(s2DArrayShadow)
+            1820:         244 Image 1819
+            1821:     47(int) ImageQueryLevels 1820
+            1822:     47(int) Load 1758(levels)
+            1823:     47(int) IAdd 1822 1821
+                              Store 1758(levels) 1823
+            1824:     47(int) Load 1758(levels)
+                              ReturnValue 1824
+                              FunctionEnd
+59(testTextureSamples():     47(int) Function None 56
+              60:             Label
+   1827(samples):   1477(ptr) Variable Function
+                              Store 1827(samples) 1275
+            1828:         782 Load 784(s2DMS)
+            1829:         781 Image 1828
+            1830:     47(int) ImageQuerySamples 1829
+            1831:     47(int) Load 1827(samples)
+            1832:     47(int) IAdd 1831 1830
+                              Store 1827(samples) 1832
+            1833:         793 Load 795(s2DMSArray)
+            1834:         792 Image 1833
+            1835:     47(int) ImageQuerySamples 1834
+            1836:     47(int) Load 1827(samples)
+            1837:     47(int) IAdd 1836 1835
+                              Store 1827(samples) 1837
+            1838:     47(int) Load 1827(samples)
+                              ReturnValue 1838
+                              FunctionEnd
+61(testImageLoad():    7(fvec4) Function None 8
+              62:             Label
+     1841(texel):     63(ptr) Variable Function
+                              Store 1841(texel) 120
+            1845:        1842 Load 1844(i1D)
+            1846:    6(float) Load 127(c1)
+            1847:     47(int) ConvertFToS 1846
+            1848:    7(fvec4) ImageRead 1845 1847
+            1849:    7(fvec4) Load 1841(texel)
+            1850:    7(fvec4) FAdd 1849 1848
+                              Store 1841(texel) 1850
+            1854:        1851 Load 1853(i2D)
+            1855:   52(fvec2) Load 138(c2)
+            1856:  451(ivec2) ConvertFToS 1855
+            1857:    7(fvec4) ImageRead 1854 1856
+            1858:    7(fvec4) Load 1841(texel)
+            1859:    7(fvec4) FAdd 1858 1857
+                              Store 1841(texel) 1859
+            1863:        1860 Load 1862(i3D)
+            1864:  148(fvec3) Load 150(c3)
+            1865:  458(ivec3) ConvertFToS 1864
+            1866:    7(fvec4) ImageRead 1863 1865
+            1867:    7(fvec4) Load 1841(texel)
+            1868:    7(fvec4) FAdd 1867 1866
+                              Store 1841(texel) 1868
+            1872:        1869 Load 1871(i2DRect)
+            1873:   52(fvec2) Load 138(c2)
+            1874:  451(ivec2) ConvertFToS 1873
+            1875:    7(fvec4) ImageRead 1872 1874
+            1876:    7(fvec4) Load 1841(texel)
+            1877:    7(fvec4) FAdd 1876 1875
+                              Store 1841(texel) 1877
+            1881:        1878 Load 1880(iCube)
+            1882:  148(fvec3) Load 150(c3)
+            1883:  458(ivec3) ConvertFToS 1882
+            1884:    7(fvec4) ImageRead 1881 1883
+            1885:    7(fvec4) Load 1841(texel)
+            1886:    7(fvec4) FAdd 1885 1884
+                              Store 1841(texel) 1886
+            1890:        1887 Load 1889(iBuffer)
+            1891:    6(float) Load 127(c1)
+            1892:     47(int) ConvertFToS 1891
+            1893:    7(fvec4) ImageRead 1890 1892
+            1894:    7(fvec4) Load 1841(texel)
+            1895:    7(fvec4) FAdd 1894 1893
+                              Store 1841(texel) 1895
+            1899:        1896 Load 1898(i1DArray)
+            1900:   52(fvec2) Load 138(c2)
+            1901:  451(ivec2) ConvertFToS 1900
+            1902:    7(fvec4) ImageRead 1899 1901
+            1903:    7(fvec4) Load 1841(texel)
+            1904:    7(fvec4) FAdd 1903 1902
+                              Store 1841(texel) 1904
+            1908:        1905 Load 1907(i2DArray)
+            1909:  148(fvec3) Load 150(c3)
+            1910:  458(ivec3) ConvertFToS 1909
+            1911:    7(fvec4) ImageRead 1908 1910
+            1912:    7(fvec4) Load 1841(texel)
+            1913:    7(fvec4) FAdd 1912 1911
+                              Store 1841(texel) 1913
+            1917:        1914 Load 1916(iCubeArray)
+            1918:  148(fvec3) Load 150(c3)
+            1919:  458(ivec3) ConvertFToS 1918
+            1920:    7(fvec4) ImageRead 1917 1919
+            1921:    7(fvec4) Load 1841(texel)
+            1922:    7(fvec4) FAdd 1921 1920
+                              Store 1841(texel) 1922
+            1926:        1923 Load 1925(i2DMS)
+            1927:   52(fvec2) Load 138(c2)
+            1928:  451(ivec2) ConvertFToS 1927
+            1929:    7(fvec4) ImageRead 1926 1928 Sample 445
+            1930:    7(fvec4) Load 1841(texel)
+            1931:    7(fvec4) FAdd 1930 1929
+                              Store 1841(texel) 1931
+            1935:        1932 Load 1934(i2DMSArray)
+            1936:  148(fvec3) Load 150(c3)
+            1937:  458(ivec3) ConvertFToS 1936
+            1938:    7(fvec4) ImageRead 1935 1937 Sample 445
+            1939:    7(fvec4) Load 1841(texel)
+            1940:    7(fvec4) FAdd 1939 1938
+                              Store 1841(texel) 1940
+            1941:    7(fvec4) Load 1841(texel)
+                              ReturnValue 1941
+                              FunctionEnd
+66(testImageStore(vf4;):           2 Function None 64
+        65(data):     63(ptr) FunctionParameter
+              67:             Label
+            1944:        1842 Load 1844(i1D)
+            1945:    6(float) Load 127(c1)
+            1946:     47(int) ConvertFToS 1945
+            1947:    7(fvec4) Load 65(data)
+                              ImageWrite 1944 1946 1947
+            1948:        1851 Load 1853(i2D)
+            1949:   52(fvec2) Load 138(c2)
+            1950:  451(ivec2) ConvertFToS 1949
+            1951:    7(fvec4) Load 65(data)
+                              ImageWrite 1948 1950 1951
+            1952:        1860 Load 1862(i3D)
+            1953:  148(fvec3) Load 150(c3)
+            1954:  458(ivec3) ConvertFToS 1953
+            1955:    7(fvec4) Load 65(data)
+                              ImageWrite 1952 1954 1955
+            1956:        1869 Load 1871(i2DRect)
+            1957:   52(fvec2) Load 138(c2)
+            1958:  451(ivec2) ConvertFToS 1957
+            1959:    7(fvec4) Load 65(data)
+                              ImageWrite 1956 1958 1959
+            1960:        1878 Load 1880(iCube)
+            1961:  148(fvec3) Load 150(c3)
+            1962:  458(ivec3) ConvertFToS 1961
+            1963:    7(fvec4) Load 65(data)
+                              ImageWrite 1960 1962 1963
+            1964:        1887 Load 1889(iBuffer)
+            1965:    6(float) Load 127(c1)
+            1966:     47(int) ConvertFToS 1965
+            1967:    7(fvec4) Load 65(data)
+                              ImageWrite 1964 1966 1967
+            1968:        1896 Load 1898(i1DArray)
+            1969:   52(fvec2) Load 138(c2)
+            1970:  451(ivec2) ConvertFToS 1969
+            1971:    7(fvec4) Load 65(data)
+                              ImageWrite 1968 1970 1971
+            1972:        1905 Load 1907(i2DArray)
+            1973:  148(fvec3) Load 150(c3)
+            1974:  458(ivec3) ConvertFToS 1973
+            1975:    7(fvec4) Load 65(data)
+                              ImageWrite 1972 1974 1975
+            1976:        1914 Load 1916(iCubeArray)
+            1977:  148(fvec3) Load 150(c3)
+            1978:  458(ivec3) ConvertFToS 1977
+            1979:    7(fvec4) Load 65(data)
+                              ImageWrite 1976 1978 1979
+            1980:        1923 Load 1925(i2DMS)
+            1981:   52(fvec2) Load 138(c2)
+            1982:  451(ivec2) ConvertFToS 1981
+            1983:    7(fvec4) Load 65(data)
+                              ImageWrite 1980 1982 1983 Sample 445
+            1984:        1932 Load 1934(i2DMSArray)
+            1985:  148(fvec3) Load 150(c3)
+            1986:  458(ivec3) ConvertFToS 1985
+            1987:    7(fvec4) Load 65(data)
+                              ImageWrite 1984 1986 1987 Sample 445
+                              Return
+                              FunctionEnd
+68(testSparseTexture():    7(fvec4) Function None 8
+              69:             Label
+     1988(texel):     63(ptr) Variable Function
+                              Store 1988(texel) 120
+            1989:         133 Load 135(s2D)
+            1990:   52(fvec2) Load 138(c2)
+            1992:1991(ResType) ImageSparseSampleImplicitLod 1989 1990
+            1993:    7(fvec4) CompositeExtract 1992 1
+                              Store 1988(texel) 1993
+            1994:     47(int) CompositeExtract 1992 0
+            1995:         144 Load 146(s3D)
+            1996:  148(fvec3) Load 150(c3)
+            1997:1991(ResType) ImageSparseSampleImplicitLod 1995 1996
+            1998:    7(fvec4) CompositeExtract 1997 1
+                              Store 1988(texel) 1998
+            1999:     47(int) CompositeExtract 1997 0
+            2000:         156 Load 158(sCube)
+            2001:  148(fvec3) Load 150(c3)
+            2002:1991(ResType) ImageSparseSampleImplicitLod 2000 2001
+            2003:    7(fvec4) CompositeExtract 2002 1
+                              Store 1988(texel) 2003
+            2004:     47(int) CompositeExtract 2002 0
+            2005:         180 Load 182(s2DShadow)
+            2006:  148(fvec3) Load 150(c3)
+            2007:    174(ptr) AccessChain 1988(texel) 173
+            2008:    6(float) CompositeExtract 2006 2
+            2010:2009(ResType) ImageSparseSampleDrefImplicitLod 2005 2006 2008
+            2011:    6(float) CompositeExtract 2010 1
+                              Store 2007 2011
+            2012:     47(int) CompositeExtract 2010 0
+            2013:         192 Load 194(sCubeShadow)
+            2014:    7(fvec4) Load 197(c4)
+            2015:    174(ptr) AccessChain 1988(texel) 173
+            2016:    6(float) CompositeExtract 2014 3
+            2017:2009(ResType) ImageSparseSampleDrefImplicitLod 2013 2014 2016
+            2018:    6(float) CompositeExtract 2017 1
+                              Store 2015 2018
+            2019:     47(int) CompositeExtract 2017 0
+            2020:         215 Load 217(s2DArray)
+            2021:  148(fvec3) Load 150(c3)
+            2022:1991(ResType) ImageSparseSampleImplicitLod 2020 2021
+            2023:    7(fvec4) CompositeExtract 2022 1
+                              Store 1988(texel) 2023
+            2024:     47(int) CompositeExtract 2022 0
+            2025:         224 Load 226(sCubeArray)
+            2026:    7(fvec4) Load 197(c4)
+            2027:1991(ResType) ImageSparseSampleImplicitLod 2025 2026
+            2028:    7(fvec4) CompositeExtract 2027 1
+                              Store 1988(texel) 2028
+            2029:     47(int) CompositeExtract 2027 0
+            2030:         245 Load 247(s2DArrayShadow)
+            2031:    7(fvec4) Load 197(c4)
+            2032:    174(ptr) AccessChain 1988(texel) 173
+            2033:    6(float) CompositeExtract 2031 3
+            2034:2009(ResType) ImageSparseSampleDrefImplicitLod 2030 2031 2033
+            2035:    6(float) CompositeExtract 2034 1
+                              Store 2032 2035
+            2036:     47(int) CompositeExtract 2034 0
+            2037:         257 Load 259(s2DRect)
+            2038:   52(fvec2) Load 138(c2)
+            2039:1991(ResType) ImageSparseSampleImplicitLod 2037 2038
+            2040:    7(fvec4) CompositeExtract 2039 1
+                              Store 1988(texel) 2040
+            2041:     47(int) CompositeExtract 2039 0
+            2042:         266 Load 268(s2DRectShadow)
+            2043:  148(fvec3) Load 150(c3)
+            2044:    174(ptr) AccessChain 1988(texel) 173
+            2045:    6(float) CompositeExtract 2043 2
+            2046:2009(ResType) ImageSparseSampleDrefImplicitLod 2042 2043 2045
+            2047:    6(float) CompositeExtract 2046 1
+                              Store 2044 2047
+            2048:     47(int) CompositeExtract 2046 0
+            2049:         278 Load 280(sCubeArrayShadow)
+            2050:    7(fvec4) Load 197(c4)
+            2051:    6(float) Load 283(compare)
+            2052:    174(ptr) AccessChain 1988(texel) 173
+            2053:2009(ResType) ImageSparseSampleDrefImplicitLod 2049 2050 2051
+            2054:    6(float) CompositeExtract 2053 1
+                              Store 2052 2054
+            2055:     47(int) CompositeExtract 2053 0
+            2056:    7(fvec4) Load 1988(texel)
+                              ReturnValue 2056
+                              FunctionEnd
+70(testSparseTextureLod():    7(fvec4) Function None 8
+              71:             Label
+     2059(texel):     63(ptr) Variable Function
+                              Store 2059(texel) 120
+            2060:         133 Load 135(s2D)
+            2061:   52(fvec2) Load 138(c2)
+            2062:    6(float) Load 371(lod)
+            2063:1991(ResType) ImageSparseSampleExplicitLod 2060 2061 Lod 2062
+            2064:    7(fvec4) CompositeExtract 2063 1
+                              Store 2059(texel) 2064
+            2065:     47(int) CompositeExtract 2063 0
+            2066:         144 Load 146(s3D)
+            2067:  148(fvec3) Load 150(c3)
+            2068:    6(float) Load 371(lod)
+            2069:1991(ResType) ImageSparseSampleExplicitLod 2066 2067 Lod 2068
+            2070:    7(fvec4) CompositeExtract 2069 1
+                              Store 2059(texel) 2070
+            2071:     47(int) CompositeExtract 2069 0
+            2072:         156 Load 158(sCube)
+            2073:  148(fvec3) Load 150(c3)
+            2074:    6(float) Load 371(lod)
+            2075:1991(ResType) ImageSparseSampleExplicitLod 2072 2073 Lod 2074
+            2076:    7(fvec4) CompositeExtract 2075 1
+                              Store 2059(texel) 2076
+            2077:     47(int) CompositeExtract 2075 0
+            2078:         180 Load 182(s2DShadow)
+            2079:  148(fvec3) Load 150(c3)
+            2080:    6(float) Load 371(lod)
+            2081:    174(ptr) AccessChain 2059(texel) 173
+            2082:    6(float) CompositeExtract 2079 2
+            2083:2009(ResType) ImageSparseSampleDrefExplicitLod 2078 2079 2082 Lod 2080
+            2084:    6(float) CompositeExtract 2083 1
+                              Store 2081 2084
+            2085:     47(int) CompositeExtract 2083 0
+            2086:         215 Load 217(s2DArray)
+            2087:  148(fvec3) Load 150(c3)
+            2088:    6(float) Load 371(lod)
+            2089:1991(ResType) ImageSparseSampleExplicitLod 2086 2087 Lod 2088
+            2090:    7(fvec4) CompositeExtract 2089 1
+                              Store 2059(texel) 2090
+            2091:     47(int) CompositeExtract 2089 0
+            2092:         224 Load 226(sCubeArray)
+            2093:    7(fvec4) Load 197(c4)
+            2094:    6(float) Load 371(lod)
+            2095:1991(ResType) ImageSparseSampleExplicitLod 2092 2093 Lod 2094
+            2096:    7(fvec4) CompositeExtract 2095 1
+                              Store 2059(texel) 2096
+            2097:     47(int) CompositeExtract 2095 0
+            2098:    7(fvec4) Load 2059(texel)
+                              ReturnValue 2098
+                              FunctionEnd
+72(testSparseTextureOffset():    7(fvec4) Function None 8
+              73:             Label
+     2101(texel):     63(ptr) Variable Function
+                              Store 2101(texel) 120
+            2102:         133 Load 135(s2D)
+            2103:   52(fvec2) Load 138(c2)
+            2104:1991(ResType) ImageSparseSampleImplicitLod 2102 2103 ConstOffset 452
+            2105:    7(fvec4) CompositeExtract 2104 1
+                              Store 2101(texel) 2105
+            2106:     47(int) CompositeExtract 2104 0
+            2107:         144 Load 146(s3D)
+            2108:  148(fvec3) Load 150(c3)
+            2109:1991(ResType) ImageSparseSampleImplicitLod 2107 2108 ConstOffset 459
+            2110:    7(fvec4) CompositeExtract 2109 1
+                              Store 2101(texel) 2110
+            2111:     47(int) CompositeExtract 2109 0
+            2112:         257 Load 259(s2DRect)
+            2113:   52(fvec2) Load 138(c2)
+            2114:1991(ResType) ImageSparseSampleImplicitLod 2112 2113 ConstOffset 452
+            2115:    7(fvec4) CompositeExtract 2114 1
+                              Store 2101(texel) 2115
+            2116:     47(int) CompositeExtract 2114 0
+            2117:         266 Load 268(s2DRectShadow)
+            2118:  148(fvec3) Load 150(c3)
+            2119:    174(ptr) AccessChain 2101(texel) 173
+            2120:    6(float) CompositeExtract 2118 2
+            2121:2009(ResType) ImageSparseSampleDrefImplicitLod 2117 2118 2120 ConstOffset 452
+            2122:    6(float) CompositeExtract 2121 1
+                              Store 2119 2122
+            2123:     47(int) CompositeExtract 2121 0
+            2124:         180 Load 182(s2DShadow)
+            2125:  148(fvec3) Load 150(c3)
+            2126:    174(ptr) AccessChain 2101(texel) 173
+            2127:    6(float) CompositeExtract 2125 2
+            2128:2009(ResType) ImageSparseSampleDrefImplicitLod 2124 2125 2127 ConstOffset 452
+            2129:    6(float) CompositeExtract 2128 1
+                              Store 2126 2129
+            2130:     47(int) CompositeExtract 2128 0
+            2131:         215 Load 217(s2DArray)
+            2132:  148(fvec3) Load 150(c3)
+            2133:1991(ResType) ImageSparseSampleImplicitLod 2131 2132 ConstOffset 452
+            2134:    7(fvec4) CompositeExtract 2133 1
+                              Store 2101(texel) 2134
+            2135:     47(int) CompositeExtract 2133 0
+            2136:         245 Load 247(s2DArrayShadow)
+            2137:    7(fvec4) Load 197(c4)
+            2138:    174(ptr) AccessChain 2101(texel) 173
+            2139:    6(float) CompositeExtract 2137 3
+            2140:2009(ResType) ImageSparseSampleDrefImplicitLod 2136 2137 2139 ConstOffset 452
+            2141:    6(float) CompositeExtract 2140 1
+                              Store 2138 2141
+            2142:     47(int) CompositeExtract 2140 0
+            2143:    7(fvec4) Load 2101(texel)
+                              ReturnValue 2143
+                              FunctionEnd
+74(testSparseTextureLodOffset():    7(fvec4) Function None 8
+              75:             Label
+     2146(texel):     63(ptr) Variable Function
+                              Store 2146(texel) 120
+            2147:         133 Load 135(s2D)
+            2148:   52(fvec2) Load 138(c2)
+            2149:    6(float) Load 371(lod)
+            2150:1991(ResType) ImageSparseSampleExplicitLod 2147 2148 Lod ConstOffset 2149 452
+            2151:    7(fvec4) CompositeExtract 2150 1
+                              Store 2146(texel) 2151
+            2152:     47(int) CompositeExtract 2150 0
+            2153:         144 Load 146(s3D)
+            2154:  148(fvec3) Load 150(c3)
+            2155:    6(float) Load 371(lod)
+            2156:1991(ResType) ImageSparseSampleExplicitLod 2153 2154 Lod ConstOffset 2155 459
+            2157:    7(fvec4) CompositeExtract 2156 1
+                              Store 2146(texel) 2157
+            2158:     47(int) CompositeExtract 2156 0
+            2159:         180 Load 182(s2DShadow)
+            2160:  148(fvec3) Load 150(c3)
+            2161:    6(float) Load 371(lod)
+            2162:    174(ptr) AccessChain 2146(texel) 173
+            2163:    6(float) CompositeExtract 2160 2
+            2164:2009(ResType) ImageSparseSampleDrefExplicitLod 2159 2160 2163 Lod ConstOffset 2161 452
+            2165:    6(float) CompositeExtract 2164 1
+                              Store 2162 2165
+            2166:     47(int) CompositeExtract 2164 0
+            2167:         215 Load 217(s2DArray)
+            2168:  148(fvec3) Load 150(c3)
+            2169:    6(float) Load 371(lod)
+            2170:1991(ResType) ImageSparseSampleExplicitLod 2167 2168 Lod ConstOffset 2169 452
+            2171:    7(fvec4) CompositeExtract 2170 1
+                              Store 2146(texel) 2171
+            2172:     47(int) CompositeExtract 2170 0
+            2173:    7(fvec4) Load 2146(texel)
+                              ReturnValue 2173
+                              FunctionEnd
+76(testSparseTextureGrad():    7(fvec4) Function None 8
+              77:             Label
+     2176(texel):     63(ptr) Variable Function
+                              Store 2176(texel) 120
+            2177:         133 Load 135(s2D)
+            2178:   52(fvec2) Load 138(c2)
+            2179:   52(fvec2) Load 874(dPdxy2)
+            2180:   52(fvec2) Load 874(dPdxy2)
+            2181:1991(ResType) ImageSparseSampleExplicitLod 2177 2178 Grad 2179 2180
+            2182:    7(fvec4) CompositeExtract 2181 1
+                              Store 2176(texel) 2182
+            2183:     47(int) CompositeExtract 2181 0
+            2184:         144 Load 146(s3D)
+            2185:  148(fvec3) Load 150(c3)
+            2186:  148(fvec3) Load 882(dPdxy3)
+            2187:  148(fvec3) Load 882(dPdxy3)
+            2188:1991(ResType) ImageSparseSampleExplicitLod 2184 2185 Grad 2186 2187
+            2189:    7(fvec4) CompositeExtract 2188 1
+                              Store 2176(texel) 2189
+            2190:     47(int) CompositeExtract 2188 0
+            2191:         156 Load 158(sCube)
+            2192:  148(fvec3) Load 150(c3)
+            2193:  148(fvec3) Load 882(dPdxy3)
+            2194:  148(fvec3) Load 882(dPdxy3)
+            2195:1991(ResType) ImageSparseSampleExplicitLod 2191 2192 Grad 2193 2194
+            2196:    7(fvec4) CompositeExtract 2195 1
+                              Store 2176(texel) 2196
+            2197:     47(int) CompositeExtract 2195 0
+            2198:         257 Load 259(s2DRect)
+            2199:   52(fvec2) Load 138(c2)
+            2200:   52(fvec2) Load 874(dPdxy2)
+            2201:   52(fvec2) Load 874(dPdxy2)
+            2202:1991(ResType) ImageSparseSampleExplicitLod 2198 2199 Grad 2200 2201
+            2203:    7(fvec4) CompositeExtract 2202 1
+                              Store 2176(texel) 2203
+            2204:     47(int) CompositeExtract 2202 0
+            2205:         266 Load 268(s2DRectShadow)
+            2206:  148(fvec3) Load 150(c3)
+            2207:   52(fvec2) Load 874(dPdxy2)
+            2208:   52(fvec2) Load 874(dPdxy2)
+            2209:    174(ptr) AccessChain 2176(texel) 173
+            2210:    6(float) CompositeExtract 2206 2
+            2211:2009(ResType) ImageSparseSampleDrefExplicitLod 2205 2206 2210 Grad 2207 2208
+            2212:    6(float) CompositeExtract 2211 1
+                              Store 2209 2212
+            2213:     47(int) CompositeExtract 2211 0
+            2214:         180 Load 182(s2DShadow)
+            2215:  148(fvec3) Load 150(c3)
+            2216:   52(fvec2) Load 874(dPdxy2)
+            2217:   52(fvec2) Load 874(dPdxy2)
+            2218:    174(ptr) AccessChain 2176(texel) 173
+            2219:    6(float) CompositeExtract 2215 2
+            2220:2009(ResType) ImageSparseSampleDrefExplicitLod 2214 2215 2219 Grad 2216 2217
+            2221:    6(float) CompositeExtract 2220 1
+                              Store 2218 2221
+            2222:     47(int) CompositeExtract 2220 0
+            2223:         192 Load 194(sCubeShadow)
+            2224:    7(fvec4) Load 197(c4)
+            2225:  148(fvec3) Load 882(dPdxy3)
+            2226:  148(fvec3) Load 882(dPdxy3)
+            2227:    174(ptr) AccessChain 2176(texel) 173
+            2228:    6(float) CompositeExtract 2224 3
+            2229:2009(ResType) ImageSparseSampleDrefExplicitLod 2223 2224 2228 Grad 2225 2226
+            2230:    6(float) CompositeExtract 2229 1
+                              Store 2227 2230
+            2231:     47(int) CompositeExtract 2229 0
+            2232:         215 Load 217(s2DArray)
+            2233:  148(fvec3) Load 150(c3)
+            2234:   52(fvec2) Load 874(dPdxy2)
+            2235:   52(fvec2) Load 874(dPdxy2)
+            2236:1991(ResType) ImageSparseSampleExplicitLod 2232 2233 Grad 2234 2235
+            2237:    7(fvec4) CompositeExtract 2236 1
+                              Store 2176(texel) 2237
+            2238:     47(int) CompositeExtract 2236 0
+            2239:         245 Load 247(s2DArrayShadow)
+            2240:    7(fvec4) Load 197(c4)
+            2241:   52(fvec2) Load 874(dPdxy2)
+            2242:   52(fvec2) Load 874(dPdxy2)
+            2243:    174(ptr) AccessChain 2176(texel) 173
+            2244:    6(float) CompositeExtract 2240 3
+            2245:2009(ResType) ImageSparseSampleDrefExplicitLod 2239 2240 2244 Grad 2241 2242
+            2246:    6(float) CompositeExtract 2245 1
+                              Store 2243 2246
+            2247:     47(int) CompositeExtract 2245 0
+            2248:         224 Load 226(sCubeArray)
+            2249:    7(fvec4) Load 197(c4)
+            2250:  148(fvec3) Load 882(dPdxy3)
+            2251:  148(fvec3) Load 882(dPdxy3)
+            2252:1991(ResType) ImageSparseSampleExplicitLod 2248 2249 Grad 2250 2251
+            2253:    7(fvec4) CompositeExtract 2252 1
+                              Store 2176(texel) 2253
+            2254:     47(int) CompositeExtract 2252 0
+            2255:    7(fvec4) Load 2176(texel)
+                              ReturnValue 2255
+                              FunctionEnd
+78(testSparseTextureGradOffset():    7(fvec4) Function None 8
+              79:             Label
+     2258(texel):     63(ptr) Variable Function
+                              Store 2258(texel) 120
+            2259:         133 Load 135(s2D)
+            2260:   52(fvec2) Load 138(c2)
+            2261:   52(fvec2) Load 874(dPdxy2)
+            2262:   52(fvec2) Load 874(dPdxy2)
+            2263:1991(ResType) ImageSparseSampleExplicitLod 2259 2260 Grad ConstOffset 2261 2262 452
+            2264:    7(fvec4) CompositeExtract 2263 1
+                              Store 2258(texel) 2264
+            2265:     47(int) CompositeExtract 2263 0
+            2266:         144 Load 146(s3D)
+            2267:  148(fvec3) Load 150(c3)
+            2268:  148(fvec3) Load 882(dPdxy3)
+            2269:  148(fvec3) Load 882(dPdxy3)
+            2270:1991(ResType) ImageSparseSampleExplicitLod 2266 2267 Grad ConstOffset 2268 2269 459
+            2271:    7(fvec4) CompositeExtract 2270 1
+                              Store 2258(texel) 2271
+            2272:     47(int) CompositeExtract 2270 0
+            2273:         257 Load 259(s2DRect)
+            2274:   52(fvec2) Load 138(c2)
+            2275:   52(fvec2) Load 874(dPdxy2)
+            2276:   52(fvec2) Load 874(dPdxy2)
+            2277:1991(ResType) ImageSparseSampleExplicitLod 2273 2274 Grad ConstOffset 2275 2276 452
+            2278:    7(fvec4) CompositeExtract 2277 1
+                              Store 2258(texel) 2278
+            2279:     47(int) CompositeExtract 2277 0
+            2280:         266 Load 268(s2DRectShadow)
+            2281:  148(fvec3) Load 150(c3)
+            2282:   52(fvec2) Load 874(dPdxy2)
+            2283:   52(fvec2) Load 874(dPdxy2)
+            2284:    174(ptr) AccessChain 2258(texel) 173
+            2285:    6(float) CompositeExtract 2281 2
+            2286:2009(ResType) ImageSparseSampleDrefExplicitLod 2280 2281 2285 Grad ConstOffset 2282 2283 452
+            2287:    6(float) CompositeExtract 2286 1
+                              Store 2284 2287
+            2288:     47(int) CompositeExtract 2286 0
+            2289:         180 Load 182(s2DShadow)
+            2290:  148(fvec3) Load 150(c3)
+            2291:   52(fvec2) Load 874(dPdxy2)
+            2292:   52(fvec2) Load 874(dPdxy2)
+            2293:    174(ptr) AccessChain 2258(texel) 173
+            2294:    6(float) CompositeExtract 2290 2
+            2295:2009(ResType) ImageSparseSampleDrefExplicitLod 2289 2290 2294 Grad ConstOffset 2291 2292 452
+            2296:    6(float) CompositeExtract 2295 1
+                              Store 2293 2296
+            2297:     47(int) CompositeExtract 2295 0
+            2298:         215 Load 217(s2DArray)
+            2299:  148(fvec3) Load 150(c3)
+            2300:   52(fvec2) Load 874(dPdxy2)
+            2301:   52(fvec2) Load 874(dPdxy2)
+            2302:1991(ResType) ImageSparseSampleExplicitLod 2298 2299 Grad ConstOffset 2300 2301 452
+            2303:    7(fvec4) CompositeExtract 2302 1
+                              Store 2258(texel) 2303
+            2304:     47(int) CompositeExtract 2302 0
+            2305:         245 Load 247(s2DArrayShadow)
+            2306:    7(fvec4) Load 197(c4)
+            2307:   52(fvec2) Load 874(dPdxy2)
+            2308:   52(fvec2) Load 874(dPdxy2)
+            2309:    174(ptr) AccessChain 2258(texel) 173
+            2310:    6(float) CompositeExtract 2306 3
+            2311:2009(ResType) ImageSparseSampleDrefExplicitLod 2305 2306 2310 Grad ConstOffset 2307 2308 452
+            2312:    6(float) CompositeExtract 2311 1
+                              Store 2309 2312
+            2313:     47(int) CompositeExtract 2311 0
+            2314:    7(fvec4) Load 2258(texel)
+                              ReturnValue 2314
+                              FunctionEnd
+80(testSparseTexelFetch():    7(fvec4) Function None 8
+              81:             Label
+     2317(texel):     63(ptr) Variable Function
+                              Store 2317(texel) 120
+            2318:         133 Load 135(s2D)
+            2319:   52(fvec2) Load 138(c2)
+            2320:  451(ivec2) ConvertFToS 2319
+            2321:    6(float) Load 371(lod)
+            2322:     47(int) ConvertFToS 2321
+            2323:         132 Image 2318
+            2324:1991(ResType) ImageSparseFetch 2323 2320 Lod 2322
+            2325:    7(fvec4) CompositeExtract 2324 1
+                              Store 2317(texel) 2325
+            2326:     47(int) CompositeExtract 2324 0
+            2327:         144 Load 146(s3D)
+            2328:  148(fvec3) Load 150(c3)
+            2329:  458(ivec3) ConvertFToS 2328
+            2330:    6(float) Load 371(lod)
+            2331:     47(int) ConvertFToS 2330
+            2332:         143 Image 2327
+            2333:1991(ResType) ImageSparseFetch 2332 2329 Lod 2331
+            2334:    7(fvec4) CompositeExtract 2333 1
+                              Store 2317(texel) 2334
+            2335:     47(int) CompositeExtract 2333 0
+            2336:         257 Load 259(s2DRect)
+            2337:   52(fvec2) Load 138(c2)
+            2338:  451(ivec2) ConvertFToS 2337
+            2339:         256 Image 2336
+            2340:1991(ResType) ImageSparseFetch 2339 2338
+            2341:    7(fvec4) CompositeExtract 2340 1
+                              Store 2317(texel) 2341
+            2342:     47(int) CompositeExtract 2340 0
+            2343:         215 Load 217(s2DArray)
+            2344:  148(fvec3) Load 150(c3)
+            2345:  458(ivec3) ConvertFToS 2344
+            2346:    6(float) Load 371(lod)
+            2347:     47(int) ConvertFToS 2346
+            2348:         214 Image 2343
+            2349:1991(ResType) ImageSparseFetch 2348 2345 Lod 2347
+            2350:    7(fvec4) CompositeExtract 2349 1
+                              Store 2317(texel) 2350
+            2351:     47(int) CompositeExtract 2349 0
+            2352:         782 Load 784(s2DMS)
+            2353:   52(fvec2) Load 138(c2)
+            2354:  451(ivec2) ConvertFToS 2353
+            2355:         781 Image 2352
+            2356:1991(ResType) ImageSparseFetch 2355 2354 Sample 445
+            2357:    7(fvec4) CompositeExtract 2356 1
+                              Store 2317(texel) 2357
+            2358:     47(int) CompositeExtract 2356 0
+            2359:         793 Load 795(s2DMSArray)
+            2360:  148(fvec3) Load 150(c3)
+            2361:  458(ivec3) ConvertFToS 2360
+            2362:         792 Image 2359
+            2363:1991(ResType) ImageSparseFetch 2362 2361 Sample 799
+            2364:    7(fvec4) CompositeExtract 2363 1
+                              Store 2317(texel) 2364
+            2365:     47(int) CompositeExtract 2363 0
+            2366:    7(fvec4) Load 2317(texel)
+                              ReturnValue 2366
+                              FunctionEnd
+82(testSparseTexelFetchOffset():    7(fvec4) Function None 8
+              83:             Label
+     2369(texel):     63(ptr) Variable Function
+                              Store 2369(texel) 120
+            2370:         133 Load 135(s2D)
+            2371:   52(fvec2) Load 138(c2)
+            2372:  451(ivec2) ConvertFToS 2371
+            2373:    6(float) Load 371(lod)
+            2374:     47(int) ConvertFToS 2373
+            2375:         132 Image 2370
+            2376:1991(ResType) ImageSparseFetch 2375 2372 Lod ConstOffset 2374 452
+            2377:    7(fvec4) CompositeExtract 2376 1
+                              Store 2369(texel) 2377
+            2378:     47(int) CompositeExtract 2376 0
+            2379:         144 Load 146(s3D)
+            2380:  148(fvec3) Load 150(c3)
+            2381:  458(ivec3) ConvertFToS 2380
+            2382:    6(float) Load 371(lod)
+            2383:     47(int) ConvertFToS 2382
+            2384:         143 Image 2379
+            2385:1991(ResType) ImageSparseFetch 2384 2381 Lod ConstOffset 2383 459
+            2386:    7(fvec4) CompositeExtract 2385 1
+                              Store 2369(texel) 2386
+            2387:     47(int) CompositeExtract 2385 0
+            2388:         257 Load 259(s2DRect)
+            2389:   52(fvec2) Load 138(c2)
+            2390:  451(ivec2) ConvertFToS 2389
+            2391:         256 Image 2388
+            2392:1991(ResType) ImageSparseFetch 2391 2390 ConstOffset 452
+            2393:    7(fvec4) CompositeExtract 2392 1
+                              Store 2369(texel) 2393
+            2394:     47(int) CompositeExtract 2392 0
+            2395:         215 Load 217(s2DArray)
+            2396:  148(fvec3) Load 150(c3)
+            2397:  458(ivec3) ConvertFToS 2396
+            2398:    6(float) Load 371(lod)
+            2399:     47(int) ConvertFToS 2398
+            2400:         214 Image 2395
+            2401:1991(ResType) ImageSparseFetch 2400 2397 Lod ConstOffset 2399 452
+            2402:    7(fvec4) CompositeExtract 2401 1
+                              Store 2369(texel) 2402
+            2403:     47(int) CompositeExtract 2401 0
+            2404:    7(fvec4) Load 2369(texel)
+                              ReturnValue 2404
+                              FunctionEnd
+84(testSparseTextureGather():    7(fvec4) Function None 8
+              85:             Label
+     2407(texel):     63(ptr) Variable Function
+                              Store 2407(texel) 120
+            2408:         133 Load 135(s2D)
+            2409:   52(fvec2) Load 138(c2)
+            2410:1991(ResType) ImageSparseGather 2408 2409 1275
+            2411:    7(fvec4) CompositeExtract 2410 1
+                              Store 2407(texel) 2411
+            2412:     47(int) CompositeExtract 2410 0
+            2413:         215 Load 217(s2DArray)
+            2414:  148(fvec3) Load 150(c3)
+            2415:1991(ResType) ImageSparseGather 2413 2414 1275
+            2416:    7(fvec4) CompositeExtract 2415 1
+                              Store 2407(texel) 2416
+            2417:     47(int) CompositeExtract 2415 0
+            2418:         156 Load 158(sCube)
+            2419:  148(fvec3) Load 150(c3)
+            2420:1991(ResType) ImageSparseGather 2418 2419 1275
+            2421:    7(fvec4) CompositeExtract 2420 1
+                              Store 2407(texel) 2421
+            2422:     47(int) CompositeExtract 2420 0
+            2423:         224 Load 226(sCubeArray)
+            2424:    7(fvec4) Load 197(c4)
+            2425:1991(ResType) ImageSparseGather 2423 2424 1275
+            2426:    7(fvec4) CompositeExtract 2425 1
+                              Store 2407(texel) 2426
+            2427:     47(int) CompositeExtract 2425 0
+            2428:         257 Load 259(s2DRect)
+            2429:   52(fvec2) Load 138(c2)
+            2430:1991(ResType) ImageSparseGather 2428 2429 1275
+            2431:    7(fvec4) CompositeExtract 2430 1
+                              Store 2407(texel) 2431
+            2432:     47(int) CompositeExtract 2430 0
+            2433:         180 Load 182(s2DShadow)
+            2434:   52(fvec2) Load 138(c2)
+            2435:    6(float) Load 283(compare)
+            2436:1991(ResType) ImageSparseDrefGather 2433 2434 2435
+            2437:    7(fvec4) CompositeExtract 2436 1
+                              Store 2407(texel) 2437
+            2438:     47(int) CompositeExtract 2436 0
+            2439:         245 Load 247(s2DArrayShadow)
+            2440:  148(fvec3) Load 150(c3)
+            2441:    6(float) Load 283(compare)
+            2442:1991(ResType) ImageSparseDrefGather 2439 2440 2441
+            2443:    7(fvec4) CompositeExtract 2442 1
+                              Store 2407(texel) 2443
+            2444:     47(int) CompositeExtract 2442 0
+            2445:         192 Load 194(sCubeShadow)
+            2446:  148(fvec3) Load 150(c3)
+            2447:    6(float) Load 283(compare)
+            2448:1991(ResType) ImageSparseDrefGather 2445 2446 2447
+            2449:    7(fvec4) CompositeExtract 2448 1
+                              Store 2407(texel) 2449
+            2450:     47(int) CompositeExtract 2448 0
+            2451:         278 Load 280(sCubeArrayShadow)
+            2452:    7(fvec4) Load 197(c4)
+            2453:    6(float) Load 283(compare)
+            2454:1991(ResType) ImageSparseDrefGather 2451 2452 2453
+            2455:    7(fvec4) CompositeExtract 2454 1
+                              Store 2407(texel) 2455
+            2456:     47(int) CompositeExtract 2454 0
+            2457:         266 Load 268(s2DRectShadow)
+            2458:   52(fvec2) Load 138(c2)
+            2459:    6(float) Load 283(compare)
+            2460:1991(ResType) ImageSparseDrefGather 2457 2458 2459
+            2461:    7(fvec4) CompositeExtract 2460 1
+                              Store 2407(texel) 2461
+            2462:     47(int) CompositeExtract 2460 0
+            2463:    7(fvec4) Load 2407(texel)
+                              ReturnValue 2463
+                              FunctionEnd
+86(testSparseTextureGatherOffset():    7(fvec4) Function None 8
+              87:             Label
+     2466(texel):     63(ptr) Variable Function
+                              Store 2466(texel) 120
+            2467:         133 Load 135(s2D)
+            2468:   52(fvec2) Load 138(c2)
+            2469:1991(ResType) ImageSparseGather 2467 2468 1275 ConstOffset 452
+            2470:    7(fvec4) CompositeExtract 2469 1
+                              Store 2466(texel) 2470
+            2471:     47(int) CompositeExtract 2469 0
+            2472:         215 Load 217(s2DArray)
+            2473:  148(fvec3) Load 150(c3)
+            2474:1991(ResType) ImageSparseGather 2472 2473 1275 ConstOffset 452
+            2475:    7(fvec4) CompositeExtract 2474 1
+                              Store 2466(texel) 2475
+            2476:     47(int) CompositeExtract 2474 0
+            2477:         257 Load 259(s2DRect)
+            2478:   52(fvec2) Load 138(c2)
+            2479:1991(ResType) ImageSparseGather 2477 2478 1275 ConstOffset 452
+            2480:    7(fvec4) CompositeExtract 2479 1
+                              Store 2466(texel) 2480
+            2481:     47(int) CompositeExtract 2479 0
+            2482:         180 Load 182(s2DShadow)
+            2483:   52(fvec2) Load 138(c2)
+            2484:    6(float) Load 283(compare)
+            2485:1991(ResType) ImageSparseDrefGather 2482 2483 2484 ConstOffset 452
+            2486:    7(fvec4) CompositeExtract 2485 1
+                              Store 2466(texel) 2486
+            2487:     47(int) CompositeExtract 2485 0
+            2488:         245 Load 247(s2DArrayShadow)
+            2489:  148(fvec3) Load 150(c3)
+            2490:    6(float) Load 283(compare)
+            2491:1991(ResType) ImageSparseDrefGather 2488 2489 2490 ConstOffset 452
+            2492:    7(fvec4) CompositeExtract 2491 1
+                              Store 2466(texel) 2492
+            2493:     47(int) CompositeExtract 2491 0
+            2494:         266 Load 268(s2DRectShadow)
+            2495:   52(fvec2) Load 138(c2)
+            2496:    6(float) Load 283(compare)
+            2497:1991(ResType) ImageSparseDrefGather 2494 2495 2496 ConstOffset 452
+            2498:    7(fvec4) CompositeExtract 2497 1
+                              Store 2466(texel) 2498
+            2499:     47(int) CompositeExtract 2497 0
+            2500:    7(fvec4) Load 2466(texel)
+                              ReturnValue 2500
+                              FunctionEnd
+88(testSparseTextureGatherOffsets():    7(fvec4) Function None 8
+              89:             Label
+     2503(texel):     63(ptr) Variable Function
+                              Store 2503(texel) 120
+            2504:         133 Load 135(s2D)
+            2505:   52(fvec2) Load 138(c2)
+            2516:1991(ResType) ImageSparseGather 2504 2505 1275 ConstOffsets 2515
+            2517:    7(fvec4) CompositeExtract 2516 1
+                              Store 2503(texel) 2517
+            2518:     47(int) CompositeExtract 2516 0
+            2519:         215 Load 217(s2DArray)
+            2520:  148(fvec3) Load 150(c3)
+            2521:1991(ResType) ImageSparseGather 2519 2520 1275 ConstOffsets 2515
+            2522:    7(fvec4) CompositeExtract 2521 1
+                              Store 2503(texel) 2522
+            2523:     47(int) CompositeExtract 2521 0
+            2524:         257 Load 259(s2DRect)
+            2525:   52(fvec2) Load 138(c2)
+            2526:1991(ResType) ImageSparseGather 2524 2525 1275 ConstOffsets 2515
+            2527:    7(fvec4) CompositeExtract 2526 1
+                              Store 2503(texel) 2527
+            2528:     47(int) CompositeExtract 2526 0
+            2529:         180 Load 182(s2DShadow)
+            2530:   52(fvec2) Load 138(c2)
+            2531:    6(float) Load 283(compare)
+            2532:1991(ResType) ImageSparseDrefGather 2529 2530 2531 ConstOffsets 2515
+            2533:    7(fvec4) CompositeExtract 2532 1
+                              Store 2503(texel) 2533
+            2534:     47(int) CompositeExtract 2532 0
+            2535:         245 Load 247(s2DArrayShadow)
+            2536:  148(fvec3) Load 150(c3)
+            2537:    6(float) Load 283(compare)
+            2538:1991(ResType) ImageSparseDrefGather 2535 2536 2537 ConstOffsets 2515
+            2539:    7(fvec4) CompositeExtract 2538 1
+                              Store 2503(texel) 2539
+            2540:     47(int) CompositeExtract 2538 0
+            2541:         266 Load 268(s2DRectShadow)
+            2542:   52(fvec2) Load 138(c2)
+            2543:    6(float) Load 283(compare)
+            2544:1991(ResType) ImageSparseDrefGather 2541 2542 2543 ConstOffsets 2515
+            2545:    7(fvec4) CompositeExtract 2544 1
+                              Store 2503(texel) 2545
+            2546:     47(int) CompositeExtract 2544 0
+            2547:    7(fvec4) Load 2503(texel)
+                              ReturnValue 2547
+                              FunctionEnd
+90(testSparseTextureGatherLod():    7(fvec4) Function None 8
+              91:             Label
+     2550(texel):     63(ptr) Variable Function
+                              Store 2550(texel) 120
+            2551:         133 Load 135(s2D)
+            2552:   52(fvec2) Load 138(c2)
+            2553:    6(float) Load 371(lod)
+            2554:1991(ResType) ImageSparseGather 2551 2552 1275 Lod 2553
+            2555:    7(fvec4) CompositeExtract 2554 1
+                              Store 2550(texel) 2555
+            2556:     47(int) CompositeExtract 2554 0
+            2557:         215 Load 217(s2DArray)
+            2558:  148(fvec3) Load 150(c3)
+            2559:    6(float) Load 371(lod)
+            2560:1991(ResType) ImageSparseGather 2557 2558 1275 Lod 2559
+            2561:    7(fvec4) CompositeExtract 2560 1
+                              Store 2550(texel) 2561
+            2562:     47(int) CompositeExtract 2560 0
+            2563:         156 Load 158(sCube)
+            2564:  148(fvec3) Load 150(c3)
+            2565:    6(float) Load 371(lod)
+            2566:1991(ResType) ImageSparseGather 2563 2564 1275 Lod 2565
+            2567:    7(fvec4) CompositeExtract 2566 1
+                              Store 2550(texel) 2567
+            2568:     47(int) CompositeExtract 2566 0
+            2569:         224 Load 226(sCubeArray)
+            2570:    7(fvec4) Load 197(c4)
+            2571:    6(float) Load 371(lod)
+            2572:1991(ResType) ImageSparseGather 2569 2570 1275 Lod 2571
+            2573:    7(fvec4) CompositeExtract 2572 1
+                              Store 2550(texel) 2573
+            2574:     47(int) CompositeExtract 2572 0
+            2575:    7(fvec4) Load 2550(texel)
+                              ReturnValue 2575
+                              FunctionEnd
+92(testSparseTextureGatherLodOffset():    7(fvec4) Function None 8
+              93:             Label
+     2578(texel):     63(ptr) Variable Function
+                              Store 2578(texel) 120
+            2579:         133 Load 135(s2D)
+            2580:   52(fvec2) Load 138(c2)
+            2581:    6(float) Load 371(lod)
+            2582:1991(ResType) ImageSparseGather 2579 2580 1275 Lod ConstOffset 2581 452
+            2583:    7(fvec4) CompositeExtract 2582 1
+                              Store 2578(texel) 2583
+            2584:     47(int) CompositeExtract 2582 0
+            2585:         215 Load 217(s2DArray)
+            2586:  148(fvec3) Load 150(c3)
+            2587:    6(float) Load 371(lod)
+            2588:1991(ResType) ImageSparseGather 2585 2586 1275 Lod ConstOffset 2587 452
+            2589:    7(fvec4) CompositeExtract 2588 1
+                              Store 2578(texel) 2589
+            2590:     47(int) CompositeExtract 2588 0
+            2591:    7(fvec4) Load 2578(texel)
+                              ReturnValue 2591
+                              FunctionEnd
+94(testSparseTextureGatherLodOffsets():    7(fvec4) Function None 8
+              95:             Label
+     2594(texel):     63(ptr) Variable Function
+                              Store 2594(texel) 120
+            2595:         133 Load 135(s2D)
+            2596:   52(fvec2) Load 138(c2)
+            2597:    6(float) Load 371(lod)
+            2598:1991(ResType) ImageSparseGather 2595 2596 1275 Lod ConstOffsets 2597 1374
+            2599:    7(fvec4) CompositeExtract 2598 1
+                              Store 2594(texel) 2599
+            2600:     47(int) CompositeExtract 2598 0
+            2601:         215 Load 217(s2DArray)
+            2602:  148(fvec3) Load 150(c3)
+            2603:    6(float) Load 371(lod)
+            2604:1991(ResType) ImageSparseGather 2601 2602 1275 Lod ConstOffsets 2603 1374
+            2605:    7(fvec4) CompositeExtract 2604 1
+                              Store 2594(texel) 2605
+            2606:     47(int) CompositeExtract 2604 0
+            2607:    7(fvec4) Load 2594(texel)
+                              ReturnValue 2607
+                              FunctionEnd
+96(testSparseImageLoad():    7(fvec4) Function None 8
+              97:             Label
+     2610(texel):     63(ptr) Variable Function
+                              Store 2610(texel) 120
+            2611:        1851 Load 1853(i2D)
+            2612:   52(fvec2) Load 138(c2)
+            2613:  451(ivec2) ConvertFToS 2612
+            2614:1991(ResType) ImageSparseRead 2611 2613
+            2615:    7(fvec4) CompositeExtract 2614 1
+                              Store 2610(texel) 2615
+            2616:     47(int) CompositeExtract 2614 0
+            2617:        1860 Load 1862(i3D)
+            2618:  148(fvec3) Load 150(c3)
+            2619:  458(ivec3) ConvertFToS 2618
+            2620:1991(ResType) ImageSparseRead 2617 2619
+            2621:    7(fvec4) CompositeExtract 2620 1
+                              Store 2610(texel) 2621
+            2622:     47(int) CompositeExtract 2620 0
+            2623:        1869 Load 1871(i2DRect)
+            2624:   52(fvec2) Load 138(c2)
+            2625:  451(ivec2) ConvertFToS 2624
+            2626:1991(ResType) ImageSparseRead 2623 2625
+            2627:    7(fvec4) CompositeExtract 2626 1
+                              Store 2610(texel) 2627
+            2628:     47(int) CompositeExtract 2626 0
+            2629:        1878 Load 1880(iCube)
+            2630:  148(fvec3) Load 150(c3)
+            2631:  458(ivec3) ConvertFToS 2630
+            2632:1991(ResType) ImageSparseRead 2629 2631
+            2633:    7(fvec4) CompositeExtract 2632 1
+                              Store 2610(texel) 2633
+            2634:     47(int) CompositeExtract 2632 0
+            2635:        1905 Load 1907(i2DArray)
+            2636:  148(fvec3) Load 150(c3)
+            2637:  458(ivec3) ConvertFToS 2636
+            2638:1991(ResType) ImageSparseRead 2635 2637
+            2639:    7(fvec4) CompositeExtract 2638 1
+                              Store 2610(texel) 2639
+            2640:     47(int) CompositeExtract 2638 0
+            2641:        1914 Load 1916(iCubeArray)
+            2642:  148(fvec3) Load 150(c3)
+            2643:  458(ivec3) ConvertFToS 2642
+            2644:1991(ResType) ImageSparseRead 2641 2643
+            2645:    7(fvec4) CompositeExtract 2644 1
+                              Store 2610(texel) 2645
+            2646:     47(int) CompositeExtract 2644 0
+            2647:        1923 Load 1925(i2DMS)
+            2648:   52(fvec2) Load 138(c2)
+            2649:  451(ivec2) ConvertFToS 2648
+            2650:1991(ResType) ImageSparseRead 2647 2649 Sample 445
+            2651:    7(fvec4) CompositeExtract 2650 1
+                              Store 2610(texel) 2651
+            2652:     47(int) CompositeExtract 2650 0
+            2653:        1932 Load 1934(i2DMSArray)
+            2654:  148(fvec3) Load 150(c3)
+            2655:  458(ivec3) ConvertFToS 2654
+            2656:1991(ResType) ImageSparseRead 2653 2655 Sample 799
+            2657:    7(fvec4) CompositeExtract 2656 1
+                              Store 2610(texel) 2657
+            2658:     47(int) CompositeExtract 2656 0
+            2659:    7(fvec4) Load 2610(texel)
+                              ReturnValue 2659
+                              FunctionEnd
+98(testSparseTextureClamp():    7(fvec4) Function None 8
+              99:             Label
+     2662(texel):     63(ptr) Variable Function
+                              Store 2662(texel) 120
+            2663:         133 Load 135(s2D)
+            2664:   52(fvec2) Load 138(c2)
+            2666:    6(float) Load 2665(lodClamp)
+            2667:1991(ResType) ImageSparseSampleImplicitLod 2663 2664 MinLod 2666
+            2668:    7(fvec4) CompositeExtract 2667 1
+                              Store 2662(texel) 2668
+            2669:     47(int) CompositeExtract 2667 0
+            2670:         144 Load 146(s3D)
+            2671:  148(fvec3) Load 150(c3)
+            2672:    6(float) Load 2665(lodClamp)
+            2673:1991(ResType) ImageSparseSampleImplicitLod 2670 2671 MinLod 2672
+            2674:    7(fvec4) CompositeExtract 2673 1
+                              Store 2662(texel) 2674
+            2675:     47(int) CompositeExtract 2673 0
+            2676:         156 Load 158(sCube)
+            2677:  148(fvec3) Load 150(c3)
+            2678:    6(float) Load 2665(lodClamp)
+            2679:1991(ResType) ImageSparseSampleImplicitLod 2676 2677 MinLod 2678
+            2680:    7(fvec4) CompositeExtract 2679 1
+                              Store 2662(texel) 2680
+            2681:     47(int) CompositeExtract 2679 0
+            2682:         180 Load 182(s2DShadow)
+            2683:  148(fvec3) Load 150(c3)
+            2684:    6(float) Load 2665(lodClamp)
+            2685:    174(ptr) AccessChain 2662(texel) 173
+            2686:    6(float) CompositeExtract 2683 2
+            2687:2009(ResType) ImageSparseSampleDrefImplicitLod 2682 2683 2686 MinLod 2684
+            2688:    6(float) CompositeExtract 2687 1
+                              Store 2685 2688
+            2689:     47(int) CompositeExtract 2687 0
+            2690:         192 Load 194(sCubeShadow)
+            2691:    7(fvec4) Load 197(c4)
+            2692:    6(float) Load 2665(lodClamp)
+            2693:    174(ptr) AccessChain 2662(texel) 173
+            2694:    6(float) CompositeExtract 2691 3
+            2695:2009(ResType) ImageSparseSampleDrefImplicitLod 2690 2691 2694 MinLod 2692
+            2696:    6(float) CompositeExtract 2695 1
+                              Store 2693 2696
+            2697:     47(int) CompositeExtract 2695 0
+            2698:         215 Load 217(s2DArray)
+            2699:  148(fvec3) Load 150(c3)
+            2700:    6(float) Load 2665(lodClamp)
+            2701:1991(ResType) ImageSparseSampleImplicitLod 2698 2699 MinLod 2700
+            2702:    7(fvec4) CompositeExtract 2701 1
+                              Store 2662(texel) 2702
+            2703:     47(int) CompositeExtract 2701 0
+            2704:         224 Load 226(sCubeArray)
+            2705:    7(fvec4) Load 197(c4)
+            2706:    6(float) Load 2665(lodClamp)
+            2707:1991(ResType) ImageSparseSampleImplicitLod 2704 2705 MinLod 2706
+            2708:    7(fvec4) CompositeExtract 2707 1
+                              Store 2662(texel) 2708
+            2709:     47(int) CompositeExtract 2707 0
+            2710:         245 Load 247(s2DArrayShadow)
+            2711:    7(fvec4) Load 197(c4)
+            2712:    6(float) Load 2665(lodClamp)
+            2713:    174(ptr) AccessChain 2662(texel) 173
+            2714:    6(float) CompositeExtract 2711 3
+            2715:2009(ResType) ImageSparseSampleDrefImplicitLod 2710 2711 2714 MinLod 2712
+            2716:    6(float) CompositeExtract 2715 1
+                              Store 2713 2716
+            2717:     47(int) CompositeExtract 2715 0
+            2718:         278 Load 280(sCubeArrayShadow)
+            2719:    7(fvec4) Load 197(c4)
+            2720:    6(float) Load 283(compare)
+            2721:    6(float) Load 2665(lodClamp)
+            2722:    174(ptr) AccessChain 2662(texel) 173
+            2723:2009(ResType) ImageSparseSampleDrefImplicitLod 2718 2719 2720 MinLod 2721
+            2724:    6(float) CompositeExtract 2723 1
+                              Store 2722 2724
+            2725:     47(int) CompositeExtract 2723 0
+            2726:    7(fvec4) Load 2662(texel)
+                              ReturnValue 2726
+                              FunctionEnd
+100(testTextureClamp():    7(fvec4) Function None 8
+             101:             Label
+     2729(texel):     63(ptr) Variable Function
+                              Store 2729(texel) 120
+            2730:         122 Load 124(s1D)
+            2731:    6(float) Load 127(c1)
+            2732:    6(float) Load 2665(lodClamp)
+            2733:    7(fvec4) ImageSampleImplicitLod 2730 2731 MinLod 2732
+            2734:    7(fvec4) Load 2729(texel)
+            2735:    7(fvec4) FAdd 2734 2733
+                              Store 2729(texel) 2735
+            2736:         133 Load 135(s2D)
+            2737:   52(fvec2) Load 138(c2)
+            2738:    6(float) Load 2665(lodClamp)
+            2739:    7(fvec4) ImageSampleImplicitLod 2736 2737 MinLod 2738
+            2740:    7(fvec4) Load 2729(texel)
+            2741:    7(fvec4) FAdd 2740 2739
+                              Store 2729(texel) 2741
+            2742:         144 Load 146(s3D)
+            2743:  148(fvec3) Load 150(c3)
+            2744:    6(float) Load 2665(lodClamp)
+            2745:    7(fvec4) ImageSampleImplicitLod 2742 2743 MinLod 2744
+            2746:    7(fvec4) Load 2729(texel)
+            2747:    7(fvec4) FAdd 2746 2745
+                              Store 2729(texel) 2747
+            2748:         156 Load 158(sCube)
+            2749:  148(fvec3) Load 150(c3)
+            2750:    6(float) Load 2665(lodClamp)
+            2751:    7(fvec4) ImageSampleImplicitLod 2748 2749 MinLod 2750
+            2752:    7(fvec4) Load 2729(texel)
+            2753:    7(fvec4) FAdd 2752 2751
+                              Store 2729(texel) 2753
+            2754:         165 Load 167(s1DShadow)
+            2755:  148(fvec3) Load 150(c3)
+            2756:    6(float) Load 2665(lodClamp)
+            2757:    6(float) CompositeExtract 2755 2
+            2758:    6(float) ImageSampleDrefImplicitLod 2754 2755 2757 MinLod 2756
+            2759:    174(ptr) AccessChain 2729(texel) 173
+            2760:    6(float) Load 2759
+            2761:    6(float) FAdd 2760 2758
+            2762:    174(ptr) AccessChain 2729(texel) 173
+                              Store 2762 2761
+            2763:         180 Load 182(s2DShadow)
+            2764:  148(fvec3) Load 150(c3)
+            2765:    6(float) Load 2665(lodClamp)
+            2766:    6(float) CompositeExtract 2764 2
+            2767:    6(float) ImageSampleDrefImplicitLod 2763 2764 2766 MinLod 2765
+            2768:    174(ptr) AccessChain 2729(texel) 173
+            2769:    6(float) Load 2768
+            2770:    6(float) FAdd 2769 2767
+            2771:    174(ptr) AccessChain 2729(texel) 173
+                              Store 2771 2770
+            2772:         192 Load 194(sCubeShadow)
+            2773:    7(fvec4) Load 197(c4)
+            2774:    6(float) Load 2665(lodClamp)
+            2775:    6(float) CompositeExtract 2773 3
+            2776:    6(float) ImageSampleDrefImplicitLod 2772 2773 2775 MinLod 2774
+            2777:    174(ptr) AccessChain 2729(texel) 173
+            2778:    6(float) Load 2777
+            2779:    6(float) FAdd 2778 2776
+            2780:    174(ptr) AccessChain 2729(texel) 173
+                              Store 2780 2779
+            2781:         206 Load 208(s1DArray)
+            2782:   52(fvec2) Load 138(c2)
+            2783:    6(float) Load 2665(lodClamp)
+            2784:    7(fvec4) ImageSampleImplicitLod 2781 2782 MinLod 2783
+            2785:    7(fvec4) Load 2729(texel)
+            2786:    7(fvec4) FAdd 2785 2784
+                              Store 2729(texel) 2786
+            2787:         215 Load 217(s2DArray)
+            2788:  148(fvec3) Load 150(c3)
+            2789:    6(float) Load 2665(lodClamp)
+            2790:    7(fvec4) ImageSampleImplicitLod 2787 2788 MinLod 2789
+            2791:    7(fvec4) Load 2729(texel)
+            2792:    7(fvec4) FAdd 2791 2790
+                              Store 2729(texel) 2792
+            2793:         224 Load 226(sCubeArray)
+            2794:    7(fvec4) Load 197(c4)
+            2795:    6(float) Load 2665(lodClamp)
+            2796:    7(fvec4) ImageSampleImplicitLod 2793 2794 MinLod 2795
+            2797:    7(fvec4) Load 2729(texel)
+            2798:    7(fvec4) FAdd 2797 2796
+                              Store 2729(texel) 2798
+            2799:         233 Load 235(s1DArrayShadow)
+            2800:  148(fvec3) Load 150(c3)
+            2801:    6(float) Load 2665(lodClamp)
+            2802:    6(float) CompositeExtract 2800 2
+            2803:    6(float) ImageSampleDrefImplicitLod 2799 2800 2802 MinLod 2801
+            2804:    174(ptr) AccessChain 2729(texel) 173
+            2805:    6(float) Load 2804
+            2806:    6(float) FAdd 2805 2803
+            2807:    174(ptr) AccessChain 2729(texel) 173
+                              Store 2807 2806
+            2808:         245 Load 247(s2DArrayShadow)
+            2809:    7(fvec4) Load 197(c4)
+            2810:    6(float) Load 2665(lodClamp)
+            2811:    6(float) CompositeExtract 2809 3
+            2812:    6(float) ImageSampleDrefImplicitLod 2808 2809 2811 MinLod 2810
+            2813:    174(ptr) AccessChain 2729(texel) 173
+            2814:    6(float) Load 2813
+            2815:    6(float) FAdd 2814 2812
+            2816:    174(ptr) AccessChain 2729(texel) 173
+                              Store 2816 2815
+            2817:         278 Load 280(sCubeArrayShadow)
+            2818:    7(fvec4) Load 197(c4)
+            2819:    6(float) Load 283(compare)
+            2820:    6(float) Load 2665(lodClamp)
+            2821:    6(float) ImageSampleDrefImplicitLod 2817 2818 2819 MinLod 2820
+            2822:    174(ptr) AccessChain 2729(texel) 173
+            2823:    6(float) Load 2822
+            2824:    6(float) FAdd 2823 2821
+            2825:    174(ptr) AccessChain 2729(texel) 173
+                              Store 2825 2824
+            2826:    7(fvec4) Load 2729(texel)
+                              ReturnValue 2826
+                              FunctionEnd
+102(testSparseTextureOffsetClamp():    7(fvec4) Function None 8
+             103:             Label
+     2829(texel):     63(ptr) Variable Function
+                              Store 2829(texel) 120
+            2830:         133 Load 135(s2D)
+            2831:   52(fvec2) Load 138(c2)
+            2832:    6(float) Load 2665(lodClamp)
+            2833:1991(ResType) ImageSparseSampleImplicitLod 2830 2831 ConstOffset MinLod 452 2832
+            2834:    7(fvec4) CompositeExtract 2833 1
+                              Store 2829(texel) 2834
+            2835:     47(int) CompositeExtract 2833 0
+            2836:         144 Load 146(s3D)
+            2837:  148(fvec3) Load 150(c3)
+            2838:    6(float) Load 2665(lodClamp)
+            2839:1991(ResType) ImageSparseSampleImplicitLod 2836 2837 ConstOffset MinLod 459 2838
+            2840:    7(fvec4) CompositeExtract 2839 1
+                              Store 2829(texel) 2840
+            2841:     47(int) CompositeExtract 2839 0
+            2842:         180 Load 182(s2DShadow)
+            2843:  148(fvec3) Load 150(c3)
+            2844:    6(float) Load 2665(lodClamp)
+            2845:    174(ptr) AccessChain 2829(texel) 173
+            2846:    6(float) CompositeExtract 2843 2
+            2847:2009(ResType) ImageSparseSampleDrefImplicitLod 2842 2843 2846 ConstOffset MinLod 452 2844
+            2848:    6(float) CompositeExtract 2847 1
+                              Store 2845 2848
+            2849:     47(int) CompositeExtract 2847 0
+            2850:         215 Load 217(s2DArray)
+            2851:  148(fvec3) Load 150(c3)
+            2852:    6(float) Load 2665(lodClamp)
+            2853:1991(ResType) ImageSparseSampleImplicitLod 2850 2851 ConstOffset MinLod 452 2852
+            2854:    7(fvec4) CompositeExtract 2853 1
+                              Store 2829(texel) 2854
+            2855:     47(int) CompositeExtract 2853 0
+            2856:         245 Load 247(s2DArrayShadow)
+            2857:    7(fvec4) Load 197(c4)
+            2858:    6(float) Load 2665(lodClamp)
+            2859:    174(ptr) AccessChain 2829(texel) 173
+            2860:    6(float) CompositeExtract 2857 3
+            2861:2009(ResType) ImageSparseSampleDrefImplicitLod 2856 2857 2860 ConstOffset MinLod 452 2858
+            2862:    6(float) CompositeExtract 2861 1
+                              Store 2859 2862
+            2863:     47(int) CompositeExtract 2861 0
+            2864:    7(fvec4) Load 2829(texel)
+                              ReturnValue 2864
+                              FunctionEnd
+104(testTextureOffsetClamp():    7(fvec4) Function None 8
+             105:             Label
+     2867(texel):     63(ptr) Variable Function
+                              Store 2867(texel) 120
+            2868:         122 Load 124(s1D)
+            2869:    6(float) Load 127(c1)
+            2870:    6(float) Load 2665(lodClamp)
+            2871:    7(fvec4) ImageSampleImplicitLod 2868 2869 ConstOffset MinLod 445 2870
+            2872:    7(fvec4) Load 2867(texel)
+            2873:    7(fvec4) FAdd 2872 2871
+                              Store 2867(texel) 2873
+            2874:         133 Load 135(s2D)
+            2875:   52(fvec2) Load 138(c2)
+            2876:    6(float) Load 2665(lodClamp)
+            2877:    7(fvec4) ImageSampleImplicitLod 2874 2875 ConstOffset MinLod 452 2876
+            2878:    7(fvec4) Load 2867(texel)
+            2879:    7(fvec4) FAdd 2878 2877
+                              Store 2867(texel) 2879
+            2880:         144 Load 146(s3D)
+            2881:  148(fvec3) Load 150(c3)
+            2882:    6(float) Load 2665(lodClamp)
+            2883:    7(fvec4) ImageSampleImplicitLod 2880 2881 ConstOffset MinLod 459 2882
+            2884:    7(fvec4) Load 2867(texel)
+            2885:    7(fvec4) FAdd 2884 2883
+                              Store 2867(texel) 2885
+            2886:         165 Load 167(s1DShadow)
+            2887:  148(fvec3) Load 150(c3)
+            2888:    6(float) Load 2665(lodClamp)
+            2889:    6(float) CompositeExtract 2887 2
+            2890:    6(float) ImageSampleDrefImplicitLod 2886 2887 2889 ConstOffset MinLod 445 2888
+            2891:    174(ptr) AccessChain 2867(texel) 173
+            2892:    6(float) Load 2891
+            2893:    6(float) FAdd 2892 2890
+            2894:    174(ptr) AccessChain 2867(texel) 173
+                              Store 2894 2893
+            2895:         180 Load 182(s2DShadow)
+            2896:  148(fvec3) Load 150(c3)
+            2897:    6(float) Load 2665(lodClamp)
+            2898:    6(float) CompositeExtract 2896 2
+            2899:    6(float) ImageSampleDrefImplicitLod 2895 2896 2898 ConstOffset MinLod 452 2897
+            2900:    174(ptr) AccessChain 2867(texel) 173
+            2901:    6(float) Load 2900
+            2902:    6(float) FAdd 2901 2899
+            2903:    174(ptr) AccessChain 2867(texel) 173
+                              Store 2903 2902
+            2904:         206 Load 208(s1DArray)
+            2905:   52(fvec2) Load 138(c2)
+            2906:    6(float) Load 2665(lodClamp)
+            2907:    7(fvec4) ImageSampleImplicitLod 2904 2905 ConstOffset MinLod 445 2906
+            2908:    7(fvec4) Load 2867(texel)
+            2909:    7(fvec4) FAdd 2908 2907
+                              Store 2867(texel) 2909
+            2910:         215 Load 217(s2DArray)
+            2911:  148(fvec3) Load 150(c3)
+            2912:    6(float) Load 2665(lodClamp)
+            2913:    7(fvec4) ImageSampleImplicitLod 2910 2911 ConstOffset MinLod 452 2912
+            2914:    7(fvec4) Load 2867(texel)
+            2915:    7(fvec4) FAdd 2914 2913
+                              Store 2867(texel) 2915
+            2916:         233 Load 235(s1DArrayShadow)
+            2917:  148(fvec3) Load 150(c3)
+            2918:    6(float) Load 2665(lodClamp)
+            2919:    6(float) CompositeExtract 2917 2
+            2920:    6(float) ImageSampleDrefImplicitLod 2916 2917 2919 ConstOffset MinLod 445 2918
+            2921:    174(ptr) AccessChain 2867(texel) 173
+            2922:    6(float) Load 2921
+            2923:    6(float) FAdd 2922 2920
+            2924:    174(ptr) AccessChain 2867(texel) 173
+                              Store 2924 2923
+            2925:         245 Load 247(s2DArrayShadow)
+            2926:    7(fvec4) Load 197(c4)
+            2927:    6(float) Load 2665(lodClamp)
+            2928:    6(float) CompositeExtract 2926 3
+            2929:    6(float) ImageSampleDrefImplicitLod 2925 2926 2928 ConstOffset MinLod 452 2927
+            2930:    174(ptr) AccessChain 2867(texel) 173
+            2931:    6(float) Load 2930
+            2932:    6(float) FAdd 2931 2929
+            2933:    174(ptr) AccessChain 2867(texel) 173
+                              Store 2933 2932
+            2934:    7(fvec4) Load 2867(texel)
+                              ReturnValue 2934
+                              FunctionEnd
+106(testSparseTextureGradClamp():    7(fvec4) Function None 8
+             107:             Label
+     2937(texel):     63(ptr) Variable Function
+                              Store 2937(texel) 120
+            2938:         133 Load 135(s2D)
+            2939:   52(fvec2) Load 138(c2)
+            2940:   52(fvec2) Load 874(dPdxy2)
+            2941:   52(fvec2) Load 874(dPdxy2)
+            2942:    6(float) Load 2665(lodClamp)
+            2943:1991(ResType) ImageSparseSampleExplicitLod 2938 2939 Grad MinLod 2940 2941 2942
+            2944:    7(fvec4) CompositeExtract 2943 1
+                              Store 2937(texel) 2944
+            2945:     47(int) CompositeExtract 2943 0
+            2946:         144 Load 146(s3D)
+            2947:  148(fvec3) Load 150(c3)
+            2948:  148(fvec3) Load 882(dPdxy3)
+            2949:  148(fvec3) Load 882(dPdxy3)
+            2950:    6(float) Load 2665(lodClamp)
+            2951:1991(ResType) ImageSparseSampleExplicitLod 2946 2947 Grad MinLod 2948 2949 2950
+            2952:    7(fvec4) CompositeExtract 2951 1
+                              Store 2937(texel) 2952
+            2953:     47(int) CompositeExtract 2951 0
+            2954:         156 Load 158(sCube)
+            2955:  148(fvec3) Load 150(c3)
+            2956:  148(fvec3) Load 882(dPdxy3)
+            2957:  148(fvec3) Load 882(dPdxy3)
+            2958:    6(float) Load 2665(lodClamp)
+            2959:1991(ResType) ImageSparseSampleExplicitLod 2954 2955 Grad MinLod 2956 2957 2958
+            2960:    7(fvec4) CompositeExtract 2959 1
+                              Store 2937(texel) 2960
+            2961:     47(int) CompositeExtract 2959 0
+            2962:         180 Load 182(s2DShadow)
+            2963:  148(fvec3) Load 150(c3)
+            2964:   52(fvec2) Load 874(dPdxy2)
+            2965:   52(fvec2) Load 874(dPdxy2)
+            2966:    6(float) Load 2665(lodClamp)
+            2967:    174(ptr) AccessChain 2937(texel) 173
+            2968:    6(float) CompositeExtract 2963 2
+            2969:2009(ResType) ImageSparseSampleDrefExplicitLod 2962 2963 2968 Grad MinLod 2964 2965 2966
+            2970:    6(float) CompositeExtract 2969 1
+                              Store 2967 2970
+            2971:     47(int) CompositeExtract 2969 0
+            2972:         192 Load 194(sCubeShadow)
+            2973:    7(fvec4) Load 197(c4)
+            2974:  148(fvec3) Load 882(dPdxy3)
+            2975:  148(fvec3) Load 882(dPdxy3)
+            2976:    6(float) Load 2665(lodClamp)
+            2977:    174(ptr) AccessChain 2937(texel) 173
+            2978:    6(float) CompositeExtract 2973 3
+            2979:2009(ResType) ImageSparseSampleDrefExplicitLod 2972 2973 2978 Grad MinLod 2974 2975 2976
+            2980:    6(float) CompositeExtract 2979 1
+                              Store 2977 2980
+            2981:     47(int) CompositeExtract 2979 0
+            2982:         215 Load 217(s2DArray)
+            2983:  148(fvec3) Load 150(c3)
+            2984:   52(fvec2) Load 874(dPdxy2)
+            2985:   52(fvec2) Load 874(dPdxy2)
+            2986:    6(float) Load 2665(lodClamp)
+            2987:1991(ResType) ImageSparseSampleExplicitLod 2982 2983 Grad MinLod 2984 2985 2986
+            2988:    7(fvec4) CompositeExtract 2987 1
+                              Store 2937(texel) 2988
+            2989:     47(int) CompositeExtract 2987 0
+            2990:         245 Load 247(s2DArrayShadow)
+            2991:    7(fvec4) Load 197(c4)
+            2992:   52(fvec2) Load 874(dPdxy2)
+            2993:   52(fvec2) Load 874(dPdxy2)
+            2994:    6(float) Load 2665(lodClamp)
+            2995:    174(ptr) AccessChain 2937(texel) 173
+            2996:    6(float) CompositeExtract 2991 3
+            2997:2009(ResType) ImageSparseSampleDrefExplicitLod 2990 2991 2996 Grad MinLod 2992 2993 2994
+            2998:    6(float) CompositeExtract 2997 1
+                              Store 2995 2998
+            2999:     47(int) CompositeExtract 2997 0
+            3000:         224 Load 226(sCubeArray)
+            3001:    7(fvec4) Load 197(c4)
+            3002:  148(fvec3) Load 882(dPdxy3)
+            3003:  148(fvec3) Load 882(dPdxy3)
+            3004:    6(float) Load 2665(lodClamp)
+            3005:1991(ResType) ImageSparseSampleExplicitLod 3000 3001 Grad MinLod 3002 3003 3004
+            3006:    7(fvec4) CompositeExtract 3005 1
+                              Store 2937(texel) 3006
+            3007:     47(int) CompositeExtract 3005 0
+            3008:    7(fvec4) Load 2937(texel)
+                              ReturnValue 3008
+                              FunctionEnd
+108(testTextureGradClamp():    7(fvec4) Function None 8
+             109:             Label
+     3011(texel):     63(ptr) Variable Function
+                              Store 3011(texel) 120
+            3012:         122 Load 124(s1D)
+            3013:    6(float) Load 127(c1)
+            3014:    6(float) Load 866(dPdxy1)
+            3015:    6(float) Load 866(dPdxy1)
+            3016:    6(float) Load 2665(lodClamp)
+            3017:    7(fvec4) ImageSampleExplicitLod 3012 3013 Grad MinLod 3014 3015 3016
+            3018:    7(fvec4) Load 3011(texel)
+            3019:    7(fvec4) FAdd 3018 3017
+                              Store 3011(texel) 3019
+            3020:         133 Load 135(s2D)
+            3021:   52(fvec2) Load 138(c2)
+            3022:   52(fvec2) Load 874(dPdxy2)
+            3023:   52(fvec2) Load 874(dPdxy2)
+            3024:    6(float) Load 2665(lodClamp)
+            3025:    7(fvec4) ImageSampleExplicitLod 3020 3021 Grad MinLod 3022 3023 3024
+            3026:    7(fvec4) Load 3011(texel)
+            3027:    7(fvec4) FAdd 3026 3025
+                              Store 3011(texel) 3027
+            3028:         144 Load 146(s3D)
+            3029:  148(fvec3) Load 150(c3)
+            3030:  148(fvec3) Load 882(dPdxy3)
+            3031:  148(fvec3) Load 882(dPdxy3)
+            3032:    6(float) Load 2665(lodClamp)
+            3033:    7(fvec4) ImageSampleExplicitLod 3028 3029 Grad MinLod 3030 3031 3032
+            3034:    7(fvec4) Load 3011(texel)
+            3035:    7(fvec4) FAdd 3034 3033
+                              Store 3011(texel) 3035
+            3036:         156 Load 158(sCube)
+            3037:  148(fvec3) Load 150(c3)
+            3038:  148(fvec3) Load 882(dPdxy3)
+            3039:  148(fvec3) Load 882(dPdxy3)
+            3040:    6(float) Load 2665(lodClamp)
+            3041:    7(fvec4) ImageSampleExplicitLod 3036 3037 Grad MinLod 3038 3039 3040
+            3042:    7(fvec4) Load 3011(texel)
+            3043:    7(fvec4) FAdd 3042 3041
+                              Store 3011(texel) 3043
+            3044:         165 Load 167(s1DShadow)
+            3045:  148(fvec3) Load 150(c3)
+            3046:    6(float) Load 866(dPdxy1)
+            3047:    6(float) Load 866(dPdxy1)
+            3048:    6(float) Load 2665(lodClamp)
+            3049:    6(float) CompositeExtract 3045 2
+            3050:    6(float) ImageSampleDrefExplicitLod 3044 3045 3049 Grad MinLod 3046 3047 3048
+            3051:    174(ptr) AccessChain 3011(texel) 173
+            3052:    6(float) Load 3051
+            3053:    6(float) FAdd 3052 3050
+            3054:    174(ptr) AccessChain 3011(texel) 173
+                              Store 3054 3053
+            3055:         180 Load 182(s2DShadow)
+            3056:  148(fvec3) Load 150(c3)
+            3057:   52(fvec2) Load 874(dPdxy2)
+            3058:   52(fvec2) Load 874(dPdxy2)
+            3059:    6(float) Load 2665(lodClamp)
+            3060:    6(float) CompositeExtract 3056 2
+            3061:    6(float) ImageSampleDrefExplicitLod 3055 3056 3060 Grad MinLod 3057 3058 3059
+            3062:    174(ptr) AccessChain 3011(texel) 173
+            3063:    6(float) Load 3062
+            3064:    6(float) FAdd 3063 3061
+            3065:    174(ptr) AccessChain 3011(texel) 173
+                              Store 3065 3064
+            3066:         192 Load 194(sCubeShadow)
+            3067:    7(fvec4) Load 197(c4)
+            3068:  148(fvec3) Load 882(dPdxy3)
+            3069:  148(fvec3) Load 882(dPdxy3)
+            3070:    6(float) Load 2665(lodClamp)
+            3071:    6(float) CompositeExtract 3067 3
+            3072:    6(float) ImageSampleDrefExplicitLod 3066 3067 3071 Grad MinLod 3068 3069 3070
+            3073:    174(ptr) AccessChain 3011(texel) 173
+            3074:    6(float) Load 3073
+            3075:    6(float) FAdd 3074 3072
+            3076:    174(ptr) AccessChain 3011(texel) 173
+                              Store 3076 3075
+            3077:         206 Load 208(s1DArray)
+            3078:   52(fvec2) Load 138(c2)
+            3079:    6(float) Load 866(dPdxy1)
+            3080:    6(float) Load 866(dPdxy1)
+            3081:    6(float) Load 2665(lodClamp)
+            3082:    7(fvec4) ImageSampleExplicitLod 3077 3078 Grad MinLod 3079 3080 3081
+            3083:    7(fvec4) Load 3011(texel)
+            3084:    7(fvec4) FAdd 3083 3082
+                              Store 3011(texel) 3084
+            3085:         215 Load 217(s2DArray)
+            3086:  148(fvec3) Load 150(c3)
+            3087:   52(fvec2) Load 874(dPdxy2)
+            3088:   52(fvec2) Load 874(dPdxy2)
+            3089:    6(float) Load 2665(lodClamp)
+            3090:    7(fvec4) ImageSampleExplicitLod 3085 3086 Grad MinLod 3087 3088 3089
+            3091:    7(fvec4) Load 3011(texel)
+            3092:    7(fvec4) FAdd 3091 3090
+                              Store 3011(texel) 3092
+            3093:         233 Load 235(s1DArrayShadow)
+            3094:  148(fvec3) Load 150(c3)
+            3095:    6(float) Load 866(dPdxy1)
+            3096:    6(float) Load 866(dPdxy1)
+            3097:    6(float) Load 2665(lodClamp)
+            3098:    6(float) CompositeExtract 3094 2
+            3099:    6(float) ImageSampleDrefExplicitLod 3093 3094 3098 Grad MinLod 3095 3096 3097
+            3100:    174(ptr) AccessChain 3011(texel) 173
+            3101:    6(float) Load 3100
+            3102:    6(float) FAdd 3101 3099
+            3103:    174(ptr) AccessChain 3011(texel) 173
+                              Store 3103 3102
+            3104:         245 Load 247(s2DArrayShadow)
+            3105:    7(fvec4) Load 197(c4)
+            3106:   52(fvec2) Load 874(dPdxy2)
+            3107:   52(fvec2) Load 874(dPdxy2)
+            3108:    6(float) Load 2665(lodClamp)
+            3109:    6(float) CompositeExtract 3105 3
+            3110:    6(float) ImageSampleDrefExplicitLod 3104 3105 3109 Grad MinLod 3106 3107 3108
+            3111:    174(ptr) AccessChain 3011(texel) 173
+            3112:    6(float) Load 3111
+            3113:    6(float) FAdd 3112 3110
+            3114:    174(ptr) AccessChain 3011(texel) 173
+                              Store 3114 3113
+            3115:         224 Load 226(sCubeArray)
+            3116:    7(fvec4) Load 197(c4)
+            3117:  148(fvec3) Load 882(dPdxy3)
+            3118:  148(fvec3) Load 882(dPdxy3)
+            3119:    6(float) Load 2665(lodClamp)
+            3120:    7(fvec4) ImageSampleExplicitLod 3115 3116 Grad MinLod 3117 3118 3119
+            3121:    7(fvec4) Load 3011(texel)
+            3122:    7(fvec4) FAdd 3121 3120
+                              Store 3011(texel) 3122
+            3123:    7(fvec4) Load 3011(texel)
+                              ReturnValue 3123
+                              FunctionEnd
+110(testSparseTextureGradOffsetClamp():    7(fvec4) Function None 8
+             111:             Label
+     3126(texel):     63(ptr) Variable Function
+                              Store 3126(texel) 120
+            3127:         133 Load 135(s2D)
+            3128:   52(fvec2) Load 138(c2)
+            3129:   52(fvec2) Load 874(dPdxy2)
+            3130:   52(fvec2) Load 874(dPdxy2)
+            3131:    6(float) Load 2665(lodClamp)
+            3132:1991(ResType) ImageSparseSampleExplicitLod 3127 3128 Grad ConstOffset MinLod 3129 3130 452 3131
+            3133:    7(fvec4) CompositeExtract 3132 1
+                              Store 3126(texel) 3133
+            3134:     47(int) CompositeExtract 3132 0
+            3135:         144 Load 146(s3D)
+            3136:  148(fvec3) Load 150(c3)
+            3137:  148(fvec3) Load 882(dPdxy3)
+            3138:  148(fvec3) Load 882(dPdxy3)
+            3139:    6(float) Load 2665(lodClamp)
+            3140:1991(ResType) ImageSparseSampleExplicitLod 3135 3136 Grad ConstOffset MinLod 3137 3138 459 3139
+            3141:    7(fvec4) CompositeExtract 3140 1
+                              Store 3126(texel) 3141
+            3142:     47(int) CompositeExtract 3140 0
+            3143:         180 Load 182(s2DShadow)
+            3144:  148(fvec3) Load 150(c3)
+            3145:   52(fvec2) Load 874(dPdxy2)
+            3146:   52(fvec2) Load 874(dPdxy2)
+            3147:    6(float) Load 2665(lodClamp)
+            3148:    174(ptr) AccessChain 3126(texel) 173
+            3149:    6(float) CompositeExtract 3144 2
+            3150:2009(ResType) ImageSparseSampleDrefExplicitLod 3143 3144 3149 Grad ConstOffset MinLod 3145 3146 452 3147
+            3151:    6(float) CompositeExtract 3150 1
+                              Store 3148 3151
+            3152:     47(int) CompositeExtract 3150 0
+            3153:         215 Load 217(s2DArray)
+            3154:  148(fvec3) Load 150(c3)
+            3155:   52(fvec2) Load 874(dPdxy2)
+            3156:   52(fvec2) Load 874(dPdxy2)
+            3157:    6(float) Load 2665(lodClamp)
+            3158:1991(ResType) ImageSparseSampleExplicitLod 3153 3154 Grad ConstOffset MinLod 3155 3156 452 3157
+            3159:    7(fvec4) CompositeExtract 3158 1
+                              Store 3126(texel) 3159
+            3160:     47(int) CompositeExtract 3158 0
+            3161:         245 Load 247(s2DArrayShadow)
+            3162:    7(fvec4) Load 197(c4)
+            3163:   52(fvec2) Load 874(dPdxy2)
+            3164:   52(fvec2) Load 874(dPdxy2)
+            3165:    6(float) Load 2665(lodClamp)
+            3166:    174(ptr) AccessChain 3126(texel) 173
+            3167:    6(float) CompositeExtract 3162 3
+            3168:2009(ResType) ImageSparseSampleDrefExplicitLod 3161 3162 3167 Grad ConstOffset MinLod 3163 3164 452 3165
+            3169:    6(float) CompositeExtract 3168 1
+                              Store 3166 3169
+            3170:     47(int) CompositeExtract 3168 0
+            3171:    7(fvec4) Load 3126(texel)
+                              ReturnValue 3171
+                              FunctionEnd
+112(testTextureGradOffsetClamp():    7(fvec4) Function None 8
+             113:             Label
+     3174(texel):     63(ptr) Variable Function
+                              Store 3174(texel) 120
+            3175:         122 Load 124(s1D)
+            3176:    6(float) Load 127(c1)
+            3177:    6(float) Load 866(dPdxy1)
+            3178:    6(float) Load 866(dPdxy1)
+            3179:    6(float) Load 2665(lodClamp)
+            3180:    7(fvec4) ImageSampleExplicitLod 3175 3176 Grad ConstOffset MinLod 3177 3178 445 3179
+            3181:    7(fvec4) Load 3174(texel)
+            3182:    7(fvec4) FAdd 3181 3180
+                              Store 3174(texel) 3182
+            3183:         133 Load 135(s2D)
+            3184:   52(fvec2) Load 138(c2)
+            3185:   52(fvec2) Load 874(dPdxy2)
+            3186:   52(fvec2) Load 874(dPdxy2)
+            3187:    6(float) Load 2665(lodClamp)
+            3188:    7(fvec4) ImageSampleExplicitLod 3183 3184 Grad ConstOffset MinLod 3185 3186 452 3187
+            3189:    7(fvec4) Load 3174(texel)
+            3190:    7(fvec4) FAdd 3189 3188
+                              Store 3174(texel) 3190
+            3191:         144 Load 146(s3D)
+            3192:  148(fvec3) Load 150(c3)
+            3193:  148(fvec3) Load 882(dPdxy3)
+            3194:  148(fvec3) Load 882(dPdxy3)
+            3195:    6(float) Load 2665(lodClamp)
+            3196:    7(fvec4) ImageSampleExplicitLod 3191 3192 Grad ConstOffset MinLod 3193 3194 459 3195
+            3197:    7(fvec4) Load 3174(texel)
+            3198:    7(fvec4) FAdd 3197 3196
+                              Store 3174(texel) 3198
+            3199:         165 Load 167(s1DShadow)
+            3200:  148(fvec3) Load 150(c3)
+            3201:    6(float) Load 866(dPdxy1)
+            3202:    6(float) Load 866(dPdxy1)
+            3203:    6(float) Load 2665(lodClamp)
+            3204:    6(float) CompositeExtract 3200 2
+            3205:    6(float) ImageSampleDrefExplicitLod 3199 3200 3204 Grad ConstOffset MinLod 3201 3202 445 3203
+            3206:    174(ptr) AccessChain 3174(texel) 173
+            3207:    6(float) Load 3206
+            3208:    6(float) FAdd 3207 3205
+            3209:    174(ptr) AccessChain 3174(texel) 173
+                              Store 3209 3208
+            3210:         180 Load 182(s2DShadow)
+            3211:  148(fvec3) Load 150(c3)
+            3212:   52(fvec2) Load 874(dPdxy2)
+            3213:   52(fvec2) Load 874(dPdxy2)
+            3214:    6(float) Load 2665(lodClamp)
+            3215:    6(float) CompositeExtract 3211 2
+            3216:    6(float) ImageSampleDrefExplicitLod 3210 3211 3215 Grad ConstOffset MinLod 3212 3213 452 3214
+            3217:    174(ptr) AccessChain 3174(texel) 173
+            3218:    6(float) Load 3217
+            3219:    6(float) FAdd 3218 3216
+            3220:    174(ptr) AccessChain 3174(texel) 173
+                              Store 3220 3219
+            3221:         206 Load 208(s1DArray)
+            3222:   52(fvec2) Load 138(c2)
+            3223:    6(float) Load 866(dPdxy1)
+            3224:    6(float) Load 866(dPdxy1)
+            3225:    6(float) Load 2665(lodClamp)
+            3226:    7(fvec4) ImageSampleExplicitLod 3221 3222 Grad ConstOffset MinLod 3223 3224 445 3225
+            3227:    7(fvec4) Load 3174(texel)
+            3228:    7(fvec4) FAdd 3227 3226
+                              Store 3174(texel) 3228
+            3229:         215 Load 217(s2DArray)
+            3230:  148(fvec3) Load 150(c3)
+            3231:   52(fvec2) Load 874(dPdxy2)
+            3232:   52(fvec2) Load 874(dPdxy2)
+            3233:    6(float) Load 2665(lodClamp)
+            3234:    7(fvec4) ImageSampleExplicitLod 3229 3230 Grad ConstOffset MinLod 3231 3232 452 3233
+            3235:    7(fvec4) Load 3174(texel)
+            3236:    7(fvec4) FAdd 3235 3234
+                              Store 3174(texel) 3236
+            3237:         233 Load 235(s1DArrayShadow)
+            3238:  148(fvec3) Load 150(c3)
+            3239:    6(float) Load 866(dPdxy1)
+            3240:    6(float) Load 866(dPdxy1)
+            3241:    6(float) Load 2665(lodClamp)
+            3242:    6(float) CompositeExtract 3238 2
+            3243:    6(float) ImageSampleDrefExplicitLod 3237 3238 3242 Grad ConstOffset MinLod 3239 3240 445 3241
+            3244:    174(ptr) AccessChain 3174(texel) 173
+            3245:    6(float) Load 3244
+            3246:    6(float) FAdd 3245 3243
+            3247:    174(ptr) AccessChain 3174(texel) 173
+                              Store 3247 3246
+            3248:         245 Load 247(s2DArrayShadow)
+            3249:    7(fvec4) Load 197(c4)
+            3250:   52(fvec2) Load 874(dPdxy2)
+            3251:   52(fvec2) Load 874(dPdxy2)
+            3252:    6(float) Load 2665(lodClamp)
+            3253:    6(float) CompositeExtract 3249 3
+            3254:    6(float) ImageSampleDrefExplicitLod 3248 3249 3253 Grad ConstOffset MinLod 3250 3251 452 3252
+            3255:    174(ptr) AccessChain 3174(texel) 173
+            3256:    6(float) Load 3255
+            3257:    6(float) FAdd 3256 3254
+            3258:    174(ptr) AccessChain 3174(texel) 173
+                              Store 3258 3257
+            3259:    7(fvec4) Load 3174(texel)
+                              ReturnValue 3259
+                              FunctionEnd
+114(testCombinedTextureSampler():    7(fvec4) Function None 8
+             115:             Label
+     3262(texel):     63(ptr) Variable Function
+                              Store 3262(texel) 120
+            3265:         121 Load 3264(t1D)
+            3269:        3266 Load 3268(s)
+            3270:         122 SampledImage 3265 3269
+            3271:    6(float) Load 127(c1)
+            3272:    7(fvec4) ImageSampleImplicitLod 3270 3271
+            3273:    7(fvec4) Load 3262(texel)
+            3274:    7(fvec4) FAdd 3273 3272
+                              Store 3262(texel) 3274
+            3277:         132 Load 3276(t2D)
+            3278:        3266 Load 3268(s)
+            3279:         133 SampledImage 3277 3278
+            3280:   52(fvec2) Load 138(c2)
+            3281:    7(fvec4) ImageSampleImplicitLod 3279 3280
+            3282:    7(fvec4) Load 3262(texel)
+            3283:    7(fvec4) FAdd 3282 3281
+                              Store 3262(texel) 3283
+            3286:         143 Load 3285(t3D)
+            3287:        3266 Load 3268(s)
+            3288:         144 SampledImage 3286 3287
+            3289:  148(fvec3) Load 150(c3)
+            3290:    7(fvec4) ImageSampleImplicitLod 3288 3289
+            3291:    7(fvec4) Load 3262(texel)
+            3292:    7(fvec4) FAdd 3291 3290
+                              Store 3262(texel) 3292
+            3295:         155 Load 3294(tCube)
+            3296:        3266 Load 3268(s)
+            3297:         156 SampledImage 3295 3296
+            3298:  148(fvec3) Load 150(c3)
+            3299:    7(fvec4) ImageSampleImplicitLod 3297 3298
+            3300:    7(fvec4) Load 3262(texel)
+            3301:    7(fvec4) FAdd 3300 3299
+                              Store 3262(texel) 3301
+            3302:         121 Load 3264(t1D)
+            3304:        3266 Load 3303(sShadow)
+            3305:         165 SampledImage 3302 3304
+            3306:  148(fvec3) Load 150(c3)
+            3307:    6(float) CompositeExtract 3306 2
+            3308:    6(float) ImageSampleDrefImplicitLod 3305 3306 3307
+            3309:    174(ptr) AccessChain 3262(texel) 173
+            3310:    6(float) Load 3309
+            3311:    6(float) FAdd 3310 3308
+            3312:    174(ptr) AccessChain 3262(texel) 173
+                              Store 3312 3311
+            3313:         132 Load 3276(t2D)
+            3314:        3266 Load 3303(sShadow)
+            3315:         180 SampledImage 3313 3314
+            3316:  148(fvec3) Load 150(c3)
+            3317:    6(float) CompositeExtract 3316 2
+            3318:    6(float) ImageSampleDrefImplicitLod 3315 3316 3317
+            3319:    174(ptr) AccessChain 3262(texel) 173
+            3320:    6(float) Load 3319
+            3321:    6(float) FAdd 3320 3318
+            3322:    174(ptr) AccessChain 3262(texel) 173
+                              Store 3322 3321
+            3323:         155 Load 3294(tCube)
+            3324:        3266 Load 3303(sShadow)
+            3325:         192 SampledImage 3323 3324
+            3326:    7(fvec4) Load 197(c4)
+            3327:    6(float) CompositeExtract 3326 3
+            3328:    6(float) ImageSampleDrefImplicitLod 3325 3326 3327
+            3329:    174(ptr) AccessChain 3262(texel) 173
+            3330:    6(float) Load 3329
+            3331:    6(float) FAdd 3330 3328
+            3332:    174(ptr) AccessChain 3262(texel) 173
+                              Store 3332 3331
+            3335:         205 Load 3334(t1DArray)
+            3336:        3266 Load 3268(s)
+            3337:         206 SampledImage 3335 3336
+            3338:   52(fvec2) Load 138(c2)
+            3339:    7(fvec4) ImageSampleImplicitLod 3337 3338
+            3340:    7(fvec4) Load 3262(texel)
+            3341:    7(fvec4) FAdd 3340 3339
+                              Store 3262(texel) 3341
+            3344:         214 Load 3343(t2DArray)
+            3345:        3266 Load 3268(s)
+            3346:         215 SampledImage 3344 3345
+            3347:  148(fvec3) Load 150(c3)
+            3348:    7(fvec4) ImageSampleImplicitLod 3346 3347
+            3349:    7(fvec4) Load 3262(texel)
+            3350:    7(fvec4) FAdd 3349 3348
+                              Store 3262(texel) 3350
+            3353:         223 Load 3352(tCubeArray)
+            3354:        3266 Load 3268(s)
+            3355:         224 SampledImage 3353 3354
+            3356:    7(fvec4) Load 197(c4)
+            3357:    7(fvec4) ImageSampleImplicitLod 3355 3356
+            3358:    7(fvec4) Load 3262(texel)
+            3359:    7(fvec4) FAdd 3358 3357
+                              Store 3262(texel) 3359
+            3360:         205 Load 3334(t1DArray)
+            3361:        3266 Load 3303(sShadow)
+            3362:         233 SampledImage 3360 3361
+            3363:  148(fvec3) Load 150(c3)
+            3364:    6(float) CompositeExtract 3363 2
+            3365:    6(float) ImageSampleDrefImplicitLod 3362 3363 3364
+            3366:    174(ptr) AccessChain 3262(texel) 173
+            3367:    6(float) Load 3366
+            3368:    6(float) FAdd 3367 3365
+            3369:    174(ptr) AccessChain 3262(texel) 173
+                              Store 3369 3368
+            3370:         214 Load 3343(t2DArray)
+            3371:        3266 Load 3303(sShadow)
+            3372:         245 SampledImage 3370 3371
+            3373:    7(fvec4) Load 197(c4)
+            3374:    6(float) CompositeExtract 3373 3
+            3375:    6(float) ImageSampleDrefImplicitLod 3372 3373 3374
+            3376:    174(ptr) AccessChain 3262(texel) 173
+            3377:    6(float) Load 3376
+            3378:    6(float) FAdd 3377 3375
+            3379:    174(ptr) AccessChain 3262(texel) 173
+                              Store 3379 3378
+            3382:         256 Load 3381(t2DRect)
+            3383:        3266 Load 3268(s)
+            3384:         257 SampledImage 3382 3383
+            3385:   52(fvec2) Load 138(c2)
+            3386:    7(fvec4) ImageSampleImplicitLod 3384 3385
+            3387:    7(fvec4) Load 3262(texel)
+            3388:    7(fvec4) FAdd 3387 3386
+                              Store 3262(texel) 3388
+            3389:         256 Load 3381(t2DRect)
+            3390:        3266 Load 3303(sShadow)
+            3391:         266 SampledImage 3389 3390
+            3392:  148(fvec3) Load 150(c3)
+            3393:    6(float) CompositeExtract 3392 2
+            3394:    6(float) ImageSampleDrefImplicitLod 3391 3392 3393
+            3395:    174(ptr) AccessChain 3262(texel) 173
+            3396:    6(float) Load 3395
+            3397:    6(float) FAdd 3396 3394
+            3398:    174(ptr) AccessChain 3262(texel) 173
+                              Store 3398 3397
+            3399:         223 Load 3352(tCubeArray)
+            3400:        3266 Load 3303(sShadow)
+            3401:         278 SampledImage 3399 3400
+            3402:    7(fvec4) Load 197(c4)
+            3403:    6(float) Load 283(compare)
+            3404:    6(float) ImageSampleDrefImplicitLod 3401 3402 3403
+            3405:    174(ptr) AccessChain 3262(texel) 173
+            3406:    6(float) Load 3405
+            3407:    6(float) FAdd 3406 3404
+            3408:    174(ptr) AccessChain 3262(texel) 173
+                              Store 3408 3407
+            3409:    7(fvec4) Load 3262(texel)
+                              ReturnValue 3409
+                              FunctionEnd
+116(testSubpassLoad():    7(fvec4) Function None 8
+             117:             Label
+            3415:        3412 Load 3414(subpass)
+            3417:    7(fvec4) ImageRead 3415 3416
+            3421:        3418 Load 3420(subpassMS)
+            3422:    7(fvec4) ImageRead 3421 3416 Sample 799
+            3423:    7(fvec4) FAdd 3417 3422
+                              ReturnValue 3423
+                              FunctionEnd
diff --git a/Test/baseResults/spv.intcoopmat.comp.out b/Test/baseResults/spv.intcoopmat.comp.out
index bc50255..24289a9 100644
--- a/Test/baseResults/spv.intcoopmat.comp.out
+++ b/Test/baseResults/spv.intcoopmat.comp.out
@@ -1,10 +1,11 @@
 spv.intcoopmat.comp
 // Module Version 10000
 // Generated by (magic number): 8000b
-// Id's are bound by 262
+// Id's are bound by 286
 
                               Capability Shader
                               Capability Float16
+                              Capability Int16
                               Capability Int8
                               Capability StorageBuffer8BitAccess
                               Capability VulkanMemoryModelKHR
@@ -72,18 +73,22 @@
                               Name 207  "tempArg"
                               Name 212  "shmatrix"
                               Name 217  "ms"
-                              Name 225  "miC"
-                              Name 226  "muC"
-                              Name 231  "iarr"
-                              Name 236  "iarr2"
-                              Name 241  "uarr"
-                              Name 246  "uarr2"
-                              Name 251  "S"
-                              MemberName 251(S) 0  "a"
-                              MemberName 251(S) 1  "b"
-                              MemberName 251(S) 2  "c"
-                              Name 256  "SC"
-                              Name 261  "scm"
+                              Name 224  "i16"
+                              Name 230  "u16"
+                              Name 233  "tempArg"
+                              Name 239  "tempArg"
+                              Name 249  "miC"
+                              Name 250  "muC"
+                              Name 255  "iarr"
+                              Name 260  "iarr2"
+                              Name 265  "uarr"
+                              Name 270  "uarr2"
+                              Name 275  "S"
+                              MemberName 275(S) 0  "a"
+                              MemberName 275(S) 1  "b"
+                              MemberName 275(S) 2  "c"
+                              Name 280  "SC"
+                              Name 285  "scm"
                               Decorate 83 ArrayStride 4
                               Decorate 84 ArrayStride 4
                               MemberDecorate 85(Block) 0 Offset 0
@@ -105,8 +110,8 @@
                               Decorate 108(block8) DescriptorSet 0
                               Decorate 108(block8) Binding 0
                               Decorate 156(Y) SpecId 0
-                              Decorate 223 BuiltIn WorkgroupSize
-                              Decorate 256(SC) SpecId 2
+                              Decorate 247 BuiltIn WorkgroupSize
+                              Decorate 280(SC) SpecId 2
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 8 1
@@ -196,47 +201,57 @@
    212(shmatrix):    211(ptr) Variable Workgroup
              213:      7(int) Constant 2
              214:             TypePointer Workgroup 208(ivec4)
-             221:             TypeVector 7(int) 3
-             222:      7(int) Constant 64
-             223:  221(ivec3) ConstantComposite 222 100 100
-             224:             TypePointer Private 166
-        225(miC):    224(ptr) Variable Private
-        226(muC):    162(ptr) Variable Private
-             227:      7(int) SpecConstantOp 5362 166
-             228:     72(int) SpecConstantOp 128 227 76
-             229:             TypeArray 72(int) 228
-             230:             TypePointer Private 229
-       231(iarr):    230(ptr) Variable Private
-             232:      7(int) SpecConstantOp 5362 166
-             233:     72(int) SpecConstantOp 128 232 76
-             234:             TypeArray 72(int) 233
-             235:             TypePointer Private 234
-      236(iarr2):    235(ptr) Variable Private
-             237:      7(int) SpecConstantOp 5362 158
-             238:     72(int) SpecConstantOp 128 237 76
-             239:             TypeArray 72(int) 238
-             240:             TypePointer Private 239
-       241(uarr):    240(ptr) Variable Private
-             242:      7(int) SpecConstantOp 5362 158
-             243:     72(int) SpecConstantOp 128 242 76
-             244:             TypeArray 72(int) 243
-             245:             TypePointer Private 244
-      246(uarr2):    245(ptr) Variable Private
-             247:             TypeCooperativeMatrixNV 72(int) 8 157(Z) 9
-             248:         247 ConstantComposite 73
-             249:  16(int8_t) Constant 1
-             250:          17 ConstantComposite 249
-          251(S):             TypeStruct 72(int) 72(int) 72(int)
-             252:     72(int) Constant 12
-             253:     72(int) Constant 23
-             254:     72(int) Constant 34
-             255:      251(S) ConstantComposite 252 253 254
-         256(SC):     72(int) SpecConstant 1
-             257:             TypeCooperativeMatrixNV 7(int) 8 256(SC) 256(SC)
-             258:             TypeArray 257 256(SC)
-             259:             TypeArray 258 256(SC)
-             260:             TypePointer Private 259
-        261(scm):    260(ptr) Variable Private
+             221:             TypeInt 16 1
+             222:             TypeCooperativeMatrixNV 221(int16_t) 8 32 9
+             223:             TypePointer Function 222
+             225:221(int16_t) Constant 0
+             226:         222 ConstantComposite 225
+             227:             TypeInt 16 0
+             228:             TypeCooperativeMatrixNV 227(int16_t) 8 32 9
+             229:             TypePointer Function 228
+             231:227(int16_t) Constant 0
+             232:         228 ConstantComposite 231
+             245:             TypeVector 7(int) 3
+             246:      7(int) Constant 64
+             247:  245(ivec3) ConstantComposite 246 100 100
+             248:             TypePointer Private 166
+        249(miC):    248(ptr) Variable Private
+        250(muC):    162(ptr) Variable Private
+             251:      7(int) SpecConstantOp 5362 166
+             252:     72(int) SpecConstantOp 128 251 76
+             253:             TypeArray 72(int) 252
+             254:             TypePointer Private 253
+       255(iarr):    254(ptr) Variable Private
+             256:      7(int) SpecConstantOp 5362 166
+             257:     72(int) SpecConstantOp 128 256 76
+             258:             TypeArray 72(int) 257
+             259:             TypePointer Private 258
+      260(iarr2):    259(ptr) Variable Private
+             261:      7(int) SpecConstantOp 5362 158
+             262:     72(int) SpecConstantOp 128 261 76
+             263:             TypeArray 72(int) 262
+             264:             TypePointer Private 263
+       265(uarr):    264(ptr) Variable Private
+             266:      7(int) SpecConstantOp 5362 158
+             267:     72(int) SpecConstantOp 128 266 76
+             268:             TypeArray 72(int) 267
+             269:             TypePointer Private 268
+      270(uarr2):    269(ptr) Variable Private
+             271:             TypeCooperativeMatrixNV 72(int) 8 157(Z) 9
+             272:         271 ConstantComposite 73
+             273:  16(int8_t) Constant 1
+             274:          17 ConstantComposite 273
+          275(S):             TypeStruct 72(int) 72(int) 72(int)
+             276:     72(int) Constant 12
+             277:     72(int) Constant 23
+             278:     72(int) Constant 34
+             279:      275(S) ConstantComposite 276 277 278
+         280(SC):     72(int) SpecConstant 1
+             281:             TypeCooperativeMatrixNV 7(int) 8 280(SC) 280(SC)
+             282:             TypeArray 281 280(SC)
+             283:             TypeArray 282 280(SC)
+             284:             TypePointer Private 283
+        285(scm):    284(ptr) Variable Private
          4(main):           2 Function None 3
                5:             Label
           35(mu):     34(ptr) Variable Function
@@ -264,6 +279,10 @@
       193(param):     18(ptr) Variable Function
     207(tempArg):     38(ptr) Variable Function
          217(ms):     38(ptr) Variable Function
+        224(i16):    223(ptr) Variable Function
+        230(u16):    229(ptr) Variable Function
+    233(tempArg):    223(ptr) Variable Function
+    239(tempArg):    229(ptr) Variable Function
                               Store 35(mu) 36
                               Store 39(mi) 41
               42:          33 Load 35(mu)
@@ -400,6 +419,24 @@
              219:          37 Load 217(ms)
              220:    214(ptr) AccessChain 212(shmatrix) 100
                               CooperativeMatrixStoreNV 220 219 213 93 MakePointerAvailableKHR NonPrivatePointerKHR 213
+                              Store 224(i16) 226
+                              Store 230(u16) 232
+             234:    214(ptr) AccessChain 212(shmatrix) 100
+             235:         222 CooperativeMatrixLoadNV 234 213 93 MakePointerVisibleKHR NonPrivatePointerKHR 213
+                              Store 233(tempArg) 235
+             236:         222 Load 233(tempArg)
+                              Store 224(i16) 236
+             237:         222 Load 224(i16)
+             238:    214(ptr) AccessChain 212(shmatrix) 100
+                              CooperativeMatrixStoreNV 238 237 213 93 MakePointerAvailableKHR NonPrivatePointerKHR 213
+             240:    214(ptr) AccessChain 212(shmatrix) 100
+             241:         228 CooperativeMatrixLoadNV 240 213 93 MakePointerVisibleKHR NonPrivatePointerKHR 213
+                              Store 239(tempArg) 241
+             242:         228 Load 239(tempArg)
+                              Store 230(u16) 242
+             243:         228 Load 230(u16)
+             244:    214(ptr) AccessChain 212(shmatrix) 100
+                              CooperativeMatrixStoreNV 244 243 213 93 MakePointerAvailableKHR NonPrivatePointerKHR 213
                               Return
                               FunctionEnd
    14(ineg(i81;):          10 Function None 12
diff --git a/Test/baseResults/spv.intrinsicsFakeEnable.vert.out b/Test/baseResults/spv.intrinsicsFakeEnable.vert.out
new file mode 100644
index 0000000..da1cbf7
--- /dev/null
+++ b/Test/baseResults/spv.intrinsicsFakeEnable.vert.out
@@ -0,0 +1,6 @@
+spv.intrinsicsFakeEnable.vert
+ERROR: 0:7: 'location' : overlapping use of location 0
+ERROR: 1 compilation errors.  No code generated.
+
+
+SPIR-V is not generated for failed compile or link
diff --git a/Test/baseResults/spv.maximalReconvergence.vert.out b/Test/baseResults/spv.maximalReconvergence.vert.out
new file mode 100644
index 0000000..2d60ca5
--- /dev/null
+++ b/Test/baseResults/spv.maximalReconvergence.vert.out
@@ -0,0 +1,22 @@
+spv.maximalReconvergence.vert
+WARNING: 0:5: '' : attribute with arguments not recognized, skipping 
+
+// Module Version 10000
+// Generated by (magic number): 8000b
+// Id's are bound by 6
+
+                              Capability Shader
+                              Extension  "SPV_KHR_maximal_reconvergence"
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Vertex 4  "main"
+                              ExecutionMode 4 MaximallyReconverges
+                              Source GLSL 460
+                              SourceExtension  "GL_EXT_maximal_reconvergence"
+                              Name 4  "main"
+               2:             TypeVoid
+               3:             TypeFunction 2
+         4(main):           2 Function None 3
+               5:             Label
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.nv.dmm-allops.comp.out b/Test/baseResults/spv.nv.dmm-allops.comp.out
new file mode 100644
index 0000000..b980714
--- /dev/null
+++ b/Test/baseResults/spv.nv.dmm-allops.comp.out
@@ -0,0 +1,96 @@
+spv.nv.dmm-allops.comp
+// Module Version 10400
+// Generated by (magic number): 8000b
+// Id's are bound by 59
+
+                              Capability Shader
+                              Capability RayQueryKHR
+                              Capability DisplacementMicromapNV
+                              Extension  "SPV_KHR_ray_query"
+                              Extension  "SPV_NV_displacement_micromap"
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint GLCompute 4  "main" 11 16
+                              ExecutionMode 4 LocalSize 16 1 1
+                              Source GLSL 460
+                              SourceExtension  "GL_EXT_ray_query"
+                              SourceExtension  "GL_NV_displacement_micromap"
+                              Name 4  "main"
+                              Name 9  "block"
+                              MemberName 9(block) 0  "op_pos"
+                              MemberName 9(block) 1  "op_bary"
+                              Name 11  ""
+                              Name 16  "as"
+                              MemberDecorate 9(block) 0 Offset 0
+                              MemberDecorate 9(block) 1 Offset 16
+                              Decorate 9(block) Block
+                              Decorate 11 DescriptorSet 0
+                              Decorate 11 Binding 0
+                              Decorate 16(as) DescriptorSet 0
+                              Decorate 16(as) Binding 1
+                              Decorate 58 BuiltIn WorkgroupSize
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 3
+               8:             TypeVector 6(float) 2
+        9(block):             TypeStruct 7(fvec3) 8(fvec2)
+              10:             TypePointer StorageBuffer 9(block)
+              11:     10(ptr) Variable StorageBuffer
+              12:             TypeInt 32 1
+              13:     12(int) Constant 0
+              14:             TypeAccelerationStructureKHR
+              15:             TypePointer UniformConstant 14
+          16(as):     15(ptr) Variable UniformConstant
+              18:     12(int) Constant 1
+              19:             TypeVector 12(int) 2
+              20:   19(ivec2) ConstantComposite 13 13
+              22:             TypePointer StorageBuffer 7(fvec3)
+              25:   19(ivec2) ConstantComposite 13 18
+              32:   19(ivec2) ConstantComposite 18 13
+              40:             TypePointer StorageBuffer 8(fvec2)
+              54:             TypeInt 32 0
+              55:             TypeVector 54(int) 3
+              56:     54(int) Constant 16
+              57:     54(int) Constant 1
+              58:   55(ivec3) ConstantComposite 56 57 57
+         4(main):           2 Function None 3
+               5:             Label
+              17:          14 Load 16(as)
+              21:    7(fvec3) FetchMicroTriangleVertexPositionNV 17 18 18 18 20
+              23:     22(ptr) AccessChain 11 13
+                              Store 23 21
+              24:          14 Load 16(as)
+              26:    7(fvec3) FetchMicroTriangleVertexPositionNV 24 18 18 18 25
+              27:     22(ptr) AccessChain 11 13
+              28:    7(fvec3) Load 27
+              29:    7(fvec3) FAdd 28 26
+              30:     22(ptr) AccessChain 11 13
+                              Store 30 29
+              31:          14 Load 16(as)
+              33:    7(fvec3) FetchMicroTriangleVertexPositionNV 31 18 18 18 32
+              34:     22(ptr) AccessChain 11 13
+              35:    7(fvec3) Load 34
+              36:    7(fvec3) FAdd 35 33
+              37:     22(ptr) AccessChain 11 13
+                              Store 37 36
+              38:          14 Load 16(as)
+              39:    8(fvec2) FetchMicroTriangleVertexBarycentricNV 38 18 18 18 20
+              41:     40(ptr) AccessChain 11 18
+                              Store 41 39
+              42:          14 Load 16(as)
+              43:    8(fvec2) FetchMicroTriangleVertexBarycentricNV 42 18 18 18 25
+              44:     40(ptr) AccessChain 11 18
+              45:    8(fvec2) Load 44
+              46:    8(fvec2) FAdd 45 43
+              47:     40(ptr) AccessChain 11 18
+                              Store 47 46
+              48:          14 Load 16(as)
+              49:    8(fvec2) FetchMicroTriangleVertexBarycentricNV 48 18 18 18 32
+              50:     40(ptr) AccessChain 11 18
+              51:    8(fvec2) Load 50
+              52:    8(fvec2) FAdd 51 49
+              53:     40(ptr) AccessChain 11 18
+                              Store 53 52
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.nv.dmm-allops.mesh.out b/Test/baseResults/spv.nv.dmm-allops.mesh.out
new file mode 100644
index 0000000..9f626c2
--- /dev/null
+++ b/Test/baseResults/spv.nv.dmm-allops.mesh.out
@@ -0,0 +1,95 @@
+spv.nv.dmm-allops.mesh
+// Module Version 10400
+// Generated by (magic number): 8000b
+// Id's are bound by 54
+
+                              Capability RayQueryKHR
+                              Capability MeshShadingNV
+                              Capability DisplacementMicromapNV
+                              Extension  "SPV_KHR_ray_query"
+                              Extension  "SPV_NV_displacement_micromap"
+                              Extension  "SPV_NV_mesh_shader"
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint MeshNV 4  "main" 11 16
+                              ExecutionMode 4 LocalSize 1 1 1
+                              ExecutionMode 4 OutputVertices 8
+                              ExecutionMode 4 OutputPrimitivesNV 16
+                              ExecutionMode 4 OutputTrianglesNV
+                              Source GLSL 460
+                              SourceExtension  "GL_EXT_ray_query"
+                              SourceExtension  "GL_NV_displacement_micromap"
+                              SourceExtension  "GL_NV_mesh_shader"
+                              Name 4  "main"
+                              Name 9  "block"
+                              MemberName 9(block) 0  "op_pos"
+                              MemberName 9(block) 1  "op_bary"
+                              Name 11  ""
+                              Name 16  "as"
+                              MemberDecorate 9(block) 0 Offset 0
+                              MemberDecorate 9(block) 1 Offset 16
+                              Decorate 9(block) Block
+                              Decorate 11 DescriptorSet 0
+                              Decorate 11 Binding 0
+                              Decorate 16(as) DescriptorSet 0
+                              Decorate 16(as) Binding 1
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 3
+               8:             TypeVector 6(float) 2
+        9(block):             TypeStruct 7(fvec3) 8(fvec2)
+              10:             TypePointer StorageBuffer 9(block)
+              11:     10(ptr) Variable StorageBuffer
+              12:             TypeInt 32 1
+              13:     12(int) Constant 0
+              14:             TypeAccelerationStructureKHR
+              15:             TypePointer UniformConstant 14
+          16(as):     15(ptr) Variable UniformConstant
+              18:     12(int) Constant 1
+              19:             TypeVector 12(int) 2
+              20:   19(ivec2) ConstantComposite 13 13
+              22:             TypePointer StorageBuffer 7(fvec3)
+              25:   19(ivec2) ConstantComposite 13 18
+              32:   19(ivec2) ConstantComposite 18 13
+              40:             TypePointer StorageBuffer 8(fvec2)
+         4(main):           2 Function None 3
+               5:             Label
+              17:          14 Load 16(as)
+              21:    7(fvec3) FetchMicroTriangleVertexPositionNV 17 18 18 18 20
+              23:     22(ptr) AccessChain 11 13
+                              Store 23 21
+              24:          14 Load 16(as)
+              26:    7(fvec3) FetchMicroTriangleVertexPositionNV 24 18 18 18 25
+              27:     22(ptr) AccessChain 11 13
+              28:    7(fvec3) Load 27
+              29:    7(fvec3) FAdd 28 26
+              30:     22(ptr) AccessChain 11 13
+                              Store 30 29
+              31:          14 Load 16(as)
+              33:    7(fvec3) FetchMicroTriangleVertexPositionNV 31 18 18 18 32
+              34:     22(ptr) AccessChain 11 13
+              35:    7(fvec3) Load 34
+              36:    7(fvec3) FAdd 35 33
+              37:     22(ptr) AccessChain 11 13
+                              Store 37 36
+              38:          14 Load 16(as)
+              39:    8(fvec2) FetchMicroTriangleVertexBarycentricNV 38 18 18 18 20
+              41:     40(ptr) AccessChain 11 18
+                              Store 41 39
+              42:          14 Load 16(as)
+              43:    8(fvec2) FetchMicroTriangleVertexBarycentricNV 42 18 18 18 25
+              44:     40(ptr) AccessChain 11 18
+              45:    8(fvec2) Load 44
+              46:    8(fvec2) FAdd 45 43
+              47:     40(ptr) AccessChain 11 18
+                              Store 47 46
+              48:          14 Load 16(as)
+              49:    8(fvec2) FetchMicroTriangleVertexBarycentricNV 48 18 18 18 32
+              50:     40(ptr) AccessChain 11 18
+              51:    8(fvec2) Load 50
+              52:    8(fvec2) FAdd 51 49
+              53:     40(ptr) AccessChain 11 18
+                              Store 53 52
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.nv.dmm-allops.rahit.out b/Test/baseResults/spv.nv.dmm-allops.rahit.out
new file mode 100644
index 0000000..388ab04
--- /dev/null
+++ b/Test/baseResults/spv.nv.dmm-allops.rahit.out
@@ -0,0 +1,126 @@
+spv.nv.dmm-allops.rahit
+// Module Version 10400
+// Generated by (magic number): 8000b
+// Id's are bound by 77
+
+                              Capability RayTracingKHR
+                              Capability CapabilityRayTracingDisplacementMicromapNV
+                              Extension  "SPV_KHR_ray_tracing"
+                              Extension  "SPV_NV_displacement_micromap"
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint AnyHitKHR 4  "main" 12 18 40 59 64 67 76
+                              Source GLSL 460
+                              SourceExtension  "GL_EXT_ray_query"
+                              SourceExtension  "GL_EXT_ray_tracing"
+                              SourceExtension  "GL_NV_displacement_micromap"
+                              Name 4  "main"
+                              Name 10  "block"
+                              MemberName 10(block) 0  "op_pos"
+                              MemberName 10(block) 1  "op_bary"
+                              MemberName 10(block) 2  "op_hit"
+                              Name 12  ""
+                              Name 18  "gl_HitMicroTriangleVertexPositionsNV"
+                              Name 40  "gl_HitMicroTriangleVertexBarycentricsNV"
+                              Name 59  "gl_HitKindEXT"
+                              Name 64  "gl_HitKindFrontFacingMicroTriangleNV"
+                              Name 67  "gl_HitKindBackFacingMicroTriangleNV"
+                              Name 76  "as"
+                              MemberDecorate 10(block) 0 Offset 0
+                              MemberDecorate 10(block) 1 Offset 16
+                              MemberDecorate 10(block) 2 Offset 24
+                              Decorate 10(block) Block
+                              Decorate 12 DescriptorSet 0
+                              Decorate 12 Binding 0
+                              Decorate 18(gl_HitMicroTriangleVertexPositionsNV) BuiltIn HitMicroTriangleVertexPositionsNV
+                              Decorate 40(gl_HitMicroTriangleVertexBarycentricsNV) BuiltIn HitMicroTriangleVertexBarycentricsNV
+                              Decorate 59(gl_HitKindEXT) BuiltIn HitKindKHR
+                              Decorate 64(gl_HitKindFrontFacingMicroTriangleNV) BuiltIn HitKindFrontFacingMicroTriangleNV
+                              Decorate 67(gl_HitKindBackFacingMicroTriangleNV) BuiltIn HitKindBackFacingMicroTriangleNV
+                              Decorate 76(as) DescriptorSet 0
+                              Decorate 76(as) Binding 1
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 3
+               8:             TypeVector 6(float) 2
+               9:             TypeInt 32 0
+       10(block):             TypeStruct 7(fvec3) 8(fvec2) 9(int)
+              11:             TypePointer StorageBuffer 10(block)
+              12:     11(ptr) Variable StorageBuffer
+              13:             TypeInt 32 1
+              14:     13(int) Constant 0
+              15:      9(int) Constant 3
+              16:             TypeArray 7(fvec3) 15
+              17:             TypePointer Input 16
+18(gl_HitMicroTriangleVertexPositionsNV):     17(ptr) Variable Input
+              19:             TypePointer Input 7(fvec3)
+              22:             TypePointer StorageBuffer 7(fvec3)
+              24:     13(int) Constant 1
+              31:     13(int) Constant 2
+              38:             TypeArray 8(fvec2) 15
+              39:             TypePointer Input 38
+40(gl_HitMicroTriangleVertexBarycentricsNV):     39(ptr) Variable Input
+              41:             TypePointer Input 8(fvec2)
+              44:             TypePointer StorageBuffer 8(fvec2)
+              58:             TypePointer Input 9(int)
+59(gl_HitKindEXT):     58(ptr) Variable Input
+              61:             TypePointer StorageBuffer 9(int)
+              63:      9(int) Constant 255
+64(gl_HitKindFrontFacingMicroTriangleNV):     58(ptr) Variable Input
+67(gl_HitKindBackFacingMicroTriangleNV):     58(ptr) Variable Input
+              74:             TypeAccelerationStructureKHR
+              75:             TypePointer UniformConstant 74
+          76(as):     75(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+              20:     19(ptr) AccessChain 18(gl_HitMicroTriangleVertexPositionsNV) 14
+              21:    7(fvec3) Load 20
+              23:     22(ptr) AccessChain 12 14
+                              Store 23 21
+              25:     19(ptr) AccessChain 18(gl_HitMicroTriangleVertexPositionsNV) 24
+              26:    7(fvec3) Load 25
+              27:     22(ptr) AccessChain 12 14
+              28:    7(fvec3) Load 27
+              29:    7(fvec3) FAdd 28 26
+              30:     22(ptr) AccessChain 12 14
+                              Store 30 29
+              32:     19(ptr) AccessChain 18(gl_HitMicroTriangleVertexPositionsNV) 31
+              33:    7(fvec3) Load 32
+              34:     22(ptr) AccessChain 12 14
+              35:    7(fvec3) Load 34
+              36:    7(fvec3) FAdd 35 33
+              37:     22(ptr) AccessChain 12 14
+                              Store 37 36
+              42:     41(ptr) AccessChain 40(gl_HitMicroTriangleVertexBarycentricsNV) 14
+              43:    8(fvec2) Load 42
+              45:     44(ptr) AccessChain 12 24
+                              Store 45 43
+              46:     41(ptr) AccessChain 40(gl_HitMicroTriangleVertexBarycentricsNV) 24
+              47:    8(fvec2) Load 46
+              48:     44(ptr) AccessChain 12 24
+              49:    8(fvec2) Load 48
+              50:    8(fvec2) FAdd 49 47
+              51:     44(ptr) AccessChain 12 24
+                              Store 51 50
+              52:     41(ptr) AccessChain 40(gl_HitMicroTriangleVertexBarycentricsNV) 31
+              53:    8(fvec2) Load 52
+              54:     44(ptr) AccessChain 12 24
+              55:    8(fvec2) Load 54
+              56:    8(fvec2) FAdd 55 53
+              57:     44(ptr) AccessChain 12 24
+                              Store 57 56
+              60:      9(int) Load 59(gl_HitKindEXT)
+              62:     61(ptr) AccessChain 12 31
+                              Store 62 60
+              65:      9(int) Load 64(gl_HitKindFrontFacingMicroTriangleNV)
+              66:      9(int) BitwiseOr 63 65
+              68:      9(int) Load 67(gl_HitKindBackFacingMicroTriangleNV)
+              69:      9(int) BitwiseOr 66 68
+              70:     61(ptr) AccessChain 12 31
+              71:      9(int) Load 70
+              72:      9(int) BitwiseAnd 71 69
+              73:     61(ptr) AccessChain 12 31
+                              Store 73 72
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.nv.dmm-allops.rchit.out b/Test/baseResults/spv.nv.dmm-allops.rchit.out
new file mode 100644
index 0000000..c53bc8c
--- /dev/null
+++ b/Test/baseResults/spv.nv.dmm-allops.rchit.out
@@ -0,0 +1,126 @@
+spv.nv.dmm-allops.rchit
+// Module Version 10400
+// Generated by (magic number): 8000b
+// Id's are bound by 77
+
+                              Capability RayTracingKHR
+                              Capability CapabilityRayTracingDisplacementMicromapNV
+                              Extension  "SPV_KHR_ray_tracing"
+                              Extension  "SPV_NV_displacement_micromap"
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint ClosestHitKHR 4  "main" 12 18 40 59 64 67 76
+                              Source GLSL 460
+                              SourceExtension  "GL_EXT_ray_query"
+                              SourceExtension  "GL_EXT_ray_tracing"
+                              SourceExtension  "GL_NV_displacement_micromap"
+                              Name 4  "main"
+                              Name 10  "block"
+                              MemberName 10(block) 0  "op_pos"
+                              MemberName 10(block) 1  "op_bary"
+                              MemberName 10(block) 2  "op_hit"
+                              Name 12  ""
+                              Name 18  "gl_HitMicroTriangleVertexPositionsNV"
+                              Name 40  "gl_HitMicroTriangleVertexBarycentricsNV"
+                              Name 59  "gl_HitKindEXT"
+                              Name 64  "gl_HitKindFrontFacingMicroTriangleNV"
+                              Name 67  "gl_HitKindBackFacingMicroTriangleNV"
+                              Name 76  "as"
+                              MemberDecorate 10(block) 0 Offset 0
+                              MemberDecorate 10(block) 1 Offset 16
+                              MemberDecorate 10(block) 2 Offset 24
+                              Decorate 10(block) Block
+                              Decorate 12 DescriptorSet 0
+                              Decorate 12 Binding 0
+                              Decorate 18(gl_HitMicroTriangleVertexPositionsNV) BuiltIn HitMicroTriangleVertexPositionsNV
+                              Decorate 40(gl_HitMicroTriangleVertexBarycentricsNV) BuiltIn HitMicroTriangleVertexBarycentricsNV
+                              Decorate 59(gl_HitKindEXT) BuiltIn HitKindKHR
+                              Decorate 64(gl_HitKindFrontFacingMicroTriangleNV) BuiltIn HitKindFrontFacingMicroTriangleNV
+                              Decorate 67(gl_HitKindBackFacingMicroTriangleNV) BuiltIn HitKindBackFacingMicroTriangleNV
+                              Decorate 76(as) DescriptorSet 0
+                              Decorate 76(as) Binding 1
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 3
+               8:             TypeVector 6(float) 2
+               9:             TypeInt 32 0
+       10(block):             TypeStruct 7(fvec3) 8(fvec2) 9(int)
+              11:             TypePointer StorageBuffer 10(block)
+              12:     11(ptr) Variable StorageBuffer
+              13:             TypeInt 32 1
+              14:     13(int) Constant 0
+              15:      9(int) Constant 3
+              16:             TypeArray 7(fvec3) 15
+              17:             TypePointer Input 16
+18(gl_HitMicroTriangleVertexPositionsNV):     17(ptr) Variable Input
+              19:             TypePointer Input 7(fvec3)
+              22:             TypePointer StorageBuffer 7(fvec3)
+              24:     13(int) Constant 1
+              31:     13(int) Constant 2
+              38:             TypeArray 8(fvec2) 15
+              39:             TypePointer Input 38
+40(gl_HitMicroTriangleVertexBarycentricsNV):     39(ptr) Variable Input
+              41:             TypePointer Input 8(fvec2)
+              44:             TypePointer StorageBuffer 8(fvec2)
+              58:             TypePointer Input 9(int)
+59(gl_HitKindEXT):     58(ptr) Variable Input
+              61:             TypePointer StorageBuffer 9(int)
+              63:      9(int) Constant 255
+64(gl_HitKindFrontFacingMicroTriangleNV):     58(ptr) Variable Input
+67(gl_HitKindBackFacingMicroTriangleNV):     58(ptr) Variable Input
+              74:             TypeAccelerationStructureKHR
+              75:             TypePointer UniformConstant 74
+          76(as):     75(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+              20:     19(ptr) AccessChain 18(gl_HitMicroTriangleVertexPositionsNV) 14
+              21:    7(fvec3) Load 20
+              23:     22(ptr) AccessChain 12 14
+                              Store 23 21
+              25:     19(ptr) AccessChain 18(gl_HitMicroTriangleVertexPositionsNV) 24
+              26:    7(fvec3) Load 25
+              27:     22(ptr) AccessChain 12 14
+              28:    7(fvec3) Load 27
+              29:    7(fvec3) FAdd 28 26
+              30:     22(ptr) AccessChain 12 14
+                              Store 30 29
+              32:     19(ptr) AccessChain 18(gl_HitMicroTriangleVertexPositionsNV) 31
+              33:    7(fvec3) Load 32
+              34:     22(ptr) AccessChain 12 14
+              35:    7(fvec3) Load 34
+              36:    7(fvec3) FAdd 35 33
+              37:     22(ptr) AccessChain 12 14
+                              Store 37 36
+              42:     41(ptr) AccessChain 40(gl_HitMicroTriangleVertexBarycentricsNV) 14
+              43:    8(fvec2) Load 42
+              45:     44(ptr) AccessChain 12 24
+                              Store 45 43
+              46:     41(ptr) AccessChain 40(gl_HitMicroTriangleVertexBarycentricsNV) 24
+              47:    8(fvec2) Load 46
+              48:     44(ptr) AccessChain 12 24
+              49:    8(fvec2) Load 48
+              50:    8(fvec2) FAdd 49 47
+              51:     44(ptr) AccessChain 12 24
+                              Store 51 50
+              52:     41(ptr) AccessChain 40(gl_HitMicroTriangleVertexBarycentricsNV) 31
+              53:    8(fvec2) Load 52
+              54:     44(ptr) AccessChain 12 24
+              55:    8(fvec2) Load 54
+              56:    8(fvec2) FAdd 55 53
+              57:     44(ptr) AccessChain 12 24
+                              Store 57 56
+              60:      9(int) Load 59(gl_HitKindEXT)
+              62:     61(ptr) AccessChain 12 31
+                              Store 62 60
+              65:      9(int) Load 64(gl_HitKindFrontFacingMicroTriangleNV)
+              66:      9(int) BitwiseOr 63 65
+              68:      9(int) Load 67(gl_HitKindBackFacingMicroTriangleNV)
+              69:      9(int) BitwiseOr 66 68
+              70:     61(ptr) AccessChain 12 31
+              71:      9(int) Load 70
+              72:      9(int) BitwiseAnd 71 69
+              73:     61(ptr) AccessChain 12 31
+                              Store 73 72
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.nv.dmm-allops.rgen.out b/Test/baseResults/spv.nv.dmm-allops.rgen.out
new file mode 100644
index 0000000..78001e1
--- /dev/null
+++ b/Test/baseResults/spv.nv.dmm-allops.rgen.out
@@ -0,0 +1,108 @@
+spv.nv.dmm-allops.rgen
+// Module Version 10400
+// Generated by (magic number): 8000b
+// Id's are bound by 66
+
+                              Capability RayTracingKHR
+                              Capability DisplacementMicromapNV
+                              Capability CapabilityRayTracingDisplacementMicromapNV
+                              Extension  "SPV_KHR_ray_tracing"
+                              Extension  "SPV_NV_displacement_micromap"
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint RayGenerationKHR 4  "main" 12 17 58 61
+                              Source GLSL 460
+                              SourceExtension  "GL_EXT_ray_query"
+                              SourceExtension  "GL_NV_displacement_micromap"
+                              Name 4  "main"
+                              Name 10  "block"
+                              MemberName 10(block) 0  "op_pos"
+                              MemberName 10(block) 1  "op_bary"
+                              MemberName 10(block) 2  "op_hitmask"
+                              Name 12  ""
+                              Name 17  "as"
+                              Name 58  "gl_HitKindFrontFacingMicroTriangleNV"
+                              Name 61  "gl_HitKindBackFacingMicroTriangleNV"
+                              MemberDecorate 10(block) 0 Offset 0
+                              MemberDecorate 10(block) 1 Offset 16
+                              MemberDecorate 10(block) 2 Offset 24
+                              Decorate 10(block) Block
+                              Decorate 12 DescriptorSet 0
+                              Decorate 12 Binding 0
+                              Decorate 17(as) DescriptorSet 0
+                              Decorate 17(as) Binding 1
+                              Decorate 58(gl_HitKindFrontFacingMicroTriangleNV) BuiltIn HitKindFrontFacingMicroTriangleNV
+                              Decorate 61(gl_HitKindBackFacingMicroTriangleNV) BuiltIn HitKindBackFacingMicroTriangleNV
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 3
+               8:             TypeVector 6(float) 2
+               9:             TypeInt 32 0
+       10(block):             TypeStruct 7(fvec3) 8(fvec2) 9(int)
+              11:             TypePointer StorageBuffer 10(block)
+              12:     11(ptr) Variable StorageBuffer
+              13:             TypeInt 32 1
+              14:     13(int) Constant 0
+              15:             TypeAccelerationStructureKHR
+              16:             TypePointer UniformConstant 15
+          17(as):     16(ptr) Variable UniformConstant
+              19:     13(int) Constant 1
+              20:             TypeVector 13(int) 2
+              21:   20(ivec2) ConstantComposite 14 14
+              23:             TypePointer StorageBuffer 7(fvec3)
+              26:   20(ivec2) ConstantComposite 14 19
+              33:   20(ivec2) ConstantComposite 19 14
+              41:             TypePointer StorageBuffer 8(fvec2)
+              55:     13(int) Constant 2
+              56:      9(int) Constant 255
+              57:             TypePointer Input 9(int)
+58(gl_HitKindFrontFacingMicroTriangleNV):     57(ptr) Variable Input
+61(gl_HitKindBackFacingMicroTriangleNV):     57(ptr) Variable Input
+              64:             TypePointer StorageBuffer 9(int)
+         4(main):           2 Function None 3
+               5:             Label
+              18:          15 Load 17(as)
+              22:    7(fvec3) FetchMicroTriangleVertexPositionNV 18 19 19 19 21
+              24:     23(ptr) AccessChain 12 14
+                              Store 24 22
+              25:          15 Load 17(as)
+              27:    7(fvec3) FetchMicroTriangleVertexPositionNV 25 19 19 19 26
+              28:     23(ptr) AccessChain 12 14
+              29:    7(fvec3) Load 28
+              30:    7(fvec3) FAdd 29 27
+              31:     23(ptr) AccessChain 12 14
+                              Store 31 30
+              32:          15 Load 17(as)
+              34:    7(fvec3) FetchMicroTriangleVertexPositionNV 32 19 19 19 33
+              35:     23(ptr) AccessChain 12 14
+              36:    7(fvec3) Load 35
+              37:    7(fvec3) FAdd 36 34
+              38:     23(ptr) AccessChain 12 14
+                              Store 38 37
+              39:          15 Load 17(as)
+              40:    8(fvec2) FetchMicroTriangleVertexBarycentricNV 39 19 19 19 21
+              42:     41(ptr) AccessChain 12 19
+                              Store 42 40
+              43:          15 Load 17(as)
+              44:    8(fvec2) FetchMicroTriangleVertexBarycentricNV 43 19 19 19 26
+              45:     41(ptr) AccessChain 12 19
+              46:    8(fvec2) Load 45
+              47:    8(fvec2) FAdd 46 44
+              48:     41(ptr) AccessChain 12 19
+                              Store 48 47
+              49:          15 Load 17(as)
+              50:    8(fvec2) FetchMicroTriangleVertexBarycentricNV 49 19 19 19 33
+              51:     41(ptr) AccessChain 12 19
+              52:    8(fvec2) Load 51
+              53:    8(fvec2) FAdd 52 50
+              54:     41(ptr) AccessChain 12 19
+                              Store 54 53
+              59:      9(int) Load 58(gl_HitKindFrontFacingMicroTriangleNV)
+              60:      9(int) BitwiseOr 56 59
+              62:      9(int) Load 61(gl_HitKindBackFacingMicroTriangleNV)
+              63:      9(int) BitwiseOr 60 62
+              65:     64(ptr) AccessChain 12 55
+                              Store 65 63
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.specConstantOp.float16.comp.out b/Test/baseResults/spv.specConstantOp.float16.comp.out
new file mode 100644
index 0000000..97631f1
--- /dev/null
+++ b/Test/baseResults/spv.specConstantOp.float16.comp.out
@@ -0,0 +1,47 @@
+spv.specConstantOp.float16.comp
+// Module Version 10000
+// Generated by (magic number): 8000b
+// Id's are bound by 18
+
+                              Capability Shader
+                              Capability Float16
+                              Capability StorageUniformBufferBlock16
+                              Extension  "SPV_KHR_16bit_storage"
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint GLCompute 4  "main"
+                              ExecutionMode 4 LocalSize 1 1 1
+                              Source GLSL 450
+                              SourceExtension  "GL_EXT_shader_explicit_arithmetic_types_float16"
+                              Name 4  "main"
+                              Name 8  "S"
+                              MemberName 8(S) 0  "p_out"
+                              Name 10  ""
+                              Name 14  "c"
+                              Decorate 7 ArrayStride 2
+                              MemberDecorate 8(S) 0 Restrict
+                              MemberDecorate 8(S) 0 NonReadable
+                              MemberDecorate 8(S) 0 Offset 0
+                              Decorate 8(S) BufferBlock
+                              Decorate 10 DescriptorSet 0
+                              Decorate 10 Binding 0
+                              Decorate 14(c) SpecId 0
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 16
+               7:             TypeRuntimeArray 6(float16_t)
+            8(S):             TypeStruct 7
+               9:             TypePointer Uniform 8(S)
+              10:      9(ptr) Variable Uniform
+              11:             TypeInt 32 1
+              12:     11(int) Constant 0
+              13:             TypeFloat 32
+           14(c):   13(float) SpecConstant 1090519040
+              15:6(float16_t) SpecConstantOp 115 14(c)
+              16:             TypePointer Uniform 6(float16_t)
+         4(main):           2 Function None 3
+               5:             Label
+              17:     16(ptr) AccessChain 10 12 12
+                              Store 17 15
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.specConstantOp.int16.comp.out b/Test/baseResults/spv.specConstantOp.int16.comp.out
new file mode 100644
index 0000000..13049be
--- /dev/null
+++ b/Test/baseResults/spv.specConstantOp.int16.comp.out
@@ -0,0 +1,49 @@
+spv.specConstantOp.int16.comp
+// Module Version 10000
+// Generated by (magic number): 8000b
+// Id's are bound by 20
+
+                              Capability Shader
+                              Capability Int16
+                              Capability StorageUniformBufferBlock16
+                              Extension  "SPV_KHR_16bit_storage"
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint GLCompute 4  "main"
+                              ExecutionMode 4 LocalSize 1 1 1
+                              Source GLSL 450
+                              SourceExtension  "GL_EXT_shader_explicit_arithmetic_types_int16"
+                              Name 4  "main"
+                              Name 8  "S"
+                              MemberName 8(S) 0  "p_out"
+                              Name 10  ""
+                              Name 13  "c"
+                              Decorate 7 ArrayStride 2
+                              MemberDecorate 8(S) 0 Restrict
+                              MemberDecorate 8(S) 0 NonReadable
+                              MemberDecorate 8(S) 0 Offset 0
+                              Decorate 8(S) BufferBlock
+                              Decorate 10 DescriptorSet 0
+                              Decorate 10 Binding 0
+                              Decorate 13(c) SpecId 0
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 16 0
+               7:             TypeRuntimeArray 6(int16_t)
+            8(S):             TypeStruct 7
+               9:             TypePointer Uniform 8(S)
+              10:      9(ptr) Variable Uniform
+              11:             TypeInt 32 1
+              12:     11(int) Constant 0
+           13(c):     11(int) SpecConstant 8
+              14:             TypeInt 16 1
+              15: 14(int16_t) SpecConstantOp 114 13(c)
+              16:  6(int16_t) Constant 0
+              17:  6(int16_t) SpecConstantOp 128 15 16
+              18:             TypePointer Uniform 6(int16_t)
+         4(main):           2 Function None 3
+               5:             Label
+              19:     18(ptr) AccessChain 10 12 12
+                              Store 19 17
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.specConstantOp.int8.comp.out b/Test/baseResults/spv.specConstantOp.int8.comp.out
new file mode 100644
index 0000000..1cf5301
--- /dev/null
+++ b/Test/baseResults/spv.specConstantOp.int8.comp.out
@@ -0,0 +1,49 @@
+spv.specConstantOp.int8.comp
+// Module Version 10000
+// Generated by (magic number): 8000b
+// Id's are bound by 20
+
+                              Capability Shader
+                              Capability Int8
+                              Capability UniformAndStorageBuffer8BitAccess
+                              Extension  "SPV_KHR_8bit_storage"
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint GLCompute 4  "main"
+                              ExecutionMode 4 LocalSize 1 1 1
+                              Source GLSL 450
+                              SourceExtension  "GL_EXT_shader_explicit_arithmetic_types_int8"
+                              Name 4  "main"
+                              Name 8  "S"
+                              MemberName 8(S) 0  "p_out"
+                              Name 10  ""
+                              Name 13  "c"
+                              Decorate 7 ArrayStride 1
+                              MemberDecorate 8(S) 0 Restrict
+                              MemberDecorate 8(S) 0 NonReadable
+                              MemberDecorate 8(S) 0 Offset 0
+                              Decorate 8(S) BufferBlock
+                              Decorate 10 DescriptorSet 0
+                              Decorate 10 Binding 0
+                              Decorate 13(c) SpecId 0
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 8 0
+               7:             TypeRuntimeArray 6(int8_t)
+            8(S):             TypeStruct 7
+               9:             TypePointer Uniform 8(S)
+              10:      9(ptr) Variable Uniform
+              11:             TypeInt 32 1
+              12:     11(int) Constant 0
+           13(c):     11(int) SpecConstant 8
+              14:             TypeInt 8 1
+              15:  14(int8_t) SpecConstantOp 114 13(c)
+              16:   6(int8_t) Constant 0
+              17:   6(int8_t) SpecConstantOp 128 15 16
+              18:             TypePointer Uniform 6(int8_t)
+         4(main):           2 Function None 3
+               5:             Label
+              19:     18(ptr) AccessChain 10 12 12
+                              Store 19 17
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.subgroupExtendedTypesRotate.comp.out b/Test/baseResults/spv.subgroupExtendedTypesRotate.comp.out
new file mode 100644
index 0000000..5900db4
--- /dev/null
+++ b/Test/baseResults/spv.subgroupExtendedTypesRotate.comp.out
@@ -0,0 +1,711 @@
+spv.subgroupExtendedTypesRotate.comp
+// Module Version 10300
+// Generated by (magic number): 8000b
+// Id's are bound by 553
+
+                              Capability Shader
+                              Capability Float16
+                              Capability Int64
+                              Capability Int16
+                              Capability Int8
+                              Capability StorageUniformBufferBlock16
+                              Capability StorageBuffer8BitAccess
+                              Capability CapabilityGroupNonUniformRotateKHR
+                              Extension  "SPV_KHR_8bit_storage"
+                              Extension  "SPV_KHR_subgroup_rotate"
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint GLCompute 4  "main"
+                              ExecutionMode 4 LocalSize 8 1 1
+                              Source GLSL 450
+                              SourceExtension  "GL_EXT_shader_explicit_arithmetic_types_float16"
+                              SourceExtension  "GL_EXT_shader_explicit_arithmetic_types_int16"
+                              SourceExtension  "GL_EXT_shader_explicit_arithmetic_types_int64"
+                              SourceExtension  "GL_EXT_shader_explicit_arithmetic_types_int8"
+                              SourceExtension  "GL_EXT_shader_subgroup_extended_types_float16"
+                              SourceExtension  "GL_EXT_shader_subgroup_extended_types_int16"
+                              SourceExtension  "GL_EXT_shader_subgroup_extended_types_int64"
+                              SourceExtension  "GL_EXT_shader_subgroup_extended_types_int8"
+                              SourceExtension  "GL_KHR_shader_subgroup_rotate"
+                              Name 4  "main"
+                              Name 8  "delta"
+                              Name 9  "roblock"
+                              MemberName 9(roblock) 0  "delta"
+                              Name 11  "ro"
+                              Name 31  "Buffers"
+                              MemberName 31(Buffers) 0  "i8"
+                              MemberName 31(Buffers) 1  "u8"
+                              MemberName 31(Buffers) 2  "i16"
+                              MemberName 31(Buffers) 3  "u16"
+                              MemberName 31(Buffers) 4  "i64"
+                              MemberName 31(Buffers) 5  "u64"
+                              MemberName 31(Buffers) 6  "f16"
+                              Name 35  "data"
+                              MemberDecorate 9(roblock) 0 NonWritable
+                              MemberDecorate 9(roblock) 0 Offset 0
+                              Decorate 9(roblock) Block
+                              Decorate 11(ro) DescriptorSet 0
+                              Decorate 11(ro) Binding 1
+                              MemberDecorate 31(Buffers) 0 Offset 0
+                              MemberDecorate 31(Buffers) 1 Offset 4
+                              MemberDecorate 31(Buffers) 2 Offset 8
+                              MemberDecorate 31(Buffers) 3 Offset 16
+                              MemberDecorate 31(Buffers) 4 Offset 32
+                              MemberDecorate 31(Buffers) 5 Offset 64
+                              MemberDecorate 31(Buffers) 6 Offset 96
+                              Decorate 31(Buffers) Block
+                              Decorate 35(data) DescriptorSet 0
+                              Decorate 35(data) Binding 0
+                              Decorate 552 BuiltIn WorkgroupSize
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 0
+               7:             TypePointer Function 6(int)
+      9(roblock):             TypeStruct 6(int)
+              10:             TypePointer StorageBuffer 9(roblock)
+          11(ro):     10(ptr) Variable StorageBuffer
+              12:             TypeInt 32 1
+              13:     12(int) Constant 0
+              14:             TypePointer StorageBuffer 6(int)
+              17:             TypeInt 8 1
+              18:             TypeVector 17(int8_t) 4
+              19:             TypeInt 8 0
+              20:             TypeVector 19(int8_t) 4
+              21:             TypeInt 16 1
+              22:             TypeVector 21(int16_t) 4
+              23:             TypeInt 16 0
+              24:             TypeVector 23(int16_t) 4
+              25:             TypeInt 64 1
+              26:             TypeVector 25(int64_t) 4
+              27:             TypeInt 64 0
+              28:             TypeVector 27(int64_t) 4
+              29:             TypeFloat 16
+              30:             TypeVector 29(float16_t) 4
+     31(Buffers):             TypeStruct 18(i8vec4) 20(i8vec4) 22(i16vec4) 24(i16vec4) 26(i64vec4) 28(i64vec4) 30(f16vec4)
+              32:      6(int) Constant 4
+              33:             TypeArray 31(Buffers) 32
+              34:             TypePointer StorageBuffer 33
+        35(data):     34(ptr) Variable StorageBuffer
+              37:      6(int) Constant 0
+              38:             TypePointer StorageBuffer 17(int8_t)
+              42:      6(int) Constant 3
+              46:     12(int) Constant 1
+              47:             TypeVector 17(int8_t) 2
+              48:             TypePointer StorageBuffer 18(i8vec4)
+              56:      6(int) Constant 1
+              60:     12(int) Constant 2
+              61:             TypeVector 17(int8_t) 3
+              71:      6(int) Constant 2
+              75:     12(int) Constant 3
+             116:             TypePointer StorageBuffer 19(int8_t)
+             123:             TypeVector 19(int8_t) 2
+             124:             TypePointer StorageBuffer 20(i8vec4)
+             135:             TypeVector 19(int8_t) 3
+             188:             TypePointer StorageBuffer 21(int16_t)
+             195:             TypeVector 21(int16_t) 2
+             196:             TypePointer StorageBuffer 22(i16vec4)
+             207:             TypeVector 21(int16_t) 3
+             260:             TypePointer StorageBuffer 23(int16_t)
+             267:             TypeVector 23(int16_t) 2
+             268:             TypePointer StorageBuffer 24(i16vec4)
+             279:             TypeVector 23(int16_t) 3
+             332:     12(int) Constant 4
+             333:             TypePointer StorageBuffer 25(int64_t)
+             340:             TypeVector 25(int64_t) 2
+             341:             TypePointer StorageBuffer 26(i64vec4)
+             352:             TypeVector 25(int64_t) 3
+             405:     12(int) Constant 5
+             406:             TypePointer StorageBuffer 27(int64_t)
+             413:             TypeVector 27(int64_t) 2
+             414:             TypePointer StorageBuffer 28(i64vec4)
+             425:             TypeVector 27(int64_t) 3
+             478:     12(int) Constant 6
+             479:             TypePointer StorageBuffer 29(float16_t)
+             486:             TypeVector 29(float16_t) 2
+             487:             TypePointer StorageBuffer 30(f16vec4)
+             498:             TypeVector 29(float16_t) 3
+             550:             TypeVector 6(int) 3
+             551:      6(int) Constant 8
+             552:  550(ivec3) ConstantComposite 551 56 56
+         4(main):           2 Function None 3
+               5:             Label
+        8(delta):      7(ptr) Variable Function
+              15:     14(ptr) AccessChain 11(ro) 13
+              16:      6(int) Load 15
+                              Store 8(delta) 16
+              36:      6(int) Load 8(delta)
+              39:     38(ptr) AccessChain 35(data) 13 13 37
+              40:  17(int8_t) Load 39
+              41:      6(int) Load 8(delta)
+              43:  17(int8_t) GroupNonUniformRotateKHR 42 40 41
+              44:     38(ptr) AccessChain 35(data) 36 13 37
+                              Store 44 43
+              45:      6(int) Load 8(delta)
+              49:     48(ptr) AccessChain 35(data) 46 13
+              50:  18(i8vec4) Load 49
+              51:  47(i8vec2) VectorShuffle 50 50 0 1
+              52:      6(int) Load 8(delta)
+              53:  47(i8vec2) GroupNonUniformRotateKHR 42 51 52
+              54:     38(ptr) AccessChain 35(data) 45 13 37
+              55:  17(int8_t) CompositeExtract 53 0
+                              Store 54 55
+              57:     38(ptr) AccessChain 35(data) 45 13 56
+              58:  17(int8_t) CompositeExtract 53 1
+                              Store 57 58
+              59:      6(int) Load 8(delta)
+              62:     48(ptr) AccessChain 35(data) 60 13
+              63:  18(i8vec4) Load 62
+              64:  61(i8vec3) VectorShuffle 63 63 0 1 2
+              65:      6(int) Load 8(delta)
+              66:  61(i8vec3) GroupNonUniformRotateKHR 42 64 65
+              67:     38(ptr) AccessChain 35(data) 59 13 37
+              68:  17(int8_t) CompositeExtract 66 0
+                              Store 67 68
+              69:     38(ptr) AccessChain 35(data) 59 13 56
+              70:  17(int8_t) CompositeExtract 66 1
+                              Store 69 70
+              72:     38(ptr) AccessChain 35(data) 59 13 71
+              73:  17(int8_t) CompositeExtract 66 2
+                              Store 72 73
+              74:      6(int) Load 8(delta)
+              76:     48(ptr) AccessChain 35(data) 75 13
+              77:  18(i8vec4) Load 76
+              78:      6(int) Load 8(delta)
+              79:  18(i8vec4) GroupNonUniformRotateKHR 42 77 78
+              80:     48(ptr) AccessChain 35(data) 74 13
+                              Store 80 79
+              81:      6(int) Load 8(delta)
+              82:     38(ptr) AccessChain 35(data) 13 13 37
+              83:  17(int8_t) Load 82
+              84:      6(int) Load 8(delta)
+              85:  17(int8_t) GroupNonUniformRotateKHR 42 83 84 56
+              86:     38(ptr) AccessChain 35(data) 81 13 37
+                              Store 86 85
+              87:      6(int) Load 8(delta)
+              88:     48(ptr) AccessChain 35(data) 46 13
+              89:  18(i8vec4) Load 88
+              90:  47(i8vec2) VectorShuffle 89 89 0 1
+              91:      6(int) Load 8(delta)
+              92:  47(i8vec2) GroupNonUniformRotateKHR 42 90 91 56
+              93:     38(ptr) AccessChain 35(data) 87 13 37
+              94:  17(int8_t) CompositeExtract 92 0
+                              Store 93 94
+              95:     38(ptr) AccessChain 35(data) 87 13 56
+              96:  17(int8_t) CompositeExtract 92 1
+                              Store 95 96
+              97:      6(int) Load 8(delta)
+              98:     48(ptr) AccessChain 35(data) 60 13
+              99:  18(i8vec4) Load 98
+             100:  61(i8vec3) VectorShuffle 99 99 0 1 2
+             101:      6(int) Load 8(delta)
+             102:  61(i8vec3) GroupNonUniformRotateKHR 42 100 101 56
+             103:     38(ptr) AccessChain 35(data) 97 13 37
+             104:  17(int8_t) CompositeExtract 102 0
+                              Store 103 104
+             105:     38(ptr) AccessChain 35(data) 97 13 56
+             106:  17(int8_t) CompositeExtract 102 1
+                              Store 105 106
+             107:     38(ptr) AccessChain 35(data) 97 13 71
+             108:  17(int8_t) CompositeExtract 102 2
+                              Store 107 108
+             109:      6(int) Load 8(delta)
+             110:     48(ptr) AccessChain 35(data) 75 13
+             111:  18(i8vec4) Load 110
+             112:      6(int) Load 8(delta)
+             113:  18(i8vec4) GroupNonUniformRotateKHR 42 111 112 56
+             114:     48(ptr) AccessChain 35(data) 109 13
+                              Store 114 113
+             115:      6(int) Load 8(delta)
+             117:    116(ptr) AccessChain 35(data) 13 46 37
+             118:  19(int8_t) Load 117
+             119:      6(int) Load 8(delta)
+             120:  19(int8_t) GroupNonUniformRotateKHR 42 118 119
+             121:    116(ptr) AccessChain 35(data) 115 46 37
+                              Store 121 120
+             122:      6(int) Load 8(delta)
+             125:    124(ptr) AccessChain 35(data) 46 46
+             126:  20(i8vec4) Load 125
+             127: 123(i8vec2) VectorShuffle 126 126 0 1
+             128:      6(int) Load 8(delta)
+             129: 123(i8vec2) GroupNonUniformRotateKHR 42 127 128
+             130:    116(ptr) AccessChain 35(data) 122 46 37
+             131:  19(int8_t) CompositeExtract 129 0
+                              Store 130 131
+             132:    116(ptr) AccessChain 35(data) 122 46 56
+             133:  19(int8_t) CompositeExtract 129 1
+                              Store 132 133
+             134:      6(int) Load 8(delta)
+             136:    124(ptr) AccessChain 35(data) 60 46
+             137:  20(i8vec4) Load 136
+             138: 135(i8vec3) VectorShuffle 137 137 0 1 2
+             139:      6(int) Load 8(delta)
+             140: 135(i8vec3) GroupNonUniformRotateKHR 42 138 139
+             141:    116(ptr) AccessChain 35(data) 134 46 37
+             142:  19(int8_t) CompositeExtract 140 0
+                              Store 141 142
+             143:    116(ptr) AccessChain 35(data) 134 46 56
+             144:  19(int8_t) CompositeExtract 140 1
+                              Store 143 144
+             145:    116(ptr) AccessChain 35(data) 134 46 71
+             146:  19(int8_t) CompositeExtract 140 2
+                              Store 145 146
+             147:      6(int) Load 8(delta)
+             148:    124(ptr) AccessChain 35(data) 75 46
+             149:  20(i8vec4) Load 148
+             150:      6(int) Load 8(delta)
+             151:  20(i8vec4) GroupNonUniformRotateKHR 42 149 150
+             152:    124(ptr) AccessChain 35(data) 147 46
+                              Store 152 151
+             153:      6(int) Load 8(delta)
+             154:    116(ptr) AccessChain 35(data) 13 46 37
+             155:  19(int8_t) Load 154
+             156:      6(int) Load 8(delta)
+             157:  19(int8_t) GroupNonUniformRotateKHR 42 155 156 56
+             158:    116(ptr) AccessChain 35(data) 153 46 37
+                              Store 158 157
+             159:      6(int) Load 8(delta)
+             160:    124(ptr) AccessChain 35(data) 46 46
+             161:  20(i8vec4) Load 160
+             162: 123(i8vec2) VectorShuffle 161 161 0 1
+             163:      6(int) Load 8(delta)
+             164: 123(i8vec2) GroupNonUniformRotateKHR 42 162 163 56
+             165:    116(ptr) AccessChain 35(data) 159 46 37
+             166:  19(int8_t) CompositeExtract 164 0
+                              Store 165 166
+             167:    116(ptr) AccessChain 35(data) 159 46 56
+             168:  19(int8_t) CompositeExtract 164 1
+                              Store 167 168
+             169:      6(int) Load 8(delta)
+             170:    124(ptr) AccessChain 35(data) 60 46
+             171:  20(i8vec4) Load 170
+             172: 135(i8vec3) VectorShuffle 171 171 0 1 2
+             173:      6(int) Load 8(delta)
+             174: 135(i8vec3) GroupNonUniformRotateKHR 42 172 173 56
+             175:    116(ptr) AccessChain 35(data) 169 46 37
+             176:  19(int8_t) CompositeExtract 174 0
+                              Store 175 176
+             177:    116(ptr) AccessChain 35(data) 169 46 56
+             178:  19(int8_t) CompositeExtract 174 1
+                              Store 177 178
+             179:    116(ptr) AccessChain 35(data) 169 46 71
+             180:  19(int8_t) CompositeExtract 174 2
+                              Store 179 180
+             181:      6(int) Load 8(delta)
+             182:    124(ptr) AccessChain 35(data) 75 46
+             183:  20(i8vec4) Load 182
+             184:      6(int) Load 8(delta)
+             185:  20(i8vec4) GroupNonUniformRotateKHR 42 183 184 56
+             186:    124(ptr) AccessChain 35(data) 181 46
+                              Store 186 185
+             187:      6(int) Load 8(delta)
+             189:    188(ptr) AccessChain 35(data) 13 60 37
+             190: 21(int16_t) Load 189
+             191:      6(int) Load 8(delta)
+             192: 21(int16_t) GroupNonUniformRotateKHR 42 190 191
+             193:    188(ptr) AccessChain 35(data) 187 60 37
+                              Store 193 192
+             194:      6(int) Load 8(delta)
+             197:    196(ptr) AccessChain 35(data) 46 60
+             198: 22(i16vec4) Load 197
+             199:195(i16vec2) VectorShuffle 198 198 0 1
+             200:      6(int) Load 8(delta)
+             201:195(i16vec2) GroupNonUniformRotateKHR 42 199 200
+             202:    188(ptr) AccessChain 35(data) 194 60 37
+             203: 21(int16_t) CompositeExtract 201 0
+                              Store 202 203
+             204:    188(ptr) AccessChain 35(data) 194 60 56
+             205: 21(int16_t) CompositeExtract 201 1
+                              Store 204 205
+             206:      6(int) Load 8(delta)
+             208:    196(ptr) AccessChain 35(data) 60 60
+             209: 22(i16vec4) Load 208
+             210:207(i16vec3) VectorShuffle 209 209 0 1 2
+             211:      6(int) Load 8(delta)
+             212:207(i16vec3) GroupNonUniformRotateKHR 42 210 211
+             213:    188(ptr) AccessChain 35(data) 206 60 37
+             214: 21(int16_t) CompositeExtract 212 0
+                              Store 213 214
+             215:    188(ptr) AccessChain 35(data) 206 60 56
+             216: 21(int16_t) CompositeExtract 212 1
+                              Store 215 216
+             217:    188(ptr) AccessChain 35(data) 206 60 71
+             218: 21(int16_t) CompositeExtract 212 2
+                              Store 217 218
+             219:      6(int) Load 8(delta)
+             220:    196(ptr) AccessChain 35(data) 75 60
+             221: 22(i16vec4) Load 220
+             222:      6(int) Load 8(delta)
+             223: 22(i16vec4) GroupNonUniformRotateKHR 42 221 222
+             224:    196(ptr) AccessChain 35(data) 219 60
+                              Store 224 223
+             225:      6(int) Load 8(delta)
+             226:    188(ptr) AccessChain 35(data) 13 60 37
+             227: 21(int16_t) Load 226
+             228:      6(int) Load 8(delta)
+             229: 21(int16_t) GroupNonUniformRotateKHR 42 227 228 56
+             230:    188(ptr) AccessChain 35(data) 225 60 37
+                              Store 230 229
+             231:      6(int) Load 8(delta)
+             232:    196(ptr) AccessChain 35(data) 46 60
+             233: 22(i16vec4) Load 232
+             234:195(i16vec2) VectorShuffle 233 233 0 1
+             235:      6(int) Load 8(delta)
+             236:195(i16vec2) GroupNonUniformRotateKHR 42 234 235 56
+             237:    188(ptr) AccessChain 35(data) 231 60 37
+             238: 21(int16_t) CompositeExtract 236 0
+                              Store 237 238
+             239:    188(ptr) AccessChain 35(data) 231 60 56
+             240: 21(int16_t) CompositeExtract 236 1
+                              Store 239 240
+             241:      6(int) Load 8(delta)
+             242:    196(ptr) AccessChain 35(data) 60 60
+             243: 22(i16vec4) Load 242
+             244:207(i16vec3) VectorShuffle 243 243 0 1 2
+             245:      6(int) Load 8(delta)
+             246:207(i16vec3) GroupNonUniformRotateKHR 42 244 245 56
+             247:    188(ptr) AccessChain 35(data) 241 60 37
+             248: 21(int16_t) CompositeExtract 246 0
+                              Store 247 248
+             249:    188(ptr) AccessChain 35(data) 241 60 56
+             250: 21(int16_t) CompositeExtract 246 1
+                              Store 249 250
+             251:    188(ptr) AccessChain 35(data) 241 60 71
+             252: 21(int16_t) CompositeExtract 246 2
+                              Store 251 252
+             253:      6(int) Load 8(delta)
+             254:    196(ptr) AccessChain 35(data) 75 60
+             255: 22(i16vec4) Load 254
+             256:      6(int) Load 8(delta)
+             257: 22(i16vec4) GroupNonUniformRotateKHR 42 255 256 56
+             258:    196(ptr) AccessChain 35(data) 253 60
+                              Store 258 257
+             259:      6(int) Load 8(delta)
+             261:    260(ptr) AccessChain 35(data) 13 75 37
+             262: 23(int16_t) Load 261
+             263:      6(int) Load 8(delta)
+             264: 23(int16_t) GroupNonUniformRotateKHR 42 262 263
+             265:    260(ptr) AccessChain 35(data) 259 75 37
+                              Store 265 264
+             266:      6(int) Load 8(delta)
+             269:    268(ptr) AccessChain 35(data) 46 75
+             270: 24(i16vec4) Load 269
+             271:267(i16vec2) VectorShuffle 270 270 0 1
+             272:      6(int) Load 8(delta)
+             273:267(i16vec2) GroupNonUniformRotateKHR 42 271 272
+             274:    260(ptr) AccessChain 35(data) 266 75 37
+             275: 23(int16_t) CompositeExtract 273 0
+                              Store 274 275
+             276:    260(ptr) AccessChain 35(data) 266 75 56
+             277: 23(int16_t) CompositeExtract 273 1
+                              Store 276 277
+             278:      6(int) Load 8(delta)
+             280:    268(ptr) AccessChain 35(data) 60 75
+             281: 24(i16vec4) Load 280
+             282:279(i16vec3) VectorShuffle 281 281 0 1 2
+             283:      6(int) Load 8(delta)
+             284:279(i16vec3) GroupNonUniformRotateKHR 42 282 283
+             285:    260(ptr) AccessChain 35(data) 278 75 37
+             286: 23(int16_t) CompositeExtract 284 0
+                              Store 285 286
+             287:    260(ptr) AccessChain 35(data) 278 75 56
+             288: 23(int16_t) CompositeExtract 284 1
+                              Store 287 288
+             289:    260(ptr) AccessChain 35(data) 278 75 71
+             290: 23(int16_t) CompositeExtract 284 2
+                              Store 289 290
+             291:      6(int) Load 8(delta)
+             292:    268(ptr) AccessChain 35(data) 75 75
+             293: 24(i16vec4) Load 292
+             294:      6(int) Load 8(delta)
+             295: 24(i16vec4) GroupNonUniformRotateKHR 42 293 294
+             296:    268(ptr) AccessChain 35(data) 291 75
+                              Store 296 295
+             297:      6(int) Load 8(delta)
+             298:    260(ptr) AccessChain 35(data) 13 75 37
+             299: 23(int16_t) Load 298
+             300:      6(int) Load 8(delta)
+             301: 23(int16_t) GroupNonUniformRotateKHR 42 299 300 56
+             302:    260(ptr) AccessChain 35(data) 297 75 37
+                              Store 302 301
+             303:      6(int) Load 8(delta)
+             304:    268(ptr) AccessChain 35(data) 46 75
+             305: 24(i16vec4) Load 304
+             306:267(i16vec2) VectorShuffle 305 305 0 1
+             307:      6(int) Load 8(delta)
+             308:267(i16vec2) GroupNonUniformRotateKHR 42 306 307 56
+             309:    260(ptr) AccessChain 35(data) 303 75 37
+             310: 23(int16_t) CompositeExtract 308 0
+                              Store 309 310
+             311:    260(ptr) AccessChain 35(data) 303 75 56
+             312: 23(int16_t) CompositeExtract 308 1
+                              Store 311 312
+             313:      6(int) Load 8(delta)
+             314:    268(ptr) AccessChain 35(data) 60 75
+             315: 24(i16vec4) Load 314
+             316:279(i16vec3) VectorShuffle 315 315 0 1 2
+             317:      6(int) Load 8(delta)
+             318:279(i16vec3) GroupNonUniformRotateKHR 42 316 317 56
+             319:    260(ptr) AccessChain 35(data) 313 75 37
+             320: 23(int16_t) CompositeExtract 318 0
+                              Store 319 320
+             321:    260(ptr) AccessChain 35(data) 313 75 56
+             322: 23(int16_t) CompositeExtract 318 1
+                              Store 321 322
+             323:    260(ptr) AccessChain 35(data) 313 75 71
+             324: 23(int16_t) CompositeExtract 318 2
+                              Store 323 324
+             325:      6(int) Load 8(delta)
+             326:    268(ptr) AccessChain 35(data) 75 75
+             327: 24(i16vec4) Load 326
+             328:      6(int) Load 8(delta)
+             329: 24(i16vec4) GroupNonUniformRotateKHR 42 327 328 56
+             330:    268(ptr) AccessChain 35(data) 325 75
+                              Store 330 329
+             331:      6(int) Load 8(delta)
+             334:    333(ptr) AccessChain 35(data) 13 332 37
+             335: 25(int64_t) Load 334
+             336:      6(int) Load 8(delta)
+             337: 25(int64_t) GroupNonUniformRotateKHR 42 335 336
+             338:    333(ptr) AccessChain 35(data) 331 332 37
+                              Store 338 337
+             339:      6(int) Load 8(delta)
+             342:    341(ptr) AccessChain 35(data) 46 332
+             343: 26(i64vec4) Load 342
+             344:340(i64vec2) VectorShuffle 343 343 0 1
+             345:      6(int) Load 8(delta)
+             346:340(i64vec2) GroupNonUniformRotateKHR 42 344 345
+             347:    333(ptr) AccessChain 35(data) 339 332 37
+             348: 25(int64_t) CompositeExtract 346 0
+                              Store 347 348
+             349:    333(ptr) AccessChain 35(data) 339 332 56
+             350: 25(int64_t) CompositeExtract 346 1
+                              Store 349 350
+             351:      6(int) Load 8(delta)
+             353:    341(ptr) AccessChain 35(data) 60 332
+             354: 26(i64vec4) Load 353
+             355:352(i64vec3) VectorShuffle 354 354 0 1 2
+             356:      6(int) Load 8(delta)
+             357:352(i64vec3) GroupNonUniformRotateKHR 42 355 356
+             358:    333(ptr) AccessChain 35(data) 351 332 37
+             359: 25(int64_t) CompositeExtract 357 0
+                              Store 358 359
+             360:    333(ptr) AccessChain 35(data) 351 332 56
+             361: 25(int64_t) CompositeExtract 357 1
+                              Store 360 361
+             362:    333(ptr) AccessChain 35(data) 351 332 71
+             363: 25(int64_t) CompositeExtract 357 2
+                              Store 362 363
+             364:      6(int) Load 8(delta)
+             365:    341(ptr) AccessChain 35(data) 75 332
+             366: 26(i64vec4) Load 365
+             367:      6(int) Load 8(delta)
+             368: 26(i64vec4) GroupNonUniformRotateKHR 42 366 367
+             369:    341(ptr) AccessChain 35(data) 364 332
+                              Store 369 368
+             370:      6(int) Load 8(delta)
+             371:    333(ptr) AccessChain 35(data) 13 332 37
+             372: 25(int64_t) Load 371
+             373:      6(int) Load 8(delta)
+             374: 25(int64_t) GroupNonUniformRotateKHR 42 372 373 56
+             375:    333(ptr) AccessChain 35(data) 370 332 37
+                              Store 375 374
+             376:      6(int) Load 8(delta)
+             377:    341(ptr) AccessChain 35(data) 46 332
+             378: 26(i64vec4) Load 377
+             379:340(i64vec2) VectorShuffle 378 378 0 1
+             380:      6(int) Load 8(delta)
+             381:340(i64vec2) GroupNonUniformRotateKHR 42 379 380 56
+             382:    333(ptr) AccessChain 35(data) 376 332 37
+             383: 25(int64_t) CompositeExtract 381 0
+                              Store 382 383
+             384:    333(ptr) AccessChain 35(data) 376 332 56
+             385: 25(int64_t) CompositeExtract 381 1
+                              Store 384 385
+             386:      6(int) Load 8(delta)
+             387:    341(ptr) AccessChain 35(data) 60 332
+             388: 26(i64vec4) Load 387
+             389:352(i64vec3) VectorShuffle 388 388 0 1 2
+             390:      6(int) Load 8(delta)
+             391:352(i64vec3) GroupNonUniformRotateKHR 42 389 390 56
+             392:    333(ptr) AccessChain 35(data) 386 332 37
+             393: 25(int64_t) CompositeExtract 391 0
+                              Store 392 393
+             394:    333(ptr) AccessChain 35(data) 386 332 56
+             395: 25(int64_t) CompositeExtract 391 1
+                              Store 394 395
+             396:    333(ptr) AccessChain 35(data) 386 332 71
+             397: 25(int64_t) CompositeExtract 391 2
+                              Store 396 397
+             398:      6(int) Load 8(delta)
+             399:    341(ptr) AccessChain 35(data) 75 332
+             400: 26(i64vec4) Load 399
+             401:      6(int) Load 8(delta)
+             402: 26(i64vec4) GroupNonUniformRotateKHR 42 400 401 56
+             403:    341(ptr) AccessChain 35(data) 398 332
+                              Store 403 402
+             404:      6(int) Load 8(delta)
+             407:    406(ptr) AccessChain 35(data) 13 405 37
+             408: 27(int64_t) Load 407
+             409:      6(int) Load 8(delta)
+             410: 27(int64_t) GroupNonUniformRotateKHR 42 408 409
+             411:    406(ptr) AccessChain 35(data) 404 405 37
+                              Store 411 410
+             412:      6(int) Load 8(delta)
+             415:    414(ptr) AccessChain 35(data) 46 405
+             416: 28(i64vec4) Load 415
+             417:413(i64vec2) VectorShuffle 416 416 0 1
+             418:      6(int) Load 8(delta)
+             419:413(i64vec2) GroupNonUniformRotateKHR 42 417 418
+             420:    406(ptr) AccessChain 35(data) 412 405 37
+             421: 27(int64_t) CompositeExtract 419 0
+                              Store 420 421
+             422:    406(ptr) AccessChain 35(data) 412 405 56
+             423: 27(int64_t) CompositeExtract 419 1
+                              Store 422 423
+             424:      6(int) Load 8(delta)
+             426:    414(ptr) AccessChain 35(data) 60 405
+             427: 28(i64vec4) Load 426
+             428:425(i64vec3) VectorShuffle 427 427 0 1 2
+             429:      6(int) Load 8(delta)
+             430:425(i64vec3) GroupNonUniformRotateKHR 42 428 429
+             431:    406(ptr) AccessChain 35(data) 424 405 37
+             432: 27(int64_t) CompositeExtract 430 0
+                              Store 431 432
+             433:    406(ptr) AccessChain 35(data) 424 405 56
+             434: 27(int64_t) CompositeExtract 430 1
+                              Store 433 434
+             435:    406(ptr) AccessChain 35(data) 424 405 71
+             436: 27(int64_t) CompositeExtract 430 2
+                              Store 435 436
+             437:      6(int) Load 8(delta)
+             438:    414(ptr) AccessChain 35(data) 75 405
+             439: 28(i64vec4) Load 438
+             440:      6(int) Load 8(delta)
+             441: 28(i64vec4) GroupNonUniformRotateKHR 42 439 440
+             442:    414(ptr) AccessChain 35(data) 437 405
+                              Store 442 441
+             443:      6(int) Load 8(delta)
+             444:    406(ptr) AccessChain 35(data) 13 405 37
+             445: 27(int64_t) Load 444
+             446:      6(int) Load 8(delta)
+             447: 27(int64_t) GroupNonUniformRotateKHR 42 445 446 56
+             448:    406(ptr) AccessChain 35(data) 443 405 37
+                              Store 448 447
+             449:      6(int) Load 8(delta)
+             450:    414(ptr) AccessChain 35(data) 46 405
+             451: 28(i64vec4) Load 450
+             452:413(i64vec2) VectorShuffle 451 451 0 1
+             453:      6(int) Load 8(delta)
+             454:413(i64vec2) GroupNonUniformRotateKHR 42 452 453 56
+             455:    406(ptr) AccessChain 35(data) 449 405 37
+             456: 27(int64_t) CompositeExtract 454 0
+                              Store 455 456
+             457:    406(ptr) AccessChain 35(data) 449 405 56
+             458: 27(int64_t) CompositeExtract 454 1
+                              Store 457 458
+             459:      6(int) Load 8(delta)
+             460:    414(ptr) AccessChain 35(data) 60 405
+             461: 28(i64vec4) Load 460
+             462:425(i64vec3) VectorShuffle 461 461 0 1 2
+             463:      6(int) Load 8(delta)
+             464:425(i64vec3) GroupNonUniformRotateKHR 42 462 463 56
+             465:    406(ptr) AccessChain 35(data) 459 405 37
+             466: 27(int64_t) CompositeExtract 464 0
+                              Store 465 466
+             467:    406(ptr) AccessChain 35(data) 459 405 56
+             468: 27(int64_t) CompositeExtract 464 1
+                              Store 467 468
+             469:    406(ptr) AccessChain 35(data) 459 405 71
+             470: 27(int64_t) CompositeExtract 464 2
+                              Store 469 470
+             471:      6(int) Load 8(delta)
+             472:    414(ptr) AccessChain 35(data) 75 405
+             473: 28(i64vec4) Load 472
+             474:      6(int) Load 8(delta)
+             475: 28(i64vec4) GroupNonUniformRotateKHR 42 473 474 56
+             476:    414(ptr) AccessChain 35(data) 471 405
+                              Store 476 475
+             477:      6(int) Load 8(delta)
+             480:    479(ptr) AccessChain 35(data) 13 478 37
+             481:29(float16_t) Load 480
+             482:      6(int) Load 8(delta)
+             483:29(float16_t) GroupNonUniformRotateKHR 42 481 482
+             484:    479(ptr) AccessChain 35(data) 477 478 37
+                              Store 484 483
+             485:      6(int) Load 8(delta)
+             488:    487(ptr) AccessChain 35(data) 46 478
+             489: 30(f16vec4) Load 488
+             490:486(f16vec2) VectorShuffle 489 489 0 1
+             491:      6(int) Load 8(delta)
+             492:486(f16vec2) GroupNonUniformRotateKHR 42 490 491
+             493:    479(ptr) AccessChain 35(data) 485 478 37
+             494:29(float16_t) CompositeExtract 492 0
+                              Store 493 494
+             495:    479(ptr) AccessChain 35(data) 485 478 56
+             496:29(float16_t) CompositeExtract 492 1
+                              Store 495 496
+             497:      6(int) Load 8(delta)
+             499:    487(ptr) AccessChain 35(data) 60 478
+             500: 30(f16vec4) Load 499
+             501:498(f16vec3) VectorShuffle 500 500 0 1 2
+             502:      6(int) Load 8(delta)
+             503:498(f16vec3) GroupNonUniformRotateKHR 42 501 502
+             504:    479(ptr) AccessChain 35(data) 497 478 37
+             505:29(float16_t) CompositeExtract 503 0
+                              Store 504 505
+             506:    479(ptr) AccessChain 35(data) 497 478 56
+             507:29(float16_t) CompositeExtract 503 1
+                              Store 506 507
+             508:    479(ptr) AccessChain 35(data) 497 478 71
+             509:29(float16_t) CompositeExtract 503 2
+                              Store 508 509
+             510:      6(int) Load 8(delta)
+             511:    487(ptr) AccessChain 35(data) 75 478
+             512: 30(f16vec4) Load 511
+             513:      6(int) Load 8(delta)
+             514: 30(f16vec4) GroupNonUniformRotateKHR 42 512 513
+             515:    487(ptr) AccessChain 35(data) 510 478
+                              Store 515 514
+             516:      6(int) Load 8(delta)
+             517:    479(ptr) AccessChain 35(data) 13 478 37
+             518:29(float16_t) Load 517
+             519:      6(int) Load 8(delta)
+             520:29(float16_t) GroupNonUniformRotateKHR 42 518 519 56
+             521:    479(ptr) AccessChain 35(data) 516 478 37
+                              Store 521 520
+             522:      6(int) Load 8(delta)
+             523:    487(ptr) AccessChain 35(data) 46 478
+             524: 30(f16vec4) Load 523
+             525:486(f16vec2) VectorShuffle 524 524 0 1
+             526:      6(int) Load 8(delta)
+             527:486(f16vec2) GroupNonUniformRotateKHR 42 525 526 56
+             528:    479(ptr) AccessChain 35(data) 522 478 37
+             529:29(float16_t) CompositeExtract 527 0
+                              Store 528 529
+             530:    479(ptr) AccessChain 35(data) 522 478 56
+             531:29(float16_t) CompositeExtract 527 1
+                              Store 530 531
+             532:      6(int) Load 8(delta)
+             533:    487(ptr) AccessChain 35(data) 60 478
+             534: 30(f16vec4) Load 533
+             535:498(f16vec3) VectorShuffle 534 534 0 1 2
+             536:      6(int) Load 8(delta)
+             537:498(f16vec3) GroupNonUniformRotateKHR 42 535 536 56
+             538:    479(ptr) AccessChain 35(data) 532 478 37
+             539:29(float16_t) CompositeExtract 537 0
+                              Store 538 539
+             540:    479(ptr) AccessChain 35(data) 532 478 56
+             541:29(float16_t) CompositeExtract 537 1
+                              Store 540 541
+             542:    479(ptr) AccessChain 35(data) 532 478 71
+             543:29(float16_t) CompositeExtract 537 2
+                              Store 542 543
+             544:      6(int) Load 8(delta)
+             545:    487(ptr) AccessChain 35(data) 75 478
+             546: 30(f16vec4) Load 545
+             547:      6(int) Load 8(delta)
+             548: 30(f16vec4) GroupNonUniformRotateKHR 42 546 547 56
+             549:    487(ptr) AccessChain 35(data) 544 478
+                              Store 549 548
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.subgroupExtendedTypesRotateNeg.comp.out b/Test/baseResults/spv.subgroupExtendedTypesRotateNeg.comp.out
new file mode 100644
index 0000000..b386506
--- /dev/null
+++ b/Test/baseResults/spv.subgroupExtendedTypesRotateNeg.comp.out
@@ -0,0 +1,61 @@
+spv.subgroupExtendedTypesRotateNeg.comp
+ERROR: 0:31: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
+ERROR: 0:32: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
+ERROR: 0:33: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
+ERROR: 0:34: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
+ERROR: 0:36: ' temp int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
+ERROR: 0:37: ' temp 2-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
+ERROR: 0:38: ' temp 3-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
+ERROR: 0:39: 'layout( column_major std430) buffer 4-component vector of int8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
+ERROR: 0:41: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
+ERROR: 0:42: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
+ERROR: 0:43: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
+ERROR: 0:44: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
+ERROR: 0:46: ' temp uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
+ERROR: 0:47: ' temp 2-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
+ERROR: 0:48: ' temp 3-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
+ERROR: 0:49: 'layout( column_major std430) buffer 4-component vector of uint8_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int8
+ERROR: 0:51: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
+ERROR: 0:52: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
+ERROR: 0:53: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
+ERROR: 0:54: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
+ERROR: 0:56: ' temp int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
+ERROR: 0:57: ' temp 2-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
+ERROR: 0:58: ' temp 3-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
+ERROR: 0:59: 'layout( column_major std430) buffer 4-component vector of int16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
+ERROR: 0:61: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
+ERROR: 0:62: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
+ERROR: 0:63: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
+ERROR: 0:64: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
+ERROR: 0:66: ' temp uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
+ERROR: 0:67: ' temp 2-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
+ERROR: 0:68: ' temp 3-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
+ERROR: 0:69: 'layout( column_major std430) buffer 4-component vector of uint16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int16
+ERROR: 0:71: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
+ERROR: 0:72: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
+ERROR: 0:73: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
+ERROR: 0:74: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
+ERROR: 0:76: ' temp int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
+ERROR: 0:77: ' temp 2-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
+ERROR: 0:78: ' temp 3-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
+ERROR: 0:79: 'layout( column_major std430) buffer 4-component vector of int64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
+ERROR: 0:81: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
+ERROR: 0:82: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
+ERROR: 0:83: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
+ERROR: 0:84: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
+ERROR: 0:86: ' temp uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
+ERROR: 0:87: ' temp 2-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
+ERROR: 0:88: ' temp 3-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
+ERROR: 0:89: 'layout( column_major std430) buffer 4-component vector of uint64_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_int64
+ERROR: 0:91: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
+ERROR: 0:92: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
+ERROR: 0:93: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
+ERROR: 0:94: 'layout( column_major std430) buffer highp 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
+ERROR: 0:96: ' temp highp float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
+ERROR: 0:97: ' temp highp 2-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
+ERROR: 0:98: ' temp highp 3-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
+ERROR: 0:99: 'layout( column_major std430) buffer highp 4-component vector of float16_t' : required extension not requested: GL_EXT_shader_subgroup_extended_types_float16
+ERROR: 56 compilation errors.  No code generated.
+
+
+SPIR-V is not generated for failed compile or link
diff --git a/Test/baseResults/spv.subgroupRotate.comp.out b/Test/baseResults/spv.subgroupRotate.comp.out
new file mode 100644
index 0000000..9c87ba6
--- /dev/null
+++ b/Test/baseResults/spv.subgroupRotate.comp.out
@@ -0,0 +1,528 @@
+spv.subgroupRotate.comp
+// Module Version 10300
+// Generated by (magic number): 8000b
+// Id's are bound by 418
+
+                              Capability Shader
+                              Capability Float64
+                              Capability CapabilityGroupNonUniformRotateKHR
+                              Extension  "SPV_KHR_subgroup_rotate"
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint GLCompute 4  "main"
+                              ExecutionMode 4 LocalSize 8 8 1
+                              Source GLSL 450
+                              SourceExtension  "GL_KHR_shader_subgroup_rotate"
+                              Name 4  "main"
+                              Name 8  "delta"
+                              Name 9  "roblock"
+                              MemberName 9(roblock) 0  "delta"
+                              Name 11  "ro"
+                              Name 23  "Buffers"
+                              MemberName 23(Buffers) 0  "f4"
+                              MemberName 23(Buffers) 1  "i4"
+                              MemberName 23(Buffers) 2  "u4"
+                              MemberName 23(Buffers) 3  "d4"
+                              Name 27  "data"
+                              MemberDecorate 9(roblock) 0 NonWritable
+                              MemberDecorate 9(roblock) 0 Offset 0
+                              Decorate 9(roblock) Block
+                              Decorate 11(ro) DescriptorSet 0
+                              Decorate 11(ro) Binding 1
+                              MemberDecorate 23(Buffers) 0 Offset 0
+                              MemberDecorate 23(Buffers) 1 Offset 16
+                              MemberDecorate 23(Buffers) 2 Offset 32
+                              MemberDecorate 23(Buffers) 3 Offset 64
+                              Decorate 23(Buffers) Block
+                              Decorate 27(data) DescriptorSet 0
+                              Decorate 27(data) Binding 0
+                              Decorate 417 BuiltIn WorkgroupSize
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 0
+               7:             TypePointer Function 6(int)
+      9(roblock):             TypeStruct 6(int)
+              10:             TypePointer StorageBuffer 9(roblock)
+          11(ro):     10(ptr) Variable StorageBuffer
+              12:             TypeInt 32 1
+              13:     12(int) Constant 0
+              14:             TypePointer StorageBuffer 6(int)
+              17:             TypeFloat 32
+              18:             TypeVector 17(float) 4
+              19:             TypeVector 12(int) 4
+              20:             TypeVector 6(int) 4
+              21:             TypeFloat 64
+              22:             TypeVector 21(float64_t) 4
+     23(Buffers):             TypeStruct 18(fvec4) 19(ivec4) 20(ivec4) 22(f64vec4)
+              24:      6(int) Constant 4
+              25:             TypeArray 23(Buffers) 24
+              26:             TypePointer StorageBuffer 25
+        27(data):     26(ptr) Variable StorageBuffer
+              29:      6(int) Constant 0
+              30:             TypePointer StorageBuffer 17(float)
+              34:      6(int) Constant 3
+              38:     12(int) Constant 1
+              39:             TypeVector 17(float) 2
+              40:             TypePointer StorageBuffer 18(fvec4)
+              48:      6(int) Constant 1
+              52:     12(int) Constant 2
+              53:             TypeVector 17(float) 3
+              63:      6(int) Constant 2
+              67:     12(int) Constant 3
+              74:             TypePointer StorageBuffer 12(int)
+              81:             TypeVector 12(int) 2
+              82:             TypePointer StorageBuffer 19(ivec4)
+              93:             TypeVector 12(int) 3
+             118:             TypeVector 6(int) 2
+             119:             TypePointer StorageBuffer 20(ivec4)
+             130:             TypeVector 6(int) 3
+             149:             TypePointer StorageBuffer 21(float64_t)
+             156:             TypeVector 21(float64_t) 2
+             157:             TypePointer StorageBuffer 22(f64vec4)
+             168:             TypeVector 21(float64_t) 3
+             189:             TypeBool
+             199:   81(ivec2) ConstantComposite 13 13
+             200:             TypeVector 189(bool) 2
+             204:   81(ivec2) ConstantComposite 38 38
+             214:   93(ivec3) ConstantComposite 13 13 13
+             215:             TypeVector 189(bool) 3
+             219:   93(ivec3) ConstantComposite 38 38 38
+             230:   19(ivec4) ConstantComposite 13 13 13 13
+             231:             TypeVector 189(bool) 4
+             235:   19(ivec4) ConstantComposite 38 38 38 38
+             416:      6(int) Constant 8
+             417:  130(ivec3) ConstantComposite 416 416 48
+         4(main):           2 Function None 3
+               5:             Label
+        8(delta):      7(ptr) Variable Function
+              15:     14(ptr) AccessChain 11(ro) 13
+              16:      6(int) Load 15
+                              Store 8(delta) 16
+              28:      6(int) Load 8(delta)
+              31:     30(ptr) AccessChain 27(data) 13 13 29
+              32:   17(float) Load 31
+              33:      6(int) Load 8(delta)
+              35:   17(float) GroupNonUniformRotateKHR 34 32 33
+              36:     30(ptr) AccessChain 27(data) 28 13 29
+                              Store 36 35
+              37:      6(int) Load 8(delta)
+              41:     40(ptr) AccessChain 27(data) 38 13
+              42:   18(fvec4) Load 41
+              43:   39(fvec2) VectorShuffle 42 42 0 1
+              44:      6(int) Load 8(delta)
+              45:   39(fvec2) GroupNonUniformRotateKHR 34 43 44
+              46:     30(ptr) AccessChain 27(data) 37 13 29
+              47:   17(float) CompositeExtract 45 0
+                              Store 46 47
+              49:     30(ptr) AccessChain 27(data) 37 13 48
+              50:   17(float) CompositeExtract 45 1
+                              Store 49 50
+              51:      6(int) Load 8(delta)
+              54:     40(ptr) AccessChain 27(data) 52 13
+              55:   18(fvec4) Load 54
+              56:   53(fvec3) VectorShuffle 55 55 0 1 2
+              57:      6(int) Load 8(delta)
+              58:   53(fvec3) GroupNonUniformRotateKHR 34 56 57
+              59:     30(ptr) AccessChain 27(data) 51 13 29
+              60:   17(float) CompositeExtract 58 0
+                              Store 59 60
+              61:     30(ptr) AccessChain 27(data) 51 13 48
+              62:   17(float) CompositeExtract 58 1
+                              Store 61 62
+              64:     30(ptr) AccessChain 27(data) 51 13 63
+              65:   17(float) CompositeExtract 58 2
+                              Store 64 65
+              66:      6(int) Load 8(delta)
+              68:     40(ptr) AccessChain 27(data) 67 13
+              69:   18(fvec4) Load 68
+              70:      6(int) Load 8(delta)
+              71:   18(fvec4) GroupNonUniformRotateKHR 34 69 70
+              72:     40(ptr) AccessChain 27(data) 66 13
+                              Store 72 71
+              73:      6(int) Load 8(delta)
+              75:     74(ptr) AccessChain 27(data) 13 38 29
+              76:     12(int) Load 75
+              77:      6(int) Load 8(delta)
+              78:     12(int) GroupNonUniformRotateKHR 34 76 77
+              79:     74(ptr) AccessChain 27(data) 73 38 29
+                              Store 79 78
+              80:      6(int) Load 8(delta)
+              83:     82(ptr) AccessChain 27(data) 38 38
+              84:   19(ivec4) Load 83
+              85:   81(ivec2) VectorShuffle 84 84 0 1
+              86:      6(int) Load 8(delta)
+              87:   81(ivec2) GroupNonUniformRotateKHR 34 85 86
+              88:     74(ptr) AccessChain 27(data) 80 38 29
+              89:     12(int) CompositeExtract 87 0
+                              Store 88 89
+              90:     74(ptr) AccessChain 27(data) 80 38 48
+              91:     12(int) CompositeExtract 87 1
+                              Store 90 91
+              92:      6(int) Load 8(delta)
+              94:     82(ptr) AccessChain 27(data) 52 38
+              95:   19(ivec4) Load 94
+              96:   93(ivec3) VectorShuffle 95 95 0 1 2
+              97:      6(int) Load 8(delta)
+              98:   93(ivec3) GroupNonUniformRotateKHR 34 96 97
+              99:     74(ptr) AccessChain 27(data) 92 38 29
+             100:     12(int) CompositeExtract 98 0
+                              Store 99 100
+             101:     74(ptr) AccessChain 27(data) 92 38 48
+             102:     12(int) CompositeExtract 98 1
+                              Store 101 102
+             103:     74(ptr) AccessChain 27(data) 92 38 63
+             104:     12(int) CompositeExtract 98 2
+                              Store 103 104
+             105:      6(int) Load 8(delta)
+             106:     82(ptr) AccessChain 27(data) 67 38
+             107:   19(ivec4) Load 106
+             108:      6(int) Load 8(delta)
+             109:   19(ivec4) GroupNonUniformRotateKHR 34 107 108
+             110:     82(ptr) AccessChain 27(data) 105 38
+                              Store 110 109
+             111:      6(int) Load 8(delta)
+             112:     14(ptr) AccessChain 27(data) 13 52 29
+             113:      6(int) Load 112
+             114:      6(int) Load 8(delta)
+             115:      6(int) GroupNonUniformRotateKHR 34 113 114
+             116:     14(ptr) AccessChain 27(data) 111 52 29
+                              Store 116 115
+             117:      6(int) Load 8(delta)
+             120:    119(ptr) AccessChain 27(data) 38 52
+             121:   20(ivec4) Load 120
+             122:  118(ivec2) VectorShuffle 121 121 0 1
+             123:      6(int) Load 8(delta)
+             124:  118(ivec2) GroupNonUniformRotateKHR 34 122 123
+             125:     14(ptr) AccessChain 27(data) 117 52 29
+             126:      6(int) CompositeExtract 124 0
+                              Store 125 126
+             127:     14(ptr) AccessChain 27(data) 117 52 48
+             128:      6(int) CompositeExtract 124 1
+                              Store 127 128
+             129:      6(int) Load 8(delta)
+             131:    119(ptr) AccessChain 27(data) 52 52
+             132:   20(ivec4) Load 131
+             133:  130(ivec3) VectorShuffle 132 132 0 1 2
+             134:      6(int) Load 8(delta)
+             135:  130(ivec3) GroupNonUniformRotateKHR 34 133 134
+             136:     14(ptr) AccessChain 27(data) 129 52 29
+             137:      6(int) CompositeExtract 135 0
+                              Store 136 137
+             138:     14(ptr) AccessChain 27(data) 129 52 48
+             139:      6(int) CompositeExtract 135 1
+                              Store 138 139
+             140:     14(ptr) AccessChain 27(data) 129 52 63
+             141:      6(int) CompositeExtract 135 2
+                              Store 140 141
+             142:      6(int) Load 8(delta)
+             143:    119(ptr) AccessChain 27(data) 67 52
+             144:   20(ivec4) Load 143
+             145:      6(int) Load 8(delta)
+             146:   20(ivec4) GroupNonUniformRotateKHR 34 144 145
+             147:    119(ptr) AccessChain 27(data) 142 52
+                              Store 147 146
+             148:      6(int) Load 8(delta)
+             150:    149(ptr) AccessChain 27(data) 13 67 29
+             151:21(float64_t) Load 150
+             152:      6(int) Load 8(delta)
+             153:21(float64_t) GroupNonUniformRotateKHR 34 151 152
+             154:    149(ptr) AccessChain 27(data) 148 67 29
+                              Store 154 153
+             155:      6(int) Load 8(delta)
+             158:    157(ptr) AccessChain 27(data) 38 67
+             159: 22(f64vec4) Load 158
+             160:156(f64vec2) VectorShuffle 159 159 0 1
+             161:      6(int) Load 8(delta)
+             162:156(f64vec2) GroupNonUniformRotateKHR 34 160 161
+             163:    149(ptr) AccessChain 27(data) 155 67 29
+             164:21(float64_t) CompositeExtract 162 0
+                              Store 163 164
+             165:    149(ptr) AccessChain 27(data) 155 67 48
+             166:21(float64_t) CompositeExtract 162 1
+                              Store 165 166
+             167:      6(int) Load 8(delta)
+             169:    157(ptr) AccessChain 27(data) 52 67
+             170: 22(f64vec4) Load 169
+             171:168(f64vec3) VectorShuffle 170 170 0 1 2
+             172:      6(int) Load 8(delta)
+             173:168(f64vec3) GroupNonUniformRotateKHR 34 171 172
+             174:    149(ptr) AccessChain 27(data) 167 67 29
+             175:21(float64_t) CompositeExtract 173 0
+                              Store 174 175
+             176:    149(ptr) AccessChain 27(data) 167 67 48
+             177:21(float64_t) CompositeExtract 173 1
+                              Store 176 177
+             178:    149(ptr) AccessChain 27(data) 167 67 63
+             179:21(float64_t) CompositeExtract 173 2
+                              Store 178 179
+             180:      6(int) Load 8(delta)
+             181:    157(ptr) AccessChain 27(data) 67 67
+             182: 22(f64vec4) Load 181
+             183:      6(int) Load 8(delta)
+             184: 22(f64vec4) GroupNonUniformRotateKHR 34 182 183
+             185:    157(ptr) AccessChain 27(data) 180 67
+                              Store 185 184
+             186:      6(int) Load 8(delta)
+             187:     74(ptr) AccessChain 27(data) 13 38 29
+             188:     12(int) Load 187
+             190:   189(bool) SLessThan 188 13
+             191:      6(int) Load 8(delta)
+             192:   189(bool) GroupNonUniformRotateKHR 34 190 191
+             193:     12(int) Select 192 38 13
+             194:     74(ptr) AccessChain 27(data) 186 38 29
+                              Store 194 193
+             195:      6(int) Load 8(delta)
+             196:     82(ptr) AccessChain 27(data) 38 38
+             197:   19(ivec4) Load 196
+             198:   81(ivec2) VectorShuffle 197 197 0 1
+             201:  200(bvec2) SLessThan 198 199
+             202:      6(int) Load 8(delta)
+             203:  200(bvec2) GroupNonUniformRotateKHR 34 201 202
+             205:   81(ivec2) Select 203 204 199
+             206:     74(ptr) AccessChain 27(data) 195 38 29
+             207:     12(int) CompositeExtract 205 0
+                              Store 206 207
+             208:     74(ptr) AccessChain 27(data) 195 38 48
+             209:     12(int) CompositeExtract 205 1
+                              Store 208 209
+             210:      6(int) Load 8(delta)
+             211:     82(ptr) AccessChain 27(data) 38 38
+             212:   19(ivec4) Load 211
+             213:   93(ivec3) VectorShuffle 212 212 0 1 2
+             216:  215(bvec3) SLessThan 213 214
+             217:      6(int) Load 8(delta)
+             218:  215(bvec3) GroupNonUniformRotateKHR 34 216 217
+             220:   93(ivec3) Select 218 219 214
+             221:     74(ptr) AccessChain 27(data) 210 38 29
+             222:     12(int) CompositeExtract 220 0
+                              Store 221 222
+             223:     74(ptr) AccessChain 27(data) 210 38 48
+             224:     12(int) CompositeExtract 220 1
+                              Store 223 224
+             225:     74(ptr) AccessChain 27(data) 210 38 63
+             226:     12(int) CompositeExtract 220 2
+                              Store 225 226
+             227:      6(int) Load 8(delta)
+             228:     82(ptr) AccessChain 27(data) 38 38
+             229:   19(ivec4) Load 228
+             232:  231(bvec4) SLessThan 229 230
+             233:      6(int) Load 8(delta)
+             234:  231(bvec4) GroupNonUniformRotateKHR 34 232 233
+             236:   19(ivec4) Select 234 235 230
+             237:     82(ptr) AccessChain 27(data) 227 38
+                              Store 237 236
+             238:      6(int) Load 8(delta)
+             239:     30(ptr) AccessChain 27(data) 13 13 29
+             240:   17(float) Load 239
+             241:      6(int) Load 8(delta)
+             242:   17(float) GroupNonUniformRotateKHR 34 240 241 48
+             243:     30(ptr) AccessChain 27(data) 238 13 29
+                              Store 243 242
+             244:      6(int) Load 8(delta)
+             245:     40(ptr) AccessChain 27(data) 38 13
+             246:   18(fvec4) Load 245
+             247:   39(fvec2) VectorShuffle 246 246 0 1
+             248:      6(int) Load 8(delta)
+             249:   39(fvec2) GroupNonUniformRotateKHR 34 247 248 48
+             250:     30(ptr) AccessChain 27(data) 244 13 29
+             251:   17(float) CompositeExtract 249 0
+                              Store 250 251
+             252:     30(ptr) AccessChain 27(data) 244 13 48
+             253:   17(float) CompositeExtract 249 1
+                              Store 252 253
+             254:      6(int) Load 8(delta)
+             255:     40(ptr) AccessChain 27(data) 52 13
+             256:   18(fvec4) Load 255
+             257:   53(fvec3) VectorShuffle 256 256 0 1 2
+             258:      6(int) Load 8(delta)
+             259:   53(fvec3) GroupNonUniformRotateKHR 34 257 258 48
+             260:     30(ptr) AccessChain 27(data) 254 13 29
+             261:   17(float) CompositeExtract 259 0
+                              Store 260 261
+             262:     30(ptr) AccessChain 27(data) 254 13 48
+             263:   17(float) CompositeExtract 259 1
+                              Store 262 263
+             264:     30(ptr) AccessChain 27(data) 254 13 63
+             265:   17(float) CompositeExtract 259 2
+                              Store 264 265
+             266:      6(int) Load 8(delta)
+             267:     40(ptr) AccessChain 27(data) 67 13
+             268:   18(fvec4) Load 267
+             269:      6(int) Load 8(delta)
+             270:   18(fvec4) GroupNonUniformRotateKHR 34 268 269 48
+             271:     40(ptr) AccessChain 27(data) 266 13
+                              Store 271 270
+             272:      6(int) Load 8(delta)
+             273:     74(ptr) AccessChain 27(data) 13 38 29
+             274:     12(int) Load 273
+             275:      6(int) Load 8(delta)
+             276:     12(int) GroupNonUniformRotateKHR 34 274 275 48
+             277:     74(ptr) AccessChain 27(data) 272 38 29
+                              Store 277 276
+             278:      6(int) Load 8(delta)
+             279:     82(ptr) AccessChain 27(data) 38 38
+             280:   19(ivec4) Load 279
+             281:   81(ivec2) VectorShuffle 280 280 0 1
+             282:      6(int) Load 8(delta)
+             283:   81(ivec2) GroupNonUniformRotateKHR 34 281 282 48
+             284:     74(ptr) AccessChain 27(data) 278 38 29
+             285:     12(int) CompositeExtract 283 0
+                              Store 284 285
+             286:     74(ptr) AccessChain 27(data) 278 38 48
+             287:     12(int) CompositeExtract 283 1
+                              Store 286 287
+             288:      6(int) Load 8(delta)
+             289:     82(ptr) AccessChain 27(data) 52 38
+             290:   19(ivec4) Load 289
+             291:   93(ivec3) VectorShuffle 290 290 0 1 2
+             292:      6(int) Load 8(delta)
+             293:   93(ivec3) GroupNonUniformRotateKHR 34 291 292 48
+             294:     74(ptr) AccessChain 27(data) 288 38 29
+             295:     12(int) CompositeExtract 293 0
+                              Store 294 295
+             296:     74(ptr) AccessChain 27(data) 288 38 48
+             297:     12(int) CompositeExtract 293 1
+                              Store 296 297
+             298:     74(ptr) AccessChain 27(data) 288 38 63
+             299:     12(int) CompositeExtract 293 2
+                              Store 298 299
+             300:      6(int) Load 8(delta)
+             301:     82(ptr) AccessChain 27(data) 67 38
+             302:   19(ivec4) Load 301
+             303:      6(int) Load 8(delta)
+             304:   19(ivec4) GroupNonUniformRotateKHR 34 302 303 48
+             305:     82(ptr) AccessChain 27(data) 300 38
+                              Store 305 304
+             306:      6(int) Load 8(delta)
+             307:     14(ptr) AccessChain 27(data) 13 52 29
+             308:      6(int) Load 307
+             309:      6(int) Load 8(delta)
+             310:      6(int) GroupNonUniformRotateKHR 34 308 309 48
+             311:     14(ptr) AccessChain 27(data) 306 52 29
+                              Store 311 310
+             312:      6(int) Load 8(delta)
+             313:    119(ptr) AccessChain 27(data) 38 52
+             314:   20(ivec4) Load 313
+             315:  118(ivec2) VectorShuffle 314 314 0 1
+             316:      6(int) Load 8(delta)
+             317:  118(ivec2) GroupNonUniformRotateKHR 34 315 316 48
+             318:     14(ptr) AccessChain 27(data) 312 52 29
+             319:      6(int) CompositeExtract 317 0
+                              Store 318 319
+             320:     14(ptr) AccessChain 27(data) 312 52 48
+             321:      6(int) CompositeExtract 317 1
+                              Store 320 321
+             322:      6(int) Load 8(delta)
+             323:    119(ptr) AccessChain 27(data) 52 52
+             324:   20(ivec4) Load 323
+             325:  130(ivec3) VectorShuffle 324 324 0 1 2
+             326:      6(int) Load 8(delta)
+             327:  130(ivec3) GroupNonUniformRotateKHR 34 325 326 48
+             328:     14(ptr) AccessChain 27(data) 322 52 29
+             329:      6(int) CompositeExtract 327 0
+                              Store 328 329
+             330:     14(ptr) AccessChain 27(data) 322 52 48
+             331:      6(int) CompositeExtract 327 1
+                              Store 330 331
+             332:     14(ptr) AccessChain 27(data) 322 52 63
+             333:      6(int) CompositeExtract 327 2
+                              Store 332 333
+             334:      6(int) Load 8(delta)
+             335:    119(ptr) AccessChain 27(data) 67 52
+             336:   20(ivec4) Load 335
+             337:      6(int) Load 8(delta)
+             338:   20(ivec4) GroupNonUniformRotateKHR 34 336 337 48
+             339:    119(ptr) AccessChain 27(data) 334 52
+                              Store 339 338
+             340:      6(int) Load 8(delta)
+             341:    149(ptr) AccessChain 27(data) 13 67 29
+             342:21(float64_t) Load 341
+             343:      6(int) Load 8(delta)
+             344:21(float64_t) GroupNonUniformRotateKHR 34 342 343 48
+             345:    149(ptr) AccessChain 27(data) 340 67 29
+                              Store 345 344
+             346:      6(int) Load 8(delta)
+             347:    157(ptr) AccessChain 27(data) 38 67
+             348: 22(f64vec4) Load 347
+             349:156(f64vec2) VectorShuffle 348 348 0 1
+             350:      6(int) Load 8(delta)
+             351:156(f64vec2) GroupNonUniformRotateKHR 34 349 350 48
+             352:    149(ptr) AccessChain 27(data) 346 67 29
+             353:21(float64_t) CompositeExtract 351 0
+                              Store 352 353
+             354:    149(ptr) AccessChain 27(data) 346 67 48
+             355:21(float64_t) CompositeExtract 351 1
+                              Store 354 355
+             356:      6(int) Load 8(delta)
+             357:    157(ptr) AccessChain 27(data) 52 67
+             358: 22(f64vec4) Load 357
+             359:168(f64vec3) VectorShuffle 358 358 0 1 2
+             360:      6(int) Load 8(delta)
+             361:168(f64vec3) GroupNonUniformRotateKHR 34 359 360 48
+             362:    149(ptr) AccessChain 27(data) 356 67 29
+             363:21(float64_t) CompositeExtract 361 0
+                              Store 362 363
+             364:    149(ptr) AccessChain 27(data) 356 67 48
+             365:21(float64_t) CompositeExtract 361 1
+                              Store 364 365
+             366:    149(ptr) AccessChain 27(data) 356 67 63
+             367:21(float64_t) CompositeExtract 361 2
+                              Store 366 367
+             368:      6(int) Load 8(delta)
+             369:    157(ptr) AccessChain 27(data) 67 67
+             370: 22(f64vec4) Load 369
+             371:      6(int) Load 8(delta)
+             372: 22(f64vec4) GroupNonUniformRotateKHR 34 370 371 48
+             373:    157(ptr) AccessChain 27(data) 368 67
+                              Store 373 372
+             374:      6(int) Load 8(delta)
+             375:     74(ptr) AccessChain 27(data) 13 38 29
+             376:     12(int) Load 375
+             377:   189(bool) SLessThan 376 13
+             378:      6(int) Load 8(delta)
+             379:   189(bool) GroupNonUniformRotateKHR 34 377 378 48
+             380:     12(int) Select 379 38 13
+             381:     74(ptr) AccessChain 27(data) 374 38 29
+                              Store 381 380
+             382:      6(int) Load 8(delta)
+             383:     82(ptr) AccessChain 27(data) 38 38
+             384:   19(ivec4) Load 383
+             385:   81(ivec2) VectorShuffle 384 384 0 1
+             386:  200(bvec2) SLessThan 385 199
+             387:      6(int) Load 8(delta)
+             388:  200(bvec2) GroupNonUniformRotateKHR 34 386 387 48
+             389:   81(ivec2) Select 388 204 199
+             390:     74(ptr) AccessChain 27(data) 382 38 29
+             391:     12(int) CompositeExtract 389 0
+                              Store 390 391
+             392:     74(ptr) AccessChain 27(data) 382 38 48
+             393:     12(int) CompositeExtract 389 1
+                              Store 392 393
+             394:      6(int) Load 8(delta)
+             395:     82(ptr) AccessChain 27(data) 38 38
+             396:   19(ivec4) Load 395
+             397:   93(ivec3) VectorShuffle 396 396 0 1 2
+             398:  215(bvec3) SLessThan 397 214
+             399:      6(int) Load 8(delta)
+             400:  215(bvec3) GroupNonUniformRotateKHR 34 398 399 48
+             401:   93(ivec3) Select 400 219 214
+             402:     74(ptr) AccessChain 27(data) 394 38 29
+             403:     12(int) CompositeExtract 401 0
+                              Store 402 403
+             404:     74(ptr) AccessChain 27(data) 394 38 48
+             405:     12(int) CompositeExtract 401 1
+                              Store 404 405
+             406:     74(ptr) AccessChain 27(data) 394 38 63
+             407:     12(int) CompositeExtract 401 2
+                              Store 406 407
+             408:      6(int) Load 8(delta)
+             409:     82(ptr) AccessChain 27(data) 38 38
+             410:   19(ivec4) Load 409
+             411:  231(bvec4) SLessThan 410 230
+             412:      6(int) Load 8(delta)
+             413:  231(bvec4) GroupNonUniformRotateKHR 34 411 412 48
+             414:   19(ivec4) Select 413 235 230
+             415:     82(ptr) AccessChain 27(data) 408 38
+                              Store 415 414
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.tpipBlockMatchSAD.frag.out b/Test/baseResults/spv.tpipBlockMatchSAD.frag.out
new file mode 100644
index 0000000..a807d92
--- /dev/null
+++ b/Test/baseResults/spv.tpipBlockMatchSAD.frag.out
@@ -0,0 +1,123 @@
+spv.tpipBlockMatchSAD.frag
+// Module Version 10000
+// Generated by (magic number): 8000b
+// Id's are bound by 72
+
+                              Capability Shader
+                              Capability TextureBlockMatchQCOM
+                              Extension  "SPV_QCOM_image_processing"
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 13 41
+                              ExecutionMode 4 OriginUpperLeft
+                              Source GLSL 450
+                              SourceExtension  "GL_QCOM_image_processing"
+                              Name 4  "main"
+                              Name 9  "tgt_coords"
+                              Name 13  "v_texcoord"
+                              Name 26  "ref_coords"
+                              Name 37  "blockSize"
+                              Name 41  "fragColor"
+                              Name 44  "tex2D_src1"
+                              Name 48  "samp"
+                              Name 53  "tex2D_src2"
+                              Name 61  "target_samp"
+                              Name 64  "ref_samp"
+                              Name 71  "tex2DArray_weights"
+                              Decorate 13(v_texcoord) Location 0
+                              Decorate 41(fragColor) Location 0
+                              Decorate 44(tex2D_src1) DescriptorSet 0
+                              Decorate 44(tex2D_src1) Binding 1
+                              Decorate 48(samp) DescriptorSet 0
+                              Decorate 48(samp) Binding 3
+                              Decorate 53(tex2D_src2) DescriptorSet 0
+                              Decorate 53(tex2D_src2) Binding 2
+                              Decorate 44(tex2D_src1) DecorationBlockMatchTextureQCOM
+                              Decorate 53(tex2D_src2) DecorationBlockMatchTextureQCOM
+                              Decorate 61(target_samp) DescriptorSet 0
+                              Decorate 61(target_samp) Binding 4
+                              Decorate 64(ref_samp) DescriptorSet 0
+                              Decorate 64(ref_samp) Binding 5
+                              Decorate 61(target_samp) DecorationBlockMatchTextureQCOM
+                              Decorate 64(ref_samp) DecorationBlockMatchTextureQCOM
+                              Decorate 71(tex2DArray_weights) DescriptorSet 0
+                              Decorate 71(tex2DArray_weights) Binding 0
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 0
+               7:             TypeVector 6(int) 2
+               8:             TypePointer Function 7(ivec2)
+              10:             TypeFloat 32
+              11:             TypeVector 10(float) 4
+              12:             TypePointer Input 11(fvec4)
+  13(v_texcoord):     12(ptr) Variable Input
+              14:      6(int) Constant 0
+              15:             TypePointer Input 10(float)
+              19:             TypePointer Function 6(int)
+              21:      6(int) Constant 1
+              27:      6(int) Constant 2
+              32:      6(int) Constant 3
+              38:      6(int) Constant 4
+              39:    7(ivec2) ConstantComposite 38 38
+              40:             TypePointer Output 11(fvec4)
+   41(fragColor):     40(ptr) Variable Output
+              42:             TypeImage 10(float) 2D sampled format:Unknown
+              43:             TypePointer UniformConstant 42
+  44(tex2D_src1):     43(ptr) Variable UniformConstant
+              46:             TypeSampler
+              47:             TypePointer UniformConstant 46
+        48(samp):     47(ptr) Variable UniformConstant
+              50:             TypeSampledImage 42
+  53(tex2D_src2):     43(ptr) Variable UniformConstant
+              60:             TypePointer UniformConstant 50
+ 61(target_samp):     60(ptr) Variable UniformConstant
+    64(ref_samp):     60(ptr) Variable UniformConstant
+              69:             TypeImage 10(float) 2D array sampled format:Unknown
+              70:             TypePointer UniformConstant 69
+71(tex2DArray_weights):     70(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+   9(tgt_coords):      8(ptr) Variable Function
+  26(ref_coords):      8(ptr) Variable Function
+   37(blockSize):      8(ptr) Variable Function
+              16:     15(ptr) AccessChain 13(v_texcoord) 14
+              17:   10(float) Load 16
+              18:      6(int) ConvertFToU 17
+              20:     19(ptr) AccessChain 9(tgt_coords) 14
+                              Store 20 18
+              22:     15(ptr) AccessChain 13(v_texcoord) 21
+              23:   10(float) Load 22
+              24:      6(int) ConvertFToU 23
+              25:     19(ptr) AccessChain 9(tgt_coords) 14
+                              Store 25 24
+              28:     15(ptr) AccessChain 13(v_texcoord) 27
+              29:   10(float) Load 28
+              30:      6(int) ConvertFToU 29
+              31:     19(ptr) AccessChain 26(ref_coords) 14
+                              Store 31 30
+              33:     15(ptr) AccessChain 13(v_texcoord) 32
+              34:   10(float) Load 33
+              35:      6(int) ConvertFToU 34
+              36:     19(ptr) AccessChain 26(ref_coords) 21
+                              Store 36 35
+                              Store 37(blockSize) 39
+              45:          42 Load 44(tex2D_src1)
+              49:          46 Load 48(samp)
+              51:          50 SampledImage 45 49
+              52:    7(ivec2) Load 9(tgt_coords)
+              54:          42 Load 53(tex2D_src2)
+              55:          46 Load 48(samp)
+              56:          50 SampledImage 54 55
+              57:    7(ivec2) Load 26(ref_coords)
+              58:    7(ivec2) Load 37(blockSize)
+              59:   11(fvec4) ImageBlockMatchSADQCOM 51 52 56 57 58
+                              Store 41(fragColor) 59
+              62:          50 Load 61(target_samp)
+              63:    7(ivec2) Load 9(tgt_coords)
+              65:          50 Load 64(ref_samp)
+              66:    7(ivec2) Load 26(ref_coords)
+              67:    7(ivec2) Load 37(blockSize)
+              68:   11(fvec4) ImageBlockMatchSADQCOM 62 63 65 66 67
+                              Store 41(fragColor) 68
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.tpipBlockMatchSSD.frag.out b/Test/baseResults/spv.tpipBlockMatchSSD.frag.out
new file mode 100644
index 0000000..e7ac73b
--- /dev/null
+++ b/Test/baseResults/spv.tpipBlockMatchSSD.frag.out
@@ -0,0 +1,123 @@
+spv.tpipBlockMatchSSD.frag
+// Module Version 10000
+// Generated by (magic number): 8000b
+// Id's are bound by 72
+
+                              Capability Shader
+                              Capability TextureBlockMatchQCOM
+                              Extension  "SPV_QCOM_image_processing"
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 13 41
+                              ExecutionMode 4 OriginUpperLeft
+                              Source GLSL 450
+                              SourceExtension  "GL_QCOM_image_processing"
+                              Name 4  "main"
+                              Name 9  "tgt_coords"
+                              Name 13  "v_texcoord"
+                              Name 26  "ref_coords"
+                              Name 37  "blockSize"
+                              Name 41  "fragColor"
+                              Name 44  "tex2D_src1"
+                              Name 48  "samp"
+                              Name 53  "tex2D_src2"
+                              Name 61  "target_samp"
+                              Name 64  "ref_samp"
+                              Name 71  "tex2DArray_weights"
+                              Decorate 13(v_texcoord) Location 0
+                              Decorate 41(fragColor) Location 0
+                              Decorate 44(tex2D_src1) DescriptorSet 0
+                              Decorate 44(tex2D_src1) Binding 1
+                              Decorate 48(samp) DescriptorSet 0
+                              Decorate 48(samp) Binding 3
+                              Decorate 53(tex2D_src2) DescriptorSet 0
+                              Decorate 53(tex2D_src2) Binding 2
+                              Decorate 44(tex2D_src1) DecorationBlockMatchTextureQCOM
+                              Decorate 53(tex2D_src2) DecorationBlockMatchTextureQCOM
+                              Decorate 61(target_samp) DescriptorSet 0
+                              Decorate 61(target_samp) Binding 4
+                              Decorate 64(ref_samp) DescriptorSet 0
+                              Decorate 64(ref_samp) Binding 5
+                              Decorate 61(target_samp) DecorationBlockMatchTextureQCOM
+                              Decorate 64(ref_samp) DecorationBlockMatchTextureQCOM
+                              Decorate 71(tex2DArray_weights) DescriptorSet 0
+                              Decorate 71(tex2DArray_weights) Binding 0
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 0
+               7:             TypeVector 6(int) 2
+               8:             TypePointer Function 7(ivec2)
+              10:             TypeFloat 32
+              11:             TypeVector 10(float) 4
+              12:             TypePointer Input 11(fvec4)
+  13(v_texcoord):     12(ptr) Variable Input
+              14:      6(int) Constant 0
+              15:             TypePointer Input 10(float)
+              19:             TypePointer Function 6(int)
+              21:      6(int) Constant 1
+              27:      6(int) Constant 2
+              32:      6(int) Constant 3
+              38:      6(int) Constant 4
+              39:    7(ivec2) ConstantComposite 38 38
+              40:             TypePointer Output 11(fvec4)
+   41(fragColor):     40(ptr) Variable Output
+              42:             TypeImage 10(float) 2D sampled format:Unknown
+              43:             TypePointer UniformConstant 42
+  44(tex2D_src1):     43(ptr) Variable UniformConstant
+              46:             TypeSampler
+              47:             TypePointer UniformConstant 46
+        48(samp):     47(ptr) Variable UniformConstant
+              50:             TypeSampledImage 42
+  53(tex2D_src2):     43(ptr) Variable UniformConstant
+              60:             TypePointer UniformConstant 50
+ 61(target_samp):     60(ptr) Variable UniformConstant
+    64(ref_samp):     60(ptr) Variable UniformConstant
+              69:             TypeImage 10(float) 2D array sampled format:Unknown
+              70:             TypePointer UniformConstant 69
+71(tex2DArray_weights):     70(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+   9(tgt_coords):      8(ptr) Variable Function
+  26(ref_coords):      8(ptr) Variable Function
+   37(blockSize):      8(ptr) Variable Function
+              16:     15(ptr) AccessChain 13(v_texcoord) 14
+              17:   10(float) Load 16
+              18:      6(int) ConvertFToU 17
+              20:     19(ptr) AccessChain 9(tgt_coords) 14
+                              Store 20 18
+              22:     15(ptr) AccessChain 13(v_texcoord) 21
+              23:   10(float) Load 22
+              24:      6(int) ConvertFToU 23
+              25:     19(ptr) AccessChain 9(tgt_coords) 14
+                              Store 25 24
+              28:     15(ptr) AccessChain 13(v_texcoord) 27
+              29:   10(float) Load 28
+              30:      6(int) ConvertFToU 29
+              31:     19(ptr) AccessChain 26(ref_coords) 14
+                              Store 31 30
+              33:     15(ptr) AccessChain 13(v_texcoord) 32
+              34:   10(float) Load 33
+              35:      6(int) ConvertFToU 34
+              36:     19(ptr) AccessChain 26(ref_coords) 21
+                              Store 36 35
+                              Store 37(blockSize) 39
+              45:          42 Load 44(tex2D_src1)
+              49:          46 Load 48(samp)
+              51:          50 SampledImage 45 49
+              52:    7(ivec2) Load 9(tgt_coords)
+              54:          42 Load 53(tex2D_src2)
+              55:          46 Load 48(samp)
+              56:          50 SampledImage 54 55
+              57:    7(ivec2) Load 26(ref_coords)
+              58:    7(ivec2) Load 37(blockSize)
+              59:   11(fvec4) ImageBlockMatchSSDQCOM 51 52 56 57 58
+                              Store 41(fragColor) 59
+              62:          50 Load 61(target_samp)
+              63:    7(ivec2) Load 9(tgt_coords)
+              65:          50 Load 64(ref_samp)
+              66:    7(ivec2) Load 26(ref_coords)
+              67:    7(ivec2) Load 37(blockSize)
+              68:   11(fvec4) ImageBlockMatchSSDQCOM 62 63 65 66 67
+                              Store 41(fragColor) 68
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.tpipBoxFilter.frag.out b/Test/baseResults/spv.tpipBoxFilter.frag.out
new file mode 100644
index 0000000..5620a81
--- /dev/null
+++ b/Test/baseResults/spv.tpipBoxFilter.frag.out
@@ -0,0 +1,81 @@
+spv.tpipBoxFilter.frag
+// Module Version 10000
+// Generated by (magic number): 8000b
+// Id's are bound by 43
+
+                              Capability Shader
+                              Capability TextureBoxFilterQCOM
+                              Extension  "SPV_QCOM_image_processing"
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 15 27
+                              ExecutionMode 4 OriginUpperLeft
+                              Source GLSL 450
+                              SourceExtension  "GL_QCOM_image_processing"
+                              Name 4  "main"
+                              Name 9  "boxSize"
+                              Name 15  "fragColor"
+                              Name 18  "tex2D_src1"
+                              Name 22  "samp"
+                              Name 27  "v_texcoord"
+                              Name 33  "tex_samp"
+                              Name 41  "tex2DArray_weights"
+                              Name 42  "tex2D_src2"
+                              Decorate 15(fragColor) Location 0
+                              Decorate 18(tex2D_src1) DescriptorSet 0
+                              Decorate 18(tex2D_src1) Binding 1
+                              Decorate 22(samp) DescriptorSet 0
+                              Decorate 22(samp) Binding 3
+                              Decorate 27(v_texcoord) Location 0
+                              Decorate 33(tex_samp) DescriptorSet 0
+                              Decorate 33(tex_samp) Binding 4
+                              Decorate 41(tex2DArray_weights) DescriptorSet 0
+                              Decorate 41(tex2DArray_weights) Binding 0
+                              Decorate 42(tex2D_src2) DescriptorSet 0
+                              Decorate 42(tex2D_src2) Binding 2
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 2
+               8:             TypePointer Function 7(fvec2)
+              10:    6(float) Constant 1075838976
+              11:    6(float) Constant 1083179008
+              12:    7(fvec2) ConstantComposite 10 11
+              13:             TypeVector 6(float) 4
+              14:             TypePointer Output 13(fvec4)
+   15(fragColor):     14(ptr) Variable Output
+              16:             TypeImage 6(float) 2D sampled format:Unknown
+              17:             TypePointer UniformConstant 16
+  18(tex2D_src1):     17(ptr) Variable UniformConstant
+              20:             TypeSampler
+              21:             TypePointer UniformConstant 20
+        22(samp):     21(ptr) Variable UniformConstant
+              24:             TypeSampledImage 16
+              26:             TypePointer Input 13(fvec4)
+  27(v_texcoord):     26(ptr) Variable Input
+              32:             TypePointer UniformConstant 24
+    33(tex_samp):     32(ptr) Variable UniformConstant
+              39:             TypeImage 6(float) 2D array sampled format:Unknown
+              40:             TypePointer UniformConstant 39
+41(tex2DArray_weights):     40(ptr) Variable UniformConstant
+  42(tex2D_src2):     17(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+      9(boxSize):      8(ptr) Variable Function
+                              Store 9(boxSize) 12
+              19:          16 Load 18(tex2D_src1)
+              23:          20 Load 22(samp)
+              25:          24 SampledImage 19 23
+              28:   13(fvec4) Load 27(v_texcoord)
+              29:    7(fvec2) VectorShuffle 28 28 0 1
+              30:    7(fvec2) Load 9(boxSize)
+              31:   13(fvec4) ImageBoxFilterQCOM 25 29 30
+                              Store 15(fragColor) 31
+              34:          24 Load 33(tex_samp)
+              35:   13(fvec4) Load 27(v_texcoord)
+              36:    7(fvec2) VectorShuffle 35 35 0 1
+              37:    7(fvec2) Load 9(boxSize)
+              38:   13(fvec4) ImageBoxFilterQCOM 34 36 37
+                              Store 15(fragColor) 38
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.tpipSampleWeighted.frag.out b/Test/baseResults/spv.tpipSampleWeighted.frag.out
new file mode 100644
index 0000000..bf10874
--- /dev/null
+++ b/Test/baseResults/spv.tpipSampleWeighted.frag.out
@@ -0,0 +1,84 @@
+spv.tpipSampleWeighted.frag
+// Module Version 10000
+// Generated by (magic number): 8000b
+// Id's are bound by 43
+
+                              Capability Shader
+                              Capability TextureSampleWeightedQCOM
+                              Extension  "SPV_QCOM_image_processing"
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 9 21
+                              ExecutionMode 4 OriginUpperLeft
+                              Source GLSL 450
+                              SourceExtension  "GL_QCOM_image_processing"
+                              Name 4  "main"
+                              Name 9  "fragColor"
+                              Name 12  "tex2D_src1"
+                              Name 16  "samp"
+                              Name 21  "v_texcoord"
+                              Name 27  "tex2DArray_weights"
+                              Name 34  "tex_samp"
+                              Name 39  "tex_samp_array"
+                              Name 42  "tex2D_src2"
+                              Decorate 9(fragColor) Location 0
+                              Decorate 12(tex2D_src1) DescriptorSet 0
+                              Decorate 12(tex2D_src1) Binding 1
+                              Decorate 16(samp) DescriptorSet 0
+                              Decorate 16(samp) Binding 3
+                              Decorate 21(v_texcoord) Location 0
+                              Decorate 27(tex2DArray_weights) DescriptorSet 0
+                              Decorate 27(tex2DArray_weights) Binding 0
+                              Decorate 27(tex2DArray_weights) DecorationWeightTextureQCOM
+                              Decorate 34(tex_samp) DescriptorSet 0
+                              Decorate 34(tex_samp) Binding 4
+                              Decorate 39(tex_samp_array) DescriptorSet 0
+                              Decorate 39(tex_samp_array) Binding 5
+                              Decorate 39(tex_samp_array) DecorationWeightTextureQCOM
+                              Decorate 42(tex2D_src2) DescriptorSet 0
+                              Decorate 42(tex2D_src2) Binding 2
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypePointer Output 7(fvec4)
+    9(fragColor):      8(ptr) Variable Output
+              10:             TypeImage 6(float) 2D sampled format:Unknown
+              11:             TypePointer UniformConstant 10
+  12(tex2D_src1):     11(ptr) Variable UniformConstant
+              14:             TypeSampler
+              15:             TypePointer UniformConstant 14
+        16(samp):     15(ptr) Variable UniformConstant
+              18:             TypeSampledImage 10
+              20:             TypePointer Input 7(fvec4)
+  21(v_texcoord):     20(ptr) Variable Input
+              22:             TypeVector 6(float) 2
+              25:             TypeImage 6(float) 2D array sampled format:Unknown
+              26:             TypePointer UniformConstant 25
+27(tex2DArray_weights):     26(ptr) Variable UniformConstant
+              30:             TypeSampledImage 25
+              33:             TypePointer UniformConstant 18
+    34(tex_samp):     33(ptr) Variable UniformConstant
+              38:             TypePointer UniformConstant 30
+39(tex_samp_array):     38(ptr) Variable UniformConstant
+  42(tex2D_src2):     11(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+              13:          10 Load 12(tex2D_src1)
+              17:          14 Load 16(samp)
+              19:          18 SampledImage 13 17
+              23:    7(fvec4) Load 21(v_texcoord)
+              24:   22(fvec2) VectorShuffle 23 23 0 1
+              28:          25 Load 27(tex2DArray_weights)
+              29:          14 Load 16(samp)
+              31:          30 SampledImage 28 29
+              32:    7(fvec4) ImageSampleWeightedQCOM 19 24 31
+                              Store 9(fragColor) 32
+              35:          18 Load 34(tex_samp)
+              36:    7(fvec4) Load 21(v_texcoord)
+              37:   22(fvec2) VectorShuffle 36 36 0 1
+              40:          30 Load 39(tex_samp_array)
+              41:    7(fvec4) ImageSampleWeightedQCOM 35 37 40
+                              Store 9(fragColor) 41
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.tpipTextureArrays.frag.out b/Test/baseResults/spv.tpipTextureArrays.frag.out
new file mode 100644
index 0000000..28b63f5
--- /dev/null
+++ b/Test/baseResults/spv.tpipTextureArrays.frag.out
@@ -0,0 +1,128 @@
+spv.tpipTextureArrays.frag
+// Module Version 10000
+// Generated by (magic number): 8000b
+// Id's are bound by 84
+
+                              Capability Shader
+                              Capability TextureBlockMatchQCOM
+                              Extension  "SPV_QCOM_image_processing"
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 13 46
+                              ExecutionMode 4 OriginUpperLeft
+                              Source GLSL 450
+                              SourceExtension  "GL_QCOM_image_processing"
+                              Name 4  "main"
+                              Name 9  "tgt_coords"
+                              Name 13  "v_texcoord"
+                              Name 26  "ref_coords"
+                              Name 37  "blockSize"
+                              Name 40  "ii"
+                              Name 46  "fragColor"
+                              Name 51  "samplers"
+                              Name 60  "tex2D_srcs"
+                              Name 67  "samp"
+                              Decorate 13(v_texcoord) Location 0
+                              Decorate 46(fragColor) Location 0
+                              Decorate 51(samplers) DescriptorSet 0
+                              Decorate 51(samplers) Binding 5
+                              Decorate 60(tex2D_srcs) DescriptorSet 0
+                              Decorate 60(tex2D_srcs) Binding 4
+                              Decorate 67(samp) DescriptorSet 0
+                              Decorate 67(samp) Binding 3
+                              Decorate 55 DecorationBlockMatchTextureQCOM
+                              Decorate 63 DecorationBlockMatchTextureQCOM
+                              Decorate 74 DecorationBlockMatchTextureQCOM
+                              Decorate 79 DecorationBlockMatchTextureQCOM
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 0
+               7:             TypeVector 6(int) 2
+               8:             TypePointer Function 7(ivec2)
+              10:             TypeFloat 32
+              11:             TypeVector 10(float) 4
+              12:             TypePointer Input 11(fvec4)
+  13(v_texcoord):     12(ptr) Variable Input
+              14:      6(int) Constant 0
+              15:             TypePointer Input 10(float)
+              19:             TypePointer Function 6(int)
+              21:      6(int) Constant 1
+              27:      6(int) Constant 2
+              32:      6(int) Constant 3
+              38:      6(int) Constant 4
+              39:    7(ivec2) ConstantComposite 38 38
+              43:      6(int) Constant 8
+              45:             TypePointer Output 11(fvec4)
+   46(fragColor):     45(ptr) Variable Output
+              47:             TypeImage 10(float) 2D sampled format:Unknown
+              48:             TypeSampledImage 47
+              49:             TypeArray 48 32
+              50:             TypePointer UniformConstant 49
+    51(samplers):     50(ptr) Variable UniformConstant
+              52:             TypeInt 32 1
+              53:     52(int) Constant 0
+              54:             TypePointer UniformConstant 48
+              58:             TypeArray 47 43
+              59:             TypePointer UniformConstant 58
+  60(tex2D_srcs):     59(ptr) Variable UniformConstant
+              62:             TypePointer UniformConstant 47
+              65:             TypeSampler
+              66:             TypePointer UniformConstant 65
+        67(samp):     66(ptr) Variable UniformConstant
+              73:     52(int) Constant 1
+         4(main):           2 Function None 3
+               5:             Label
+   9(tgt_coords):      8(ptr) Variable Function
+  26(ref_coords):      8(ptr) Variable Function
+   37(blockSize):      8(ptr) Variable Function
+          40(ii):     19(ptr) Variable Function
+              16:     15(ptr) AccessChain 13(v_texcoord) 14
+              17:   10(float) Load 16
+              18:      6(int) ConvertFToU 17
+              20:     19(ptr) AccessChain 9(tgt_coords) 14
+                              Store 20 18
+              22:     15(ptr) AccessChain 13(v_texcoord) 21
+              23:   10(float) Load 22
+              24:      6(int) ConvertFToU 23
+              25:     19(ptr) AccessChain 9(tgt_coords) 14
+                              Store 25 24
+              28:     15(ptr) AccessChain 13(v_texcoord) 27
+              29:   10(float) Load 28
+              30:      6(int) ConvertFToU 29
+              31:     19(ptr) AccessChain 26(ref_coords) 14
+                              Store 31 30
+              33:     15(ptr) AccessChain 13(v_texcoord) 32
+              34:   10(float) Load 33
+              35:      6(int) ConvertFToU 34
+              36:     19(ptr) AccessChain 26(ref_coords) 21
+                              Store 36 35
+                              Store 37(blockSize) 39
+              41:     19(ptr) AccessChain 9(tgt_coords) 14
+              42:      6(int) Load 41
+              44:      6(int) UMod 42 43
+                              Store 40(ii) 44
+              55:     54(ptr) AccessChain 51(samplers) 53
+              56:          48 Load 55
+              57:    7(ivec2) Load 9(tgt_coords)
+              61:      6(int) Load 40(ii)
+              63:     62(ptr) AccessChain 60(tex2D_srcs) 61
+              64:          47 Load 63
+              68:          65 Load 67(samp)
+              69:          48 SampledImage 64 68
+              70:    7(ivec2) Load 26(ref_coords)
+              71:    7(ivec2) Load 37(blockSize)
+              72:   11(fvec4) ImageBlockMatchSSDQCOM 56 57 69 70 71
+                              Store 46(fragColor) 72
+              74:     62(ptr) AccessChain 60(tex2D_srcs) 73
+              75:          47 Load 74
+              76:          65 Load 67(samp)
+              77:          48 SampledImage 75 76
+              78:    7(ivec2) Load 9(tgt_coords)
+              79:     54(ptr) AccessChain 51(samplers) 73
+              80:          48 Load 79
+              81:    7(ivec2) Load 26(ref_coords)
+              82:    7(ivec2) Load 37(blockSize)
+              83:   11(fvec4) ImageBlockMatchSADQCOM 77 78 80 81 82
+                              Store 46(fragColor) 83
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/tokenLength.vert.out b/Test/baseResults/tokenLength.vert.out
index 5f10830..43f3534 100644
--- a/Test/baseResults/tokenLength.vert.out
+++ b/Test/baseResults/tokenLength.vert.out
@@ -16,10 +16,10 @@
 WARNING: 0:40: '#extension' : extension not supported: a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhooooooooooooooooooooooooooooooohhhhhhhhhhhhhhhhh01234
 ERROR: 0:43: '' : name too long 
 ERROR: 0:44: '#extension' : ':' missing after extension name 
-ERROR: 0:47: '#error' : in long non - zero # if  
-ERROR: 0:50: '#error' : in long zero # if  
+ERROR: 0:47: '#error' : in long non - zero if  
+ERROR: 0:50: '#error' : in long zero if  
 ERROR: 0:52: '' : numeric literal too long 
-ERROR: 0:53: '#error' : in too long # if  
+ERROR: 0:53: '#error' : in too long if  
 ERROR: 0:56: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
 ERROR: 0:59: 'preprocessor evaluation' : undefined macro in expression not allowed in es profile A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
 ERROR: 0:62: '' : name too long 
diff --git a/Test/baseResults/vk.relaxed.errorcheck.vert.out b/Test/baseResults/vk.relaxed.errorcheck.vert.out
index 5c6ecf9..24cf3ef 100644
--- a/Test/baseResults/vk.relaxed.errorcheck.vert.out
+++ b/Test/baseResults/vk.relaxed.errorcheck.vert.out
@@ -32,29 +32,39 @@
 0:?     'gl_InstanceIndex' ( in int InstanceIndex)
 
 vk.relaxed.errorcheck.frag
+ERROR: 0:11: 'test' :  Redeclaration: already declared as " uniform highp float"
+ERROR: 1 compilation errors.  No code generated.
+
+
 Shader version: 460
 gl_FragCoord origin is upper left
-0:? Sequence
-0:10  Function Definition: foo( ( global highp 4-component vector of float)
-0:10    Function Parameters: 
-0:11    Sequence
-0:11      Branch: Return with expression
-0:11        a: direct index for structure ( uniform highp 4-component vector of float)
-0:11          'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a})
-0:11          Constant:
-0:11            0 (const uint)
-0:14  Function Definition: main( ( global void)
-0:14    Function Parameters: 
-0:15    Sequence
-0:15      move second child to first child ( temp highp 4-component vector of float)
-0:15        'o' ( out highp 4-component vector of float)
-0:15        add ( temp highp 4-component vector of float)
-0:15          'io' (layout( location=0) smooth in highp 4-component vector of float)
-0:15          Function Call: foo( ( global highp 4-component vector of float)
+ERROR: node is still EOpNull!
+0:13  Function Definition: foo( ( global highp 4-component vector of float)
+0:13    Function Parameters: 
+0:14    Sequence
+0:14      Branch: Return with expression
+0:14        add ( temp highp 4-component vector of float)
+0:14          a: direct index for structure ( uniform highp 4-component vector of float)
+0:14            'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp float test})
+0:14            Constant:
+0:14              0 (const uint)
+0:14          Construct vec4 ( temp highp 4-component vector of float)
+0:14            test: direct index for structure ( uniform highp float)
+0:14              'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp float test})
+0:14              Constant:
+0:14                1 (const uint)
+0:17  Function Definition: main( ( global void)
+0:17    Function Parameters: 
+0:18    Sequence
+0:18      move second child to first child ( temp highp 4-component vector of float)
+0:18        'o' ( out highp 4-component vector of float)
+0:18        add ( temp highp 4-component vector of float)
+0:18          'io' (layout( location=0) smooth in highp 4-component vector of float)
+0:18          Function Call: foo( ( global highp 4-component vector of float)
 0:?   Linker Objects
 0:?     'io' (layout( location=0) smooth in highp 4-component vector of float)
 0:?     'o' ( out highp 4-component vector of float)
-0:?     'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a})
+0:?     'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp float test})
 
 
 Linked vertex stage:
@@ -98,27 +108,33 @@
 0:?     'gl_InstanceIndex' ( in int InstanceIndex)
 Shader version: 460
 gl_FragCoord origin is upper left
-0:? Sequence
-0:10  Function Definition: foo( ( global highp 4-component vector of float)
-0:10    Function Parameters: 
-0:11    Sequence
-0:11      Branch: Return with expression
-0:11        a: direct index for structure ( uniform highp 4-component vector of float)
-0:11          'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a})
-0:11          Constant:
-0:11            0 (const uint)
-0:14  Function Definition: main( ( global void)
-0:14    Function Parameters: 
-0:15    Sequence
-0:15      move second child to first child ( temp highp 4-component vector of float)
-0:15        'o' ( out highp 4-component vector of float)
-0:15        add ( temp highp 4-component vector of float)
-0:15          'io' (layout( location=0) smooth in highp 4-component vector of float)
-0:15          Function Call: foo( ( global highp 4-component vector of float)
+ERROR: node is still EOpNull!
+0:13  Function Definition: foo( ( global highp 4-component vector of float)
+0:13    Function Parameters: 
+0:14    Sequence
+0:14      Branch: Return with expression
+0:14        add ( temp highp 4-component vector of float)
+0:14          a: direct index for structure ( uniform highp 4-component vector of float)
+0:14            'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp float test})
+0:14            Constant:
+0:14              0 (const uint)
+0:14          Construct vec4 ( temp highp 4-component vector of float)
+0:14            test: direct index for structure ( uniform highp float)
+0:14              'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp float test})
+0:14              Constant:
+0:14                1 (const uint)
+0:17  Function Definition: main( ( global void)
+0:17    Function Parameters: 
+0:18    Sequence
+0:18      move second child to first child ( temp highp 4-component vector of float)
+0:18        'o' ( out highp 4-component vector of float)
+0:18        add ( temp highp 4-component vector of float)
+0:18          'io' (layout( location=0) smooth in highp 4-component vector of float)
+0:18          Function Call: foo( ( global highp 4-component vector of float)
 0:?   Linker Objects
 0:?     'io' (layout( location=0) smooth in highp 4-component vector of float)
 0:?     'o' ( out highp 4-component vector of float)
-0:?     'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a})
+0:?     'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp float test})
 
 Validation failed
 SPIR-V is not generated for failed compile or link
diff --git a/Test/baseResults/vk.relaxed.frag.out b/Test/baseResults/vk.relaxed.frag.out
index c88782f..078dec2 100644
--- a/Test/baseResults/vk.relaxed.frag.out
+++ b/Test/baseResults/vk.relaxed.frag.out
@@ -5,111 +5,71 @@
 Shader version: 460
 gl_FragCoord origin is upper left
 0:? Sequence
-0:36  Function Definition: bar( ( global highp uint)
-0:36    Function Parameters: 
-0:37    Sequence
-0:37      Sequence
-0:37        move second child to first child ( temp highp uint)
-0:37          'j' ( temp highp uint)
-0:37          Constant:
-0:37            0 (const uint)
-0:38      move second child to first child ( temp highp uint)
-0:38        'j' ( temp highp uint)
-0:38        AtomicAdd ( global highp uint)
-0:38          counter1: direct index for structure ( coherent volatile buffer highp uint)
-0:38            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
-0:38            Constant:
-0:38              0 (const uint)
-0:38          Constant:
-0:38            1 (const uint)
-0:39      move second child to first child ( temp highp uint)
-0:39        'j' ( temp highp uint)
-0:39        subtract ( temp highp uint)
-0:39          AtomicAdd ( global highp uint)
-0:39            counter1: direct index for structure ( coherent volatile buffer highp uint)
-0:39              'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
-0:39              Constant:
-0:39                0 (const uint)
-0:39            Constant:
-0:39              4294967295 (const uint)
-0:39          Constant:
-0:39            1 (const uint)
-0:40      move second child to first child ( temp highp uint)
-0:40        'j' ( temp highp uint)
-0:40        counter1: direct index for structure ( coherent volatile buffer highp uint)
-0:40          'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
-0:40          Constant:
-0:40            0 (const uint)
-0:42      move second child to first child ( temp highp uint)
-0:42        'j' ( temp highp uint)
-0:42        AtomicAdd ( global highp uint)
-0:42          counter1: direct index for structure ( coherent volatile buffer highp uint)
-0:42            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
-0:42            Constant:
-0:42              0 (const uint)
-0:42          Constant:
-0:42            1 (const uint)
-0:43      move second child to first child ( temp highp uint)
-0:43        'j' ( temp highp uint)
-0:43        AtomicAdd ( global highp uint)
-0:43          counter1: direct index for structure ( coherent volatile buffer highp uint)
-0:43            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
-0:43            Constant:
-0:43              0 (const uint)
-0:43          Constant:
-0:43            4294967295 (const uint)
-0:44      move second child to first child ( temp highp uint)
-0:44        'j' ( temp highp uint)
-0:44        AtomicSubtract ( global highp uint)
-0:44          counter1: direct index for structure ( coherent volatile buffer highp uint)
-0:44            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
-0:44            Constant:
-0:44              0 (const uint)
+0:43  Function Definition: bar( ( global highp uint)
+0:43    Function Parameters: 
+0:44    Sequence
+0:44      Sequence
+0:44        move second child to first child ( temp highp uint)
+0:44          'j' ( temp highp uint)
 0:44          Constant:
-0:44            1 (const uint)
+0:44            0 (const uint)
+0:45      move second child to first child ( temp highp uint)
+0:45        'j' ( temp highp uint)
+0:45        AtomicAdd ( global highp uint)
+0:45          counter1: direct index for structure ( coherent volatile buffer highp uint)
+0:45            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
+0:45            Constant:
+0:45              0 (const uint)
+0:45          Constant:
+0:45            1 (const uint)
 0:46      move second child to first child ( temp highp uint)
 0:46        'j' ( temp highp uint)
-0:46        AtomicMin ( global highp uint)
-0:46          counter1: direct index for structure ( coherent volatile buffer highp uint)
-0:46            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
+0:46        subtract ( temp highp uint)
+0:46          AtomicAdd ( global highp uint)
+0:46            counter1: direct index for structure ( coherent volatile buffer highp uint)
+0:46              'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
+0:46              Constant:
+0:46                0 (const uint)
 0:46            Constant:
-0:46              0 (const uint)
-0:46          'j' ( temp highp uint)
+0:46              4294967295 (const uint)
+0:46          Constant:
+0:46            1 (const uint)
 0:47      move second child to first child ( temp highp uint)
 0:47        'j' ( temp highp uint)
-0:47        AtomicMax ( global highp uint)
-0:47          counter1: direct index for structure ( coherent volatile buffer highp uint)
-0:47            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
-0:47            Constant:
-0:47              0 (const uint)
-0:47          'j' ( temp highp uint)
-0:48      move second child to first child ( temp highp uint)
-0:48        'j' ( temp highp uint)
-0:48        AtomicAnd ( global highp uint)
-0:48          counter1: direct index for structure ( coherent volatile buffer highp uint)
-0:48            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
-0:48            Constant:
-0:48              0 (const uint)
-0:48          'j' ( temp highp uint)
+0:47        counter1: direct index for structure ( coherent volatile buffer highp uint)
+0:47          'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
+0:47          Constant:
+0:47            0 (const uint)
+0:49      move second child to first child ( temp highp uint)
+0:49        'j' ( temp highp uint)
+0:49        AtomicAdd ( global highp uint)
+0:49          counter1: direct index for structure ( coherent volatile buffer highp uint)
+0:49            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
+0:49            Constant:
+0:49              0 (const uint)
+0:49          Constant:
+0:49            1 (const uint)
 0:50      move second child to first child ( temp highp uint)
 0:50        'j' ( temp highp uint)
-0:50        AtomicOr ( global highp uint)
+0:50        AtomicAdd ( global highp uint)
 0:50          counter1: direct index for structure ( coherent volatile buffer highp uint)
 0:50            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
 0:50            Constant:
 0:50              0 (const uint)
-0:50          'j' ( temp highp uint)
+0:50          Constant:
+0:50            4294967295 (const uint)
 0:51      move second child to first child ( temp highp uint)
 0:51        'j' ( temp highp uint)
-0:51        AtomicXor ( global highp uint)
+0:51        AtomicSubtract ( global highp uint)
 0:51          counter1: direct index for structure ( coherent volatile buffer highp uint)
 0:51            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
 0:51            Constant:
 0:51              0 (const uint)
-0:51          'j' ( temp highp uint)
+0:51          Constant:
+0:51            1 (const uint)
 0:53      move second child to first child ( temp highp uint)
 0:53        'j' ( temp highp uint)
-0:53        AtomicExchange ( global highp uint)
+0:53        AtomicMin ( global highp uint)
 0:53          counter1: direct index for structure ( coherent volatile buffer highp uint)
 0:53            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
 0:53            Constant:
@@ -117,158 +77,254 @@
 0:53          'j' ( temp highp uint)
 0:54      move second child to first child ( temp highp uint)
 0:54        'j' ( temp highp uint)
-0:54        AtomicCompSwap ( global highp uint)
+0:54        AtomicMax ( global highp uint)
 0:54          counter1: direct index for structure ( coherent volatile buffer highp uint)
 0:54            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
 0:54            Constant:
 0:54              0 (const uint)
-0:54          Constant:
-0:54            0 (const uint)
 0:54          'j' ( temp highp uint)
-0:56      AtomicAdd ( global highp uint)
-0:56        counter2: direct index for structure ( coherent volatile buffer highp uint)
-0:56          'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
-0:56          Constant:
-0:56            1 (const uint)
-0:56        Constant:
-0:56          1 (const uint)
-0:57      AtomicAdd ( global highp uint)
-0:57        counter3: direct index for structure ( coherent volatile buffer highp uint)
-0:57          'anon@3' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3})
-0:57          Constant:
-0:57            0 (const uint)
-0:57        Constant:
-0:57          1 (const uint)
-0:59      MemoryBarrierBuffer ( global void)
-0:61      Branch: Return with expression
+0:55      move second child to first child ( temp highp uint)
+0:55        'j' ( temp highp uint)
+0:55        AtomicAnd ( global highp uint)
+0:55          counter1: direct index for structure ( coherent volatile buffer highp uint)
+0:55            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
+0:55            Constant:
+0:55              0 (const uint)
+0:55          'j' ( temp highp uint)
+0:57      move second child to first child ( temp highp uint)
+0:57        'j' ( temp highp uint)
+0:57        AtomicOr ( global highp uint)
+0:57          counter1: direct index for structure ( coherent volatile buffer highp uint)
+0:57            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
+0:57            Constant:
+0:57              0 (const uint)
+0:57          'j' ( temp highp uint)
+0:58      move second child to first child ( temp highp uint)
+0:58        'j' ( temp highp uint)
+0:58        AtomicXor ( global highp uint)
+0:58          counter1: direct index for structure ( coherent volatile buffer highp uint)
+0:58            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
+0:58            Constant:
+0:58              0 (const uint)
+0:58          'j' ( temp highp uint)
+0:60      move second child to first child ( temp highp uint)
+0:60        'j' ( temp highp uint)
+0:60        AtomicExchange ( global highp uint)
+0:60          counter1: direct index for structure ( coherent volatile buffer highp uint)
+0:60            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
+0:60            Constant:
+0:60              0 (const uint)
+0:60          'j' ( temp highp uint)
+0:61      move second child to first child ( temp highp uint)
 0:61        'j' ( temp highp uint)
-0:64  Function Definition: foo( ( global highp 4-component vector of float)
-0:64    Function Parameters: 
-0:65    Sequence
-0:65      Sequence
-0:65        move second child to first child ( temp highp float)
-0:65          'f' ( temp highp float)
-0:65          add ( temp highp float)
-0:65            add ( temp highp float)
-0:65              add ( temp highp float)
-0:65                j: direct index for structure (layout( column_major std140) uniform highp float)
-0:65                  'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp float j, layout( column_major std140) uniform highp 4-component vector of float k})
-0:65                  Constant:
-0:65                    0 (const uint)
-0:65                j: direct index for structure (layout( column_major std430) buffer highp float)
-0:65                  'bufferInstance' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float j, layout( column_major std430) buffer highp 4-component vector of float k})
-0:65                  Constant:
-0:65                    0 (const int)
-0:65              y: direct index for structure ( global highp float)
-0:65                structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z})
-0:65                  'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
-0:65                  Constant:
-0:65                    4 (const uint)
-0:65                Constant:
-0:65                  1 (const int)
-0:65            Convert uint to float ( temp highp float)
-0:65              z: direct index for structure ( global highp uint)
-0:65                structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z})
-0:65                  'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
-0:65                  Constant:
-0:65                    4 (const uint)
-0:65                Constant:
-0:65                  2 (const int)
-0:66      Sequence
-0:66        move second child to first child ( temp highp 2-component vector of float)
-0:66          'v2' ( temp highp 2-component vector of float)
-0:66          add ( temp highp 2-component vector of float)
-0:66            add ( temp highp 2-component vector of float)
-0:66              b: direct index for structure ( uniform highp 2-component vector of float)
-0:66                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
-0:66                Constant:
-0:66                  1 (const uint)
-0:66              c: direct index for structure ( uniform highp 2-component vector of float)
-0:66                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
-0:66                Constant:
-0:66                  2 (const uint)
-0:66            x: direct index for structure ( global highp 2-component vector of float)
-0:66              structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z})
-0:66                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
-0:66                Constant:
-0:66                  4 (const uint)
-0:66              Constant:
-0:66                0 (const int)
-0:67      Sequence
-0:67        move second child to first child ( temp highp 4-component vector of float)
-0:67          'v4' ( temp highp 4-component vector of float)
-0:67          add ( temp highp 4-component vector of float)
-0:67            add ( temp highp 4-component vector of float)
-0:67              add ( temp highp 4-component vector of float)
-0:67                add ( temp highp 4-component vector of float)
-0:67                  add ( temp highp 4-component vector of float)
-0:67                    add ( temp highp 4-component vector of float)
-0:67                      a: direct index for structure ( uniform highp 4-component vector of float)
-0:67                        'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
-0:67                        Constant:
-0:67                          0 (const uint)
-0:67                      direct index ( temp highp 4-component vector of float)
-0:67                        d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
-0:67                          'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
-0:67                          Constant:
-0:67                            3 (const uint)
-0:67                        Constant:
-0:67                          0 (const int)
-0:67                    direct index ( temp highp 4-component vector of float)
-0:67                      d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
-0:67                        'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
-0:67                        Constant:
-0:67                          3 (const uint)
-0:67                      Constant:
-0:67                        1 (const int)
-0:67                  direct index ( temp highp 4-component vector of float)
-0:67                    d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
-0:67                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
-0:67                      Constant:
-0:67                        3 (const uint)
-0:67                    Constant:
-0:67                      2 (const int)
-0:67                k: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float)
-0:67                  'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp float j, layout( column_major std140) uniform highp 4-component vector of float k})
-0:67                  Constant:
-0:67                    1 (const uint)
-0:67              k: direct index for structure (layout( column_major std430) buffer highp 4-component vector of float)
-0:67                'bufferInstance' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float j, layout( column_major std430) buffer highp 4-component vector of float k})
-0:67                Constant:
-0:67                  1 (const int)
-0:67            texture ( global highp 4-component vector of float)
-0:67              't1' ( uniform highp sampler2D)
-0:67              Constant:
-0:67                0.000000
-0:67                0.000000
+0:61        AtomicCompSwap ( global highp uint)
+0:61          counter1: direct index for structure ( coherent volatile buffer highp uint)
+0:61            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
+0:61            Constant:
+0:61              0 (const uint)
+0:61          Constant:
+0:61            0 (const uint)
+0:61          'j' ( temp highp uint)
+0:63      AtomicAdd ( global highp uint)
+0:63        counter2: direct index for structure ( coherent volatile buffer highp uint)
+0:63          'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
+0:63          Constant:
+0:63            1 (const uint)
+0:63        Constant:
+0:63          1 (const uint)
+0:64      AtomicAdd ( global highp uint)
+0:64        counter3: direct index for structure ( coherent volatile buffer highp uint)
+0:64          'anon@3' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3})
+0:64          Constant:
+0:64            0 (const uint)
+0:64        Constant:
+0:64          1 (const uint)
+0:66      MemoryBarrierBuffer ( global void)
 0:68      Branch: Return with expression
-0:68        component-wise multiply ( temp highp 4-component vector of float)
-0:68          component-wise multiply ( temp highp 4-component vector of float)
-0:68            Construct vec4 ( temp highp 4-component vector of float)
-0:68              'f' ( temp highp float)
-0:68            Construct vec4 ( temp highp 4-component vector of float)
-0:68              'v2' ( temp highp 2-component vector of float)
-0:68              Constant:
-0:68                1.000000
-0:68              Constant:
-0:68                1.000000
-0:68          'v4' ( temp highp 4-component vector of float)
-0:71  Function Definition: main( ( global void)
+0:68        'j' ( temp highp uint)
+0:71  Function Definition: foo( ( global highp 4-component vector of float)
 0:71    Function Parameters: 
 0:72    Sequence
 0:72      Sequence
 0:72        move second child to first child ( temp highp float)
-0:72          'j' ( temp highp float)
-0:72          Convert uint to float ( temp highp float)
-0:72            Function Call: bar( ( global highp uint)
-0:73      move second child to first child ( temp highp 4-component vector of float)
-0:73        'o' ( out highp 4-component vector of float)
-0:73        vector-scale ( temp highp 4-component vector of float)
-0:73          'j' ( temp highp float)
-0:73          Function Call: foo( ( global highp 4-component vector of float)
+0:72          'f' ( temp highp float)
+0:72          add ( temp highp float)
+0:72            add ( temp highp float)
+0:72              add ( temp highp float)
+0:72                j: direct index for structure (layout( column_major std140) uniform highp float)
+0:72                  'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp float j, layout( column_major std140) uniform highp 4-component vector of float k})
+0:72                  Constant:
+0:72                    0 (const uint)
+0:72                j: direct index for structure (layout( column_major std430) buffer highp float)
+0:72                  'bufferInstance' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float j, layout( column_major std430) buffer highp 4-component vector of float k})
+0:72                  Constant:
+0:72                    0 (const int)
+0:72              y: direct index for structure ( global highp float)
+0:72                structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers})
+0:72                  'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
+0:72                  Constant:
+0:72                    4 (const uint)
+0:72                Constant:
+0:72                  1 (const int)
+0:72            Convert uint to float ( temp highp float)
+0:72              z: direct index for structure ( global highp uint)
+0:72                structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers})
+0:72                  'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
+0:72                  Constant:
+0:72                    4 (const uint)
+0:72                Constant:
+0:72                  2 (const int)
+0:73      Sequence
+0:73        move second child to first child ( temp highp 2-component vector of float)
+0:73          'v2' ( temp highp 2-component vector of float)
+0:73          add ( temp highp 2-component vector of float)
+0:73            add ( temp highp 2-component vector of float)
+0:73              b: direct index for structure ( uniform highp 2-component vector of float)
+0:73                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
+0:73                Constant:
+0:73                  1 (const uint)
+0:73              c: direct index for structure ( uniform highp 2-component vector of float)
+0:73                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
+0:73                Constant:
+0:73                  2 (const uint)
+0:73            x: direct index for structure ( global highp 2-component vector of float)
+0:73              structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers})
+0:73                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
+0:73                Constant:
+0:73                  4 (const uint)
+0:73              Constant:
+0:73                0 (const int)
+0:74      Sequence
+0:74        move second child to first child ( temp highp 4-component vector of float)
+0:74          'v4' ( temp highp 4-component vector of float)
+0:74          add ( temp highp 4-component vector of float)
+0:74            add ( temp highp 4-component vector of float)
+0:74              add ( temp highp 4-component vector of float)
+0:74                add ( temp highp 4-component vector of float)
+0:74                  add ( temp highp 4-component vector of float)
+0:74                    add ( temp highp 4-component vector of float)
+0:74                      add ( temp highp 4-component vector of float)
+0:74                        a: direct index for structure ( uniform highp 4-component vector of float)
+0:74                          'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
+0:74                          Constant:
+0:74                            0 (const uint)
+0:74                        direct index ( temp highp 4-component vector of float)
+0:74                          d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
+0:74                            'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
+0:74                            Constant:
+0:74                              3 (const uint)
+0:74                          Constant:
+0:74                            0 (const int)
+0:74                      direct index ( temp highp 4-component vector of float)
+0:74                        d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
+0:74                          'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
+0:74                          Constant:
+0:74                            3 (const uint)
+0:74                        Constant:
+0:74                          1 (const int)
+0:74                    direct index ( temp highp 4-component vector of float)
+0:74                      d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
+0:74                        'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
+0:74                        Constant:
+0:74                          3 (const uint)
+0:74                      Constant:
+0:74                        2 (const int)
+0:74                  k: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float)
+0:74                    'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp float j, layout( column_major std140) uniform highp 4-component vector of float k})
+0:74                    Constant:
+0:74                      1 (const uint)
+0:74                k: direct index for structure (layout( column_major std430) buffer highp 4-component vector of float)
+0:74                  'bufferInstance' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float j, layout( column_major std430) buffer highp 4-component vector of float k})
+0:74                  Constant:
+0:74                    1 (const int)
+0:74              texture ( global highp 4-component vector of float)
+0:74                't1' ( uniform highp sampler2D)
+0:74                Constant:
+0:74                  0.000000
+0:74                  0.000000
+0:74            texture ( global highp 4-component vector of float)
+0:74              'structUniform.t0' ( uniform highp sampler2D)
+0:74              Constant:
+0:74                0.000000
+0:74                0.000000
+0:75      Branch: Return with expression
+0:75        component-wise multiply ( temp highp 4-component vector of float)
+0:75          component-wise multiply ( temp highp 4-component vector of float)
+0:75            Construct vec4 ( temp highp 4-component vector of float)
+0:75              'f' ( temp highp float)
+0:75            Construct vec4 ( temp highp 4-component vector of float)
+0:75              'v2' ( temp highp 2-component vector of float)
+0:75              Constant:
+0:75                1.000000
+0:75              Constant:
+0:75                1.000000
+0:75          'v4' ( temp highp 4-component vector of float)
+0:78  Function Definition: baz(struct-SamplerArray-s21[4]1;s21;s21;s21;s21; ( global highp 4-component vector of float)
+0:78    Function Parameters: 
+0:78      'samplers' ( in structure{ global 4-element array of highp int /*tn*/})
+0:78      'samplers.tn[0]' ( in highp sampler2D)
+0:78      'samplers.tn[1]' ( in highp sampler2D)
+0:78      'samplers.tn[2]' ( in highp sampler2D)
+0:78      'samplers.tn[3]' ( in highp sampler2D)
+0:79    Sequence
+0:79      Branch: Return with expression
+0:79        add ( temp highp 4-component vector of float)
+0:79          add ( temp highp 4-component vector of float)
+0:79            add ( temp highp 4-component vector of float)
+0:79              texture ( global highp 4-component vector of float)
+0:79                'samplers.tn[0]' ( in highp sampler2D)
+0:79                Constant:
+0:79                  0.000000
+0:79                  0.000000
+0:79              texture ( global highp 4-component vector of float)
+0:79                'samplers.tn[1]' ( in highp sampler2D)
+0:79                Constant:
+0:79                  0.000000
+0:79                  0.000000
+0:79            texture ( global highp 4-component vector of float)
+0:79              'samplers.tn[2]' ( in highp sampler2D)
+0:79              Constant:
+0:79                0.000000
+0:79                0.000000
+0:79          texture ( global highp 4-component vector of float)
+0:79            'samplers.tn[3]' ( in highp sampler2D)
+0:79            Constant:
+0:79              0.000000
+0:79              0.000000
+0:82  Function Definition: main( ( global void)
+0:82    Function Parameters: 
+0:83    Sequence
+0:83      Sequence
+0:83        move second child to first child ( temp highp float)
+0:83          'j' ( temp highp float)
+0:83          Convert uint to float ( temp highp float)
+0:83            Function Call: bar( ( global highp uint)
+0:84      move second child to first child ( temp highp 4-component vector of float)
+0:84        'o' ( out highp 4-component vector of float)
+0:84        add ( temp highp 4-component vector of float)
+0:84          vector-scale ( temp highp 4-component vector of float)
+0:84            'j' ( temp highp float)
+0:84            Function Call: foo( ( global highp 4-component vector of float)
+0:84          Function Call: baz(struct-SamplerArray-s21[4]1;s21;s21;s21;s21; ( global highp 4-component vector of float)
+0:84            samplers: direct index for structure ( global structure{ global 4-element array of highp int /*tn*/})
+0:84              structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers})
+0:84                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
+0:84                Constant:
+0:84                  4 (const uint)
+0:84              Constant:
+0:84                4 (const int)
+0:84            'structUniform.samplers.tn[0]' ( uniform highp sampler2D)
+0:84            'structUniform.samplers.tn[1]' ( uniform highp sampler2D)
+0:84            'structUniform.samplers.tn[2]' ( uniform highp sampler2D)
+0:84            'structUniform.samplers.tn[3]' ( uniform highp sampler2D)
 0:?   Linker Objects
 0:?     'o' ( out highp 4-component vector of float)
-0:?     'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
+0:?     'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
+0:?     'structUniform.t0' ( uniform highp sampler2D)
+0:?     'structUniform.samplers.tn[0]' ( uniform highp sampler2D)
+0:?     'structUniform.samplers.tn[1]' ( uniform highp sampler2D)
+0:?     'structUniform.samplers.tn[2]' ( uniform highp sampler2D)
+0:?     'structUniform.samplers.tn[3]' ( uniform highp sampler2D)
 0:?     't1' ( uniform highp sampler2D)
 0:?     'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp float j, layout( column_major std140) uniform highp 4-component vector of float k})
 0:?     'bufferInstance' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float j, layout( column_major std430) buffer highp 4-component vector of float k})
@@ -282,111 +338,71 @@
 Shader version: 460
 gl_FragCoord origin is upper left
 0:? Sequence
-0:36  Function Definition: bar( ( global highp uint)
-0:36    Function Parameters: 
-0:37    Sequence
-0:37      Sequence
-0:37        move second child to first child ( temp highp uint)
-0:37          'j' ( temp highp uint)
-0:37          Constant:
-0:37            0 (const uint)
-0:38      move second child to first child ( temp highp uint)
-0:38        'j' ( temp highp uint)
-0:38        AtomicAdd ( global highp uint)
-0:38          counter1: direct index for structure ( coherent volatile buffer highp uint)
-0:38            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
-0:38            Constant:
-0:38              0 (const uint)
-0:38          Constant:
-0:38            1 (const uint)
-0:39      move second child to first child ( temp highp uint)
-0:39        'j' ( temp highp uint)
-0:39        subtract ( temp highp uint)
-0:39          AtomicAdd ( global highp uint)
-0:39            counter1: direct index for structure ( coherent volatile buffer highp uint)
-0:39              'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
-0:39              Constant:
-0:39                0 (const uint)
-0:39            Constant:
-0:39              4294967295 (const uint)
-0:39          Constant:
-0:39            1 (const uint)
-0:40      move second child to first child ( temp highp uint)
-0:40        'j' ( temp highp uint)
-0:40        counter1: direct index for structure ( coherent volatile buffer highp uint)
-0:40          'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
-0:40          Constant:
-0:40            0 (const uint)
-0:42      move second child to first child ( temp highp uint)
-0:42        'j' ( temp highp uint)
-0:42        AtomicAdd ( global highp uint)
-0:42          counter1: direct index for structure ( coherent volatile buffer highp uint)
-0:42            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
-0:42            Constant:
-0:42              0 (const uint)
-0:42          Constant:
-0:42            1 (const uint)
-0:43      move second child to first child ( temp highp uint)
-0:43        'j' ( temp highp uint)
-0:43        AtomicAdd ( global highp uint)
-0:43          counter1: direct index for structure ( coherent volatile buffer highp uint)
-0:43            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
-0:43            Constant:
-0:43              0 (const uint)
-0:43          Constant:
-0:43            4294967295 (const uint)
-0:44      move second child to first child ( temp highp uint)
-0:44        'j' ( temp highp uint)
-0:44        AtomicSubtract ( global highp uint)
-0:44          counter1: direct index for structure ( coherent volatile buffer highp uint)
-0:44            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
-0:44            Constant:
-0:44              0 (const uint)
+0:43  Function Definition: bar( ( global highp uint)
+0:43    Function Parameters: 
+0:44    Sequence
+0:44      Sequence
+0:44        move second child to first child ( temp highp uint)
+0:44          'j' ( temp highp uint)
 0:44          Constant:
-0:44            1 (const uint)
+0:44            0 (const uint)
+0:45      move second child to first child ( temp highp uint)
+0:45        'j' ( temp highp uint)
+0:45        AtomicAdd ( global highp uint)
+0:45          counter1: direct index for structure ( coherent volatile buffer highp uint)
+0:45            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
+0:45            Constant:
+0:45              0 (const uint)
+0:45          Constant:
+0:45            1 (const uint)
 0:46      move second child to first child ( temp highp uint)
 0:46        'j' ( temp highp uint)
-0:46        AtomicMin ( global highp uint)
-0:46          counter1: direct index for structure ( coherent volatile buffer highp uint)
-0:46            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
+0:46        subtract ( temp highp uint)
+0:46          AtomicAdd ( global highp uint)
+0:46            counter1: direct index for structure ( coherent volatile buffer highp uint)
+0:46              'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
+0:46              Constant:
+0:46                0 (const uint)
 0:46            Constant:
-0:46              0 (const uint)
-0:46          'j' ( temp highp uint)
+0:46              4294967295 (const uint)
+0:46          Constant:
+0:46            1 (const uint)
 0:47      move second child to first child ( temp highp uint)
 0:47        'j' ( temp highp uint)
-0:47        AtomicMax ( global highp uint)
-0:47          counter1: direct index for structure ( coherent volatile buffer highp uint)
-0:47            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
-0:47            Constant:
-0:47              0 (const uint)
-0:47          'j' ( temp highp uint)
-0:48      move second child to first child ( temp highp uint)
-0:48        'j' ( temp highp uint)
-0:48        AtomicAnd ( global highp uint)
-0:48          counter1: direct index for structure ( coherent volatile buffer highp uint)
-0:48            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
-0:48            Constant:
-0:48              0 (const uint)
-0:48          'j' ( temp highp uint)
+0:47        counter1: direct index for structure ( coherent volatile buffer highp uint)
+0:47          'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
+0:47          Constant:
+0:47            0 (const uint)
+0:49      move second child to first child ( temp highp uint)
+0:49        'j' ( temp highp uint)
+0:49        AtomicAdd ( global highp uint)
+0:49          counter1: direct index for structure ( coherent volatile buffer highp uint)
+0:49            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
+0:49            Constant:
+0:49              0 (const uint)
+0:49          Constant:
+0:49            1 (const uint)
 0:50      move second child to first child ( temp highp uint)
 0:50        'j' ( temp highp uint)
-0:50        AtomicOr ( global highp uint)
+0:50        AtomicAdd ( global highp uint)
 0:50          counter1: direct index for structure ( coherent volatile buffer highp uint)
 0:50            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
 0:50            Constant:
 0:50              0 (const uint)
-0:50          'j' ( temp highp uint)
+0:50          Constant:
+0:50            4294967295 (const uint)
 0:51      move second child to first child ( temp highp uint)
 0:51        'j' ( temp highp uint)
-0:51        AtomicXor ( global highp uint)
+0:51        AtomicSubtract ( global highp uint)
 0:51          counter1: direct index for structure ( coherent volatile buffer highp uint)
 0:51            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
 0:51            Constant:
 0:51              0 (const uint)
-0:51          'j' ( temp highp uint)
+0:51          Constant:
+0:51            1 (const uint)
 0:53      move second child to first child ( temp highp uint)
 0:53        'j' ( temp highp uint)
-0:53        AtomicExchange ( global highp uint)
+0:53        AtomicMin ( global highp uint)
 0:53          counter1: direct index for structure ( coherent volatile buffer highp uint)
 0:53            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
 0:53            Constant:
@@ -394,158 +410,254 @@
 0:53          'j' ( temp highp uint)
 0:54      move second child to first child ( temp highp uint)
 0:54        'j' ( temp highp uint)
-0:54        AtomicCompSwap ( global highp uint)
+0:54        AtomicMax ( global highp uint)
 0:54          counter1: direct index for structure ( coherent volatile buffer highp uint)
 0:54            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
 0:54            Constant:
 0:54              0 (const uint)
-0:54          Constant:
-0:54            0 (const uint)
 0:54          'j' ( temp highp uint)
-0:56      AtomicAdd ( global highp uint)
-0:56        counter2: direct index for structure ( coherent volatile buffer highp uint)
-0:56          'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
-0:56          Constant:
-0:56            1 (const uint)
-0:56        Constant:
-0:56          1 (const uint)
-0:57      AtomicAdd ( global highp uint)
-0:57        counter3: direct index for structure ( coherent volatile buffer highp uint)
-0:57          'anon@3' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3})
-0:57          Constant:
-0:57            0 (const uint)
-0:57        Constant:
-0:57          1 (const uint)
-0:59      MemoryBarrierBuffer ( global void)
-0:61      Branch: Return with expression
+0:55      move second child to first child ( temp highp uint)
+0:55        'j' ( temp highp uint)
+0:55        AtomicAnd ( global highp uint)
+0:55          counter1: direct index for structure ( coherent volatile buffer highp uint)
+0:55            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
+0:55            Constant:
+0:55              0 (const uint)
+0:55          'j' ( temp highp uint)
+0:57      move second child to first child ( temp highp uint)
+0:57        'j' ( temp highp uint)
+0:57        AtomicOr ( global highp uint)
+0:57          counter1: direct index for structure ( coherent volatile buffer highp uint)
+0:57            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
+0:57            Constant:
+0:57              0 (const uint)
+0:57          'j' ( temp highp uint)
+0:58      move second child to first child ( temp highp uint)
+0:58        'j' ( temp highp uint)
+0:58        AtomicXor ( global highp uint)
+0:58          counter1: direct index for structure ( coherent volatile buffer highp uint)
+0:58            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
+0:58            Constant:
+0:58              0 (const uint)
+0:58          'j' ( temp highp uint)
+0:60      move second child to first child ( temp highp uint)
+0:60        'j' ( temp highp uint)
+0:60        AtomicExchange ( global highp uint)
+0:60          counter1: direct index for structure ( coherent volatile buffer highp uint)
+0:60            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
+0:60            Constant:
+0:60              0 (const uint)
+0:60          'j' ( temp highp uint)
+0:61      move second child to first child ( temp highp uint)
 0:61        'j' ( temp highp uint)
-0:64  Function Definition: foo( ( global highp 4-component vector of float)
-0:64    Function Parameters: 
-0:65    Sequence
-0:65      Sequence
-0:65        move second child to first child ( temp highp float)
-0:65          'f' ( temp highp float)
-0:65          add ( temp highp float)
-0:65            add ( temp highp float)
-0:65              add ( temp highp float)
-0:65                j: direct index for structure (layout( column_major std140) uniform highp float)
-0:65                  'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp float j, layout( column_major std140) uniform highp 4-component vector of float k})
-0:65                  Constant:
-0:65                    0 (const uint)
-0:65                j: direct index for structure (layout( column_major std430) buffer highp float)
-0:65                  'bufferInstance' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float j, layout( column_major std430) buffer highp 4-component vector of float k})
-0:65                  Constant:
-0:65                    0 (const int)
-0:65              y: direct index for structure ( global highp float)
-0:65                structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z})
-0:65                  'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
-0:65                  Constant:
-0:65                    4 (const uint)
-0:65                Constant:
-0:65                  1 (const int)
-0:65            Convert uint to float ( temp highp float)
-0:65              z: direct index for structure ( global highp uint)
-0:65                structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z})
-0:65                  'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
-0:65                  Constant:
-0:65                    4 (const uint)
-0:65                Constant:
-0:65                  2 (const int)
-0:66      Sequence
-0:66        move second child to first child ( temp highp 2-component vector of float)
-0:66          'v2' ( temp highp 2-component vector of float)
-0:66          add ( temp highp 2-component vector of float)
-0:66            add ( temp highp 2-component vector of float)
-0:66              b: direct index for structure ( uniform highp 2-component vector of float)
-0:66                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
-0:66                Constant:
-0:66                  1 (const uint)
-0:66              c: direct index for structure ( uniform highp 2-component vector of float)
-0:66                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
-0:66                Constant:
-0:66                  2 (const uint)
-0:66            x: direct index for structure ( global highp 2-component vector of float)
-0:66              structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z})
-0:66                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
-0:66                Constant:
-0:66                  4 (const uint)
-0:66              Constant:
-0:66                0 (const int)
-0:67      Sequence
-0:67        move second child to first child ( temp highp 4-component vector of float)
-0:67          'v4' ( temp highp 4-component vector of float)
-0:67          add ( temp highp 4-component vector of float)
-0:67            add ( temp highp 4-component vector of float)
-0:67              add ( temp highp 4-component vector of float)
-0:67                add ( temp highp 4-component vector of float)
-0:67                  add ( temp highp 4-component vector of float)
-0:67                    add ( temp highp 4-component vector of float)
-0:67                      a: direct index for structure ( uniform highp 4-component vector of float)
-0:67                        'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
-0:67                        Constant:
-0:67                          0 (const uint)
-0:67                      direct index ( temp highp 4-component vector of float)
-0:67                        d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
-0:67                          'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
-0:67                          Constant:
-0:67                            3 (const uint)
-0:67                        Constant:
-0:67                          0 (const int)
-0:67                    direct index ( temp highp 4-component vector of float)
-0:67                      d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
-0:67                        'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
-0:67                        Constant:
-0:67                          3 (const uint)
-0:67                      Constant:
-0:67                        1 (const int)
-0:67                  direct index ( temp highp 4-component vector of float)
-0:67                    d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
-0:67                      'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
-0:67                      Constant:
-0:67                        3 (const uint)
-0:67                    Constant:
-0:67                      2 (const int)
-0:67                k: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float)
-0:67                  'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp float j, layout( column_major std140) uniform highp 4-component vector of float k})
-0:67                  Constant:
-0:67                    1 (const uint)
-0:67              k: direct index for structure (layout( column_major std430) buffer highp 4-component vector of float)
-0:67                'bufferInstance' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float j, layout( column_major std430) buffer highp 4-component vector of float k})
-0:67                Constant:
-0:67                  1 (const int)
-0:67            texture ( global highp 4-component vector of float)
-0:67              't1' ( uniform highp sampler2D)
-0:67              Constant:
-0:67                0.000000
-0:67                0.000000
+0:61        AtomicCompSwap ( global highp uint)
+0:61          counter1: direct index for structure ( coherent volatile buffer highp uint)
+0:61            'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
+0:61            Constant:
+0:61              0 (const uint)
+0:61          Constant:
+0:61            0 (const uint)
+0:61          'j' ( temp highp uint)
+0:63      AtomicAdd ( global highp uint)
+0:63        counter2: direct index for structure ( coherent volatile buffer highp uint)
+0:63          'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
+0:63          Constant:
+0:63            1 (const uint)
+0:63        Constant:
+0:63          1 (const uint)
+0:64      AtomicAdd ( global highp uint)
+0:64        counter3: direct index for structure ( coherent volatile buffer highp uint)
+0:64          'anon@3' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3})
+0:64          Constant:
+0:64            0 (const uint)
+0:64        Constant:
+0:64          1 (const uint)
+0:66      MemoryBarrierBuffer ( global void)
 0:68      Branch: Return with expression
-0:68        component-wise multiply ( temp highp 4-component vector of float)
-0:68          component-wise multiply ( temp highp 4-component vector of float)
-0:68            Construct vec4 ( temp highp 4-component vector of float)
-0:68              'f' ( temp highp float)
-0:68            Construct vec4 ( temp highp 4-component vector of float)
-0:68              'v2' ( temp highp 2-component vector of float)
-0:68              Constant:
-0:68                1.000000
-0:68              Constant:
-0:68                1.000000
-0:68          'v4' ( temp highp 4-component vector of float)
-0:71  Function Definition: main( ( global void)
+0:68        'j' ( temp highp uint)
+0:71  Function Definition: foo( ( global highp 4-component vector of float)
 0:71    Function Parameters: 
 0:72    Sequence
 0:72      Sequence
 0:72        move second child to first child ( temp highp float)
-0:72          'j' ( temp highp float)
-0:72          Convert uint to float ( temp highp float)
-0:72            Function Call: bar( ( global highp uint)
-0:73      move second child to first child ( temp highp 4-component vector of float)
-0:73        'o' ( out highp 4-component vector of float)
-0:73        vector-scale ( temp highp 4-component vector of float)
-0:73          'j' ( temp highp float)
-0:73          Function Call: foo( ( global highp 4-component vector of float)
+0:72          'f' ( temp highp float)
+0:72          add ( temp highp float)
+0:72            add ( temp highp float)
+0:72              add ( temp highp float)
+0:72                j: direct index for structure (layout( column_major std140) uniform highp float)
+0:72                  'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp float j, layout( column_major std140) uniform highp 4-component vector of float k})
+0:72                  Constant:
+0:72                    0 (const uint)
+0:72                j: direct index for structure (layout( column_major std430) buffer highp float)
+0:72                  'bufferInstance' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float j, layout( column_major std430) buffer highp 4-component vector of float k})
+0:72                  Constant:
+0:72                    0 (const int)
+0:72              y: direct index for structure ( global highp float)
+0:72                structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers})
+0:72                  'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
+0:72                  Constant:
+0:72                    4 (const uint)
+0:72                Constant:
+0:72                  1 (const int)
+0:72            Convert uint to float ( temp highp float)
+0:72              z: direct index for structure ( global highp uint)
+0:72                structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers})
+0:72                  'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
+0:72                  Constant:
+0:72                    4 (const uint)
+0:72                Constant:
+0:72                  2 (const int)
+0:73      Sequence
+0:73        move second child to first child ( temp highp 2-component vector of float)
+0:73          'v2' ( temp highp 2-component vector of float)
+0:73          add ( temp highp 2-component vector of float)
+0:73            add ( temp highp 2-component vector of float)
+0:73              b: direct index for structure ( uniform highp 2-component vector of float)
+0:73                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
+0:73                Constant:
+0:73                  1 (const uint)
+0:73              c: direct index for structure ( uniform highp 2-component vector of float)
+0:73                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
+0:73                Constant:
+0:73                  2 (const uint)
+0:73            x: direct index for structure ( global highp 2-component vector of float)
+0:73              structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers})
+0:73                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
+0:73                Constant:
+0:73                  4 (const uint)
+0:73              Constant:
+0:73                0 (const int)
+0:74      Sequence
+0:74        move second child to first child ( temp highp 4-component vector of float)
+0:74          'v4' ( temp highp 4-component vector of float)
+0:74          add ( temp highp 4-component vector of float)
+0:74            add ( temp highp 4-component vector of float)
+0:74              add ( temp highp 4-component vector of float)
+0:74                add ( temp highp 4-component vector of float)
+0:74                  add ( temp highp 4-component vector of float)
+0:74                    add ( temp highp 4-component vector of float)
+0:74                      add ( temp highp 4-component vector of float)
+0:74                        a: direct index for structure ( uniform highp 4-component vector of float)
+0:74                          'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
+0:74                          Constant:
+0:74                            0 (const uint)
+0:74                        direct index ( temp highp 4-component vector of float)
+0:74                          d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
+0:74                            'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
+0:74                            Constant:
+0:74                              3 (const uint)
+0:74                          Constant:
+0:74                            0 (const int)
+0:74                      direct index ( temp highp 4-component vector of float)
+0:74                        d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
+0:74                          'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
+0:74                          Constant:
+0:74                            3 (const uint)
+0:74                        Constant:
+0:74                          1 (const int)
+0:74                    direct index ( temp highp 4-component vector of float)
+0:74                      d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
+0:74                        'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
+0:74                        Constant:
+0:74                          3 (const uint)
+0:74                      Constant:
+0:74                        2 (const int)
+0:74                  k: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float)
+0:74                    'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp float j, layout( column_major std140) uniform highp 4-component vector of float k})
+0:74                    Constant:
+0:74                      1 (const uint)
+0:74                k: direct index for structure (layout( column_major std430) buffer highp 4-component vector of float)
+0:74                  'bufferInstance' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float j, layout( column_major std430) buffer highp 4-component vector of float k})
+0:74                  Constant:
+0:74                    1 (const int)
+0:74              texture ( global highp 4-component vector of float)
+0:74                't1' ( uniform highp sampler2D)
+0:74                Constant:
+0:74                  0.000000
+0:74                  0.000000
+0:74            texture ( global highp 4-component vector of float)
+0:74              'structUniform.t0' ( uniform highp sampler2D)
+0:74              Constant:
+0:74                0.000000
+0:74                0.000000
+0:75      Branch: Return with expression
+0:75        component-wise multiply ( temp highp 4-component vector of float)
+0:75          component-wise multiply ( temp highp 4-component vector of float)
+0:75            Construct vec4 ( temp highp 4-component vector of float)
+0:75              'f' ( temp highp float)
+0:75            Construct vec4 ( temp highp 4-component vector of float)
+0:75              'v2' ( temp highp 2-component vector of float)
+0:75              Constant:
+0:75                1.000000
+0:75              Constant:
+0:75                1.000000
+0:75          'v4' ( temp highp 4-component vector of float)
+0:78  Function Definition: baz(struct-SamplerArray-s21[4]1;s21;s21;s21;s21; ( global highp 4-component vector of float)
+0:78    Function Parameters: 
+0:78      'samplers' ( in structure{ global 4-element array of highp int /*tn*/})
+0:78      'samplers.tn[0]' ( in highp sampler2D)
+0:78      'samplers.tn[1]' ( in highp sampler2D)
+0:78      'samplers.tn[2]' ( in highp sampler2D)
+0:78      'samplers.tn[3]' ( in highp sampler2D)
+0:79    Sequence
+0:79      Branch: Return with expression
+0:79        add ( temp highp 4-component vector of float)
+0:79          add ( temp highp 4-component vector of float)
+0:79            add ( temp highp 4-component vector of float)
+0:79              texture ( global highp 4-component vector of float)
+0:79                'samplers.tn[0]' ( in highp sampler2D)
+0:79                Constant:
+0:79                  0.000000
+0:79                  0.000000
+0:79              texture ( global highp 4-component vector of float)
+0:79                'samplers.tn[1]' ( in highp sampler2D)
+0:79                Constant:
+0:79                  0.000000
+0:79                  0.000000
+0:79            texture ( global highp 4-component vector of float)
+0:79              'samplers.tn[2]' ( in highp sampler2D)
+0:79              Constant:
+0:79                0.000000
+0:79                0.000000
+0:79          texture ( global highp 4-component vector of float)
+0:79            'samplers.tn[3]' ( in highp sampler2D)
+0:79            Constant:
+0:79              0.000000
+0:79              0.000000
+0:82  Function Definition: main( ( global void)
+0:82    Function Parameters: 
+0:83    Sequence
+0:83      Sequence
+0:83        move second child to first child ( temp highp float)
+0:83          'j' ( temp highp float)
+0:83          Convert uint to float ( temp highp float)
+0:83            Function Call: bar( ( global highp uint)
+0:84      move second child to first child ( temp highp 4-component vector of float)
+0:84        'o' ( out highp 4-component vector of float)
+0:84        add ( temp highp 4-component vector of float)
+0:84          vector-scale ( temp highp 4-component vector of float)
+0:84            'j' ( temp highp float)
+0:84            Function Call: foo( ( global highp 4-component vector of float)
+0:84          Function Call: baz(struct-SamplerArray-s21[4]1;s21;s21;s21;s21; ( global highp 4-component vector of float)
+0:84            samplers: direct index for structure ( global structure{ global 4-element array of highp int /*tn*/})
+0:84              structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers})
+0:84                'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
+0:84                Constant:
+0:84                  4 (const uint)
+0:84              Constant:
+0:84                4 (const int)
+0:84            'structUniform.samplers.tn[0]' ( uniform highp sampler2D)
+0:84            'structUniform.samplers.tn[1]' ( uniform highp sampler2D)
+0:84            'structUniform.samplers.tn[2]' ( uniform highp sampler2D)
+0:84            'structUniform.samplers.tn[3]' ( uniform highp sampler2D)
 0:?   Linker Objects
 0:?     'o' ( out highp 4-component vector of float)
-0:?     'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z} structUniform})
+0:?     'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a,  uniform highp 2-component vector of float b,  uniform highp 2-component vector of float c,  uniform 10-element array of highp 4-component vector of float d,  uniform structure{ global highp 2-component vector of float x,  global highp float y,  global highp uint z,  global highp int /*t0*/,  global structure{ global 4-element array of highp int /*tn*/} samplers} structUniform})
+0:?     'structUniform.t0' ( uniform highp sampler2D)
+0:?     'structUniform.samplers.tn[0]' ( uniform highp sampler2D)
+0:?     'structUniform.samplers.tn[1]' ( uniform highp sampler2D)
+0:?     'structUniform.samplers.tn[2]' ( uniform highp sampler2D)
+0:?     'structUniform.samplers.tn[3]' ( uniform highp sampler2D)
 0:?     't1' ( uniform highp sampler2D)
 0:?     'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp float j, layout( column_major std140) uniform highp 4-component vector of float k})
 0:?     'bufferInstance' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float j, layout( column_major std430) buffer highp 4-component vector of float k})
@@ -554,93 +666,125 @@
 
 // Module Version 10000
 // Generated by (magic number): 8000b
-// Id's are bound by 163
+// Id's are bound by 216
 
                               Capability Shader
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "main" 159
+                              EntryPoint Fragment 4  "main" 190
                               ExecutionMode 4 OriginUpperLeft
                               Source GLSL 460
                               Name 4  "main"
                               Name 8  "bar("
                               Name 13  "foo("
-                              Name 16  "j"
-                              Name 18  "gl_AtomicCounterBlock_0"
-                              MemberName 18(gl_AtomicCounterBlock_0) 0  "counter1"
-                              MemberName 18(gl_AtomicCounterBlock_0) 1  "counter2"
-                              Name 20  ""
-                              Name 63  "gl_AtomicCounterBlock_1"
-                              MemberName 63(gl_AtomicCounterBlock_1) 0  "counter3"
-                              Name 65  ""
-                              Name 73  "f"
-                              Name 74  "UniformBlock"
-                              MemberName 74(UniformBlock) 0  "j"
-                              MemberName 74(UniformBlock) 1  "k"
-                              Name 76  ""
-                              Name 80  "BufferBlock"
-                              MemberName 80(BufferBlock) 0  "j"
-                              MemberName 80(BufferBlock) 1  "k"
-                              Name 82  "bufferInstance"
-                              Name 89  "e"
-                              MemberName 89(e) 0  "x"
-                              MemberName 89(e) 1  "y"
-                              MemberName 89(e) 2  "z"
-                              Name 90  "gl_DefaultUniformBlock"
-                              MemberName 90(gl_DefaultUniformBlock) 0  "a"
-                              MemberName 90(gl_DefaultUniformBlock) 1  "b"
-                              MemberName 90(gl_DefaultUniformBlock) 2  "c"
-                              MemberName 90(gl_DefaultUniformBlock) 3  "d"
-                              MemberName 90(gl_DefaultUniformBlock) 4  "structUniform"
-                              Name 92  ""
-                              Name 103  "v2"
-                              Name 114  "v4"
-                              Name 137  "t1"
-                              Name 155  "j"
-                              Name 159  "o"
-                              MemberDecorate 18(gl_AtomicCounterBlock_0) 0 Coherent
-                              MemberDecorate 18(gl_AtomicCounterBlock_0) 0 Volatile
-                              MemberDecorate 18(gl_AtomicCounterBlock_0) 0 Coherent
-                              MemberDecorate 18(gl_AtomicCounterBlock_0) 0 Offset 0
-                              MemberDecorate 18(gl_AtomicCounterBlock_0) 1 Coherent
-                              MemberDecorate 18(gl_AtomicCounterBlock_0) 1 Volatile
-                              MemberDecorate 18(gl_AtomicCounterBlock_0) 1 Coherent
-                              MemberDecorate 18(gl_AtomicCounterBlock_0) 1 Offset 4
-                              Decorate 18(gl_AtomicCounterBlock_0) BufferBlock
-                              Decorate 20 DescriptorSet 0
-                              Decorate 20 Binding 4
-                              MemberDecorate 63(gl_AtomicCounterBlock_1) 0 Coherent
-                              MemberDecorate 63(gl_AtomicCounterBlock_1) 0 Volatile
-                              MemberDecorate 63(gl_AtomicCounterBlock_1) 0 Coherent
-                              MemberDecorate 63(gl_AtomicCounterBlock_1) 0 Offset 0
-                              Decorate 63(gl_AtomicCounterBlock_1) BufferBlock
-                              Decorate 65 DescriptorSet 0
-                              Decorate 65 Binding 5
-                              MemberDecorate 74(UniformBlock) 0 Offset 0
-                              MemberDecorate 74(UniformBlock) 1 Offset 16
-                              Decorate 74(UniformBlock) Block
-                              Decorate 76 DescriptorSet 0
-                              Decorate 76 Binding 2
-                              MemberDecorate 80(BufferBlock) 0 Offset 0
-                              MemberDecorate 80(BufferBlock) 1 Offset 16
-                              Decorate 80(BufferBlock) BufferBlock
-                              Decorate 82(bufferInstance) DescriptorSet 0
-                              Decorate 82(bufferInstance) Binding 3
-                              Decorate 88 ArrayStride 16
-                              MemberDecorate 89(e) 0 Offset 0
-                              MemberDecorate 89(e) 1 Offset 8
-                              MemberDecorate 89(e) 2 Offset 12
-                              MemberDecorate 90(gl_DefaultUniformBlock) 0 Offset 0
-                              MemberDecorate 90(gl_DefaultUniformBlock) 1 Offset 16
-                              MemberDecorate 90(gl_DefaultUniformBlock) 2 Offset 24
-                              MemberDecorate 90(gl_DefaultUniformBlock) 3 Offset 32
-                              MemberDecorate 90(gl_DefaultUniformBlock) 4 Offset 192
-                              Decorate 90(gl_DefaultUniformBlock) Block
-                              Decorate 92 DescriptorSet 0
-                              Decorate 92 Binding 0
-                              Decorate 137(t1) DescriptorSet 0
-                              Decorate 137(t1) Binding 1
-                              Decorate 159(o) Location 0
+                              Name 18  "SamplerArray"
+                              MemberName 18(SamplerArray) 0  "/*tn*/"
+                              Name 29  "baz(struct-SamplerArray-s21[4]1;s21;s21;s21;s21;"
+                              Name 24  "samplers"
+                              Name 25  "samplers.tn[0]"
+                              Name 26  "samplers.tn[1]"
+                              Name 27  "samplers.tn[2]"
+                              Name 28  "samplers.tn[3]"
+                              Name 32  "j"
+                              Name 34  "gl_AtomicCounterBlock_0"
+                              MemberName 34(gl_AtomicCounterBlock_0) 0  "counter1"
+                              MemberName 34(gl_AtomicCounterBlock_0) 1  "counter2"
+                              Name 36  ""
+                              Name 78  "gl_AtomicCounterBlock_1"
+                              MemberName 78(gl_AtomicCounterBlock_1) 0  "counter3"
+                              Name 80  ""
+                              Name 88  "f"
+                              Name 89  "UniformBlock"
+                              MemberName 89(UniformBlock) 0  "j"
+                              MemberName 89(UniformBlock) 1  "k"
+                              Name 91  ""
+                              Name 95  "BufferBlock"
+                              MemberName 95(BufferBlock) 0  "j"
+                              MemberName 95(BufferBlock) 1  "k"
+                              Name 97  "bufferInstance"
+                              Name 105  "SamplerArray"
+                              MemberName 105(SamplerArray) 0  "/*tn*/"
+                              Name 106  "e"
+                              MemberName 106(e) 0  "x"
+                              MemberName 106(e) 1  "y"
+                              MemberName 106(e) 2  "z"
+                              MemberName 106(e) 3  "/*t0*/"
+                              MemberName 106(e) 4  "samplers"
+                              Name 107  "gl_DefaultUniformBlock"
+                              MemberName 107(gl_DefaultUniformBlock) 0  "a"
+                              MemberName 107(gl_DefaultUniformBlock) 1  "b"
+                              MemberName 107(gl_DefaultUniformBlock) 2  "c"
+                              MemberName 107(gl_DefaultUniformBlock) 3  "d"
+                              MemberName 107(gl_DefaultUniformBlock) 4  "structUniform"
+                              Name 109  ""
+                              Name 120  "v2"
+                              Name 131  "v4"
+                              Name 151  "t1"
+                              Name 157  "structUniform.t0"
+                              Name 186  "j"
+                              Name 190  "o"
+                              Name 194  "structUniform.samplers.tn[0]"
+                              Name 195  "structUniform.samplers.tn[1]"
+                              Name 196  "structUniform.samplers.tn[2]"
+                              Name 197  "structUniform.samplers.tn[3]"
+                              Name 198  "param"
+                              MemberDecorate 34(gl_AtomicCounterBlock_0) 0 Coherent
+                              MemberDecorate 34(gl_AtomicCounterBlock_0) 0 Volatile
+                              MemberDecorate 34(gl_AtomicCounterBlock_0) 0 Coherent
+                              MemberDecorate 34(gl_AtomicCounterBlock_0) 0 Offset 0
+                              MemberDecorate 34(gl_AtomicCounterBlock_0) 1 Coherent
+                              MemberDecorate 34(gl_AtomicCounterBlock_0) 1 Volatile
+                              MemberDecorate 34(gl_AtomicCounterBlock_0) 1 Coherent
+                              MemberDecorate 34(gl_AtomicCounterBlock_0) 1 Offset 4
+                              Decorate 34(gl_AtomicCounterBlock_0) BufferBlock
+                              Decorate 36 DescriptorSet 0
+                              Decorate 36 Binding 9
+                              MemberDecorate 78(gl_AtomicCounterBlock_1) 0 Coherent
+                              MemberDecorate 78(gl_AtomicCounterBlock_1) 0 Volatile
+                              MemberDecorate 78(gl_AtomicCounterBlock_1) 0 Coherent
+                              MemberDecorate 78(gl_AtomicCounterBlock_1) 0 Offset 0
+                              Decorate 78(gl_AtomicCounterBlock_1) BufferBlock
+                              Decorate 80 DescriptorSet 0
+                              Decorate 80 Binding 10
+                              MemberDecorate 89(UniformBlock) 0 Offset 0
+                              MemberDecorate 89(UniformBlock) 1 Offset 16
+                              Decorate 89(UniformBlock) Block
+                              Decorate 91 DescriptorSet 0
+                              Decorate 91 Binding 7
+                              MemberDecorate 95(BufferBlock) 0 Offset 0
+                              MemberDecorate 95(BufferBlock) 1 Offset 16
+                              Decorate 95(BufferBlock) BufferBlock
+                              Decorate 97(bufferInstance) DescriptorSet 0
+                              Decorate 97(bufferInstance) Binding 8
+                              Decorate 103 ArrayStride 16
+                              Decorate 104 ArrayStride 16
+                              MemberDecorate 105(SamplerArray) 0 Offset 0
+                              MemberDecorate 106(e) 0 Offset 0
+                              MemberDecorate 106(e) 1 Offset 8
+                              MemberDecorate 106(e) 2 Offset 12
+                              MemberDecorate 106(e) 3 Offset 16
+                              MemberDecorate 106(e) 4 Offset 32
+                              MemberDecorate 107(gl_DefaultUniformBlock) 0 Offset 0
+                              MemberDecorate 107(gl_DefaultUniformBlock) 1 Offset 16
+                              MemberDecorate 107(gl_DefaultUniformBlock) 2 Offset 24
+                              MemberDecorate 107(gl_DefaultUniformBlock) 3 Offset 32
+                              MemberDecorate 107(gl_DefaultUniformBlock) 4 Offset 192
+                              Decorate 107(gl_DefaultUniformBlock) Block
+                              Decorate 109 DescriptorSet 0
+                              Decorate 109 Binding 0
+                              Decorate 151(t1) DescriptorSet 0
+                              Decorate 151(t1) Binding 6
+                              Decorate 157(structUniform.t0) DescriptorSet 0
+                              Decorate 157(structUniform.t0) Binding 1
+                              Decorate 190(o) Location 0
+                              Decorate 194(structUniform.samplers.tn[0]) DescriptorSet 0
+                              Decorate 194(structUniform.samplers.tn[0]) Binding 2
+                              Decorate 195(structUniform.samplers.tn[1]) DescriptorSet 0
+                              Decorate 195(structUniform.samplers.tn[1]) Binding 3
+                              Decorate 196(structUniform.samplers.tn[2]) DescriptorSet 0
+                              Decorate 196(structUniform.samplers.tn[2]) Binding 4
+                              Decorate 197(structUniform.samplers.tn[3]) DescriptorSet 0
+                              Decorate 197(structUniform.samplers.tn[3]) Binding 5
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 0
@@ -648,179 +792,236 @@
               10:             TypeFloat 32
               11:             TypeVector 10(float) 4
               12:             TypeFunction 11(fvec4)
-              15:             TypePointer Function 6(int)
-              17:      6(int) Constant 0
-18(gl_AtomicCounterBlock_0):             TypeStruct 6(int) 6(int)
-              19:             TypePointer Uniform 18(gl_AtomicCounterBlock_0)
-              20:     19(ptr) Variable Uniform
-              21:             TypeInt 32 1
-              22:     21(int) Constant 0
-              23:             TypePointer Uniform 6(int)
-              25:      6(int) Constant 1
-              28:      6(int) Constant 4294967295
-              60:     21(int) Constant 1
-63(gl_AtomicCounterBlock_1):             TypeStruct 6(int)
-              64:             TypePointer Uniform 63(gl_AtomicCounterBlock_1)
-              65:     64(ptr) Variable Uniform
-              68:      6(int) Constant 72
-              72:             TypePointer Function 10(float)
-74(UniformBlock):             TypeStruct 10(float) 11(fvec4)
-              75:             TypePointer Uniform 74(UniformBlock)
-              76:     75(ptr) Variable Uniform
-              77:             TypePointer Uniform 10(float)
- 80(BufferBlock):             TypeStruct 10(float) 11(fvec4)
-              81:             TypePointer Uniform 80(BufferBlock)
-82(bufferInstance):     81(ptr) Variable Uniform
-              86:             TypeVector 10(float) 2
-              87:      6(int) Constant 10
-              88:             TypeArray 11(fvec4) 87
-           89(e):             TypeStruct 86(fvec2) 10(float) 6(int)
-90(gl_DefaultUniformBlock):             TypeStruct 11(fvec4) 86(fvec2) 86(fvec2) 88 89(e)
-              91:             TypePointer Uniform 90(gl_DefaultUniformBlock)
-              92:     91(ptr) Variable Uniform
-              93:     21(int) Constant 4
-              97:     21(int) Constant 2
-             102:             TypePointer Function 86(fvec2)
-             104:             TypePointer Uniform 86(fvec2)
-             113:             TypePointer Function 11(fvec4)
-             115:             TypePointer Uniform 11(fvec4)
-             118:     21(int) Constant 3
-             134:             TypeImage 10(float) 2D sampled format:Unknown
-             135:             TypeSampledImage 134
-             136:             TypePointer UniformConstant 135
-         137(t1):    136(ptr) Variable UniformConstant
-             139:   10(float) Constant 0
-             140:   86(fvec2) ConstantComposite 139 139
-             146:   10(float) Constant 1065353216
-             158:             TypePointer Output 11(fvec4)
-          159(o):    158(ptr) Variable Output
+              15:             TypeInt 32 1
+              16:      6(int) Constant 4
+              17:             TypeArray 15(int) 16
+18(SamplerArray):             TypeStruct 17
+              19:             TypePointer Function 18(SamplerArray)
+              20:             TypeImage 10(float) 2D sampled format:Unknown
+              21:             TypeSampledImage 20
+              22:             TypePointer UniformConstant 21
+              23:             TypeFunction 11(fvec4) 19(ptr) 22(ptr) 22(ptr) 22(ptr) 22(ptr)
+              31:             TypePointer Function 6(int)
+              33:      6(int) Constant 0
+34(gl_AtomicCounterBlock_0):             TypeStruct 6(int) 6(int)
+              35:             TypePointer Uniform 34(gl_AtomicCounterBlock_0)
+              36:     35(ptr) Variable Uniform
+              37:     15(int) Constant 0
+              38:             TypePointer Uniform 6(int)
+              40:      6(int) Constant 1
+              43:      6(int) Constant 4294967295
+              75:     15(int) Constant 1
+78(gl_AtomicCounterBlock_1):             TypeStruct 6(int)
+              79:             TypePointer Uniform 78(gl_AtomicCounterBlock_1)
+              80:     79(ptr) Variable Uniform
+              83:      6(int) Constant 72
+              87:             TypePointer Function 10(float)
+89(UniformBlock):             TypeStruct 10(float) 11(fvec4)
+              90:             TypePointer Uniform 89(UniformBlock)
+              91:     90(ptr) Variable Uniform
+              92:             TypePointer Uniform 10(float)
+ 95(BufferBlock):             TypeStruct 10(float) 11(fvec4)
+              96:             TypePointer Uniform 95(BufferBlock)
+97(bufferInstance):     96(ptr) Variable Uniform
+             101:             TypeVector 10(float) 2
+             102:      6(int) Constant 10
+             103:             TypeArray 11(fvec4) 102
+             104:             TypeArray 15(int) 16
+105(SamplerArray):             TypeStruct 104
+          106(e):             TypeStruct 101(fvec2) 10(float) 6(int) 15(int) 105(SamplerArray)
+107(gl_DefaultUniformBlock):             TypeStruct 11(fvec4) 101(fvec2) 101(fvec2) 103 106(e)
+             108:             TypePointer Uniform 107(gl_DefaultUniformBlock)
+             109:    108(ptr) Variable Uniform
+             110:     15(int) Constant 4
+             114:     15(int) Constant 2
+             119:             TypePointer Function 101(fvec2)
+             121:             TypePointer Uniform 101(fvec2)
+             130:             TypePointer Function 11(fvec4)
+             132:             TypePointer Uniform 11(fvec4)
+             135:     15(int) Constant 3
+         151(t1):     22(ptr) Variable UniformConstant
+             153:   10(float) Constant 0
+             154:  101(fvec2) ConstantComposite 153 153
+157(structUniform.t0):     22(ptr) Variable UniformConstant
+             164:   10(float) Constant 1065353216
+             189:             TypePointer Output 11(fvec4)
+          190(o):    189(ptr) Variable Output
+194(structUniform.samplers.tn[0]):     22(ptr) Variable UniformConstant
+195(structUniform.samplers.tn[1]):     22(ptr) Variable UniformConstant
+196(structUniform.samplers.tn[2]):     22(ptr) Variable UniformConstant
+197(structUniform.samplers.tn[3]):     22(ptr) Variable UniformConstant
+             199:             TypePointer Uniform 105(SamplerArray)
+             203:             TypePointer Function 17
+             206:             TypePointer Function 15(int)
          4(main):           2 Function None 3
                5:             Label
-          155(j):     72(ptr) Variable Function
-             156:      6(int) FunctionCall 8(bar()
-             157:   10(float) ConvertUToF 156
-                              Store 155(j) 157
-             160:   10(float) Load 155(j)
-             161:   11(fvec4) FunctionCall 13(foo()
-             162:   11(fvec4) VectorTimesScalar 161 160
-                              Store 159(o) 162
+          186(j):     87(ptr) Variable Function
+      198(param):     19(ptr) Variable Function
+             187:      6(int) FunctionCall 8(bar()
+             188:   10(float) ConvertUToF 187
+                              Store 186(j) 188
+             191:   10(float) Load 186(j)
+             192:   11(fvec4) FunctionCall 13(foo()
+             193:   11(fvec4) VectorTimesScalar 192 191
+             200:    199(ptr) AccessChain 109 110 110
+             201:105(SamplerArray) Load 200
+             202:         104 CompositeExtract 201 0
+             204:    203(ptr) AccessChain 198(param) 37
+             205:     15(int) CompositeExtract 202 0
+             207:    206(ptr) AccessChain 204 37
+                              Store 207 205
+             208:     15(int) CompositeExtract 202 1
+             209:    206(ptr) AccessChain 204 75
+                              Store 209 208
+             210:     15(int) CompositeExtract 202 2
+             211:    206(ptr) AccessChain 204 114
+                              Store 211 210
+             212:     15(int) CompositeExtract 202 3
+             213:    206(ptr) AccessChain 204 135
+                              Store 213 212
+             214:   11(fvec4) FunctionCall 29(baz(struct-SamplerArray-s21[4]1;s21;s21;s21;s21;) 198(param) 194(structUniform.samplers.tn[0]) 195(structUniform.samplers.tn[1]) 196(structUniform.samplers.tn[2]) 197(structUniform.samplers.tn[3])
+             215:   11(fvec4) FAdd 193 214
+                              Store 190(o) 215
                               Return
                               FunctionEnd
          8(bar():      6(int) Function None 7
                9:             Label
-           16(j):     15(ptr) Variable Function
-                              Store 16(j) 17
-              24:     23(ptr) AccessChain 20 22
-              26:      6(int) AtomicIAdd 24 25 17 25
-                              Store 16(j) 26
-              27:     23(ptr) AccessChain 20 22
-              29:      6(int) AtomicIAdd 27 25 17 28
-              30:      6(int) ISub 29 25
-                              Store 16(j) 30
-              31:     23(ptr) AccessChain 20 22
-              32:      6(int) Load 31
-                              Store 16(j) 32
-              33:     23(ptr) AccessChain 20 22
-              34:      6(int) AtomicIAdd 33 25 17 25
-                              Store 16(j) 34
-              35:     23(ptr) AccessChain 20 22
-              36:      6(int) AtomicIAdd 35 25 17 28
-                              Store 16(j) 36
-              37:     23(ptr) AccessChain 20 22
-              38:      6(int) AtomicISub 37 25 17 25
-                              Store 16(j) 38
-              39:     23(ptr) AccessChain 20 22
-              40:      6(int) Load 16(j)
-              41:      6(int) AtomicUMin 39 25 17 40
-                              Store 16(j) 41
-              42:     23(ptr) AccessChain 20 22
-              43:      6(int) Load 16(j)
-              44:      6(int) AtomicUMax 42 25 17 43
-                              Store 16(j) 44
-              45:     23(ptr) AccessChain 20 22
-              46:      6(int) Load 16(j)
-              47:      6(int) AtomicAnd 45 25 17 46
-                              Store 16(j) 47
-              48:     23(ptr) AccessChain 20 22
-              49:      6(int) Load 16(j)
-              50:      6(int) AtomicOr 48 25 17 49
-                              Store 16(j) 50
-              51:     23(ptr) AccessChain 20 22
-              52:      6(int) Load 16(j)
-              53:      6(int) AtomicXor 51 25 17 52
-                              Store 16(j) 53
-              54:     23(ptr) AccessChain 20 22
-              55:      6(int) Load 16(j)
-              56:      6(int) AtomicExchange 54 25 17 55
-                              Store 16(j) 56
-              57:     23(ptr) AccessChain 20 22
-              58:      6(int) Load 16(j)
-              59:      6(int) AtomicCompareExchange 57 25 17 17 58 17
-                              Store 16(j) 59
-              61:     23(ptr) AccessChain 20 60
-              62:      6(int) AtomicIAdd 61 25 17 25
-              66:     23(ptr) AccessChain 65 22
-              67:      6(int) AtomicIAdd 66 25 17 25
-                              MemoryBarrier 25 68
-              69:      6(int) Load 16(j)
-                              ReturnValue 69
+           32(j):     31(ptr) Variable Function
+                              Store 32(j) 33
+              39:     38(ptr) AccessChain 36 37
+              41:      6(int) AtomicIAdd 39 40 33 40
+                              Store 32(j) 41
+              42:     38(ptr) AccessChain 36 37
+              44:      6(int) AtomicIAdd 42 40 33 43
+              45:      6(int) ISub 44 40
+                              Store 32(j) 45
+              46:     38(ptr) AccessChain 36 37
+              47:      6(int) Load 46
+                              Store 32(j) 47
+              48:     38(ptr) AccessChain 36 37
+              49:      6(int) AtomicIAdd 48 40 33 40
+                              Store 32(j) 49
+              50:     38(ptr) AccessChain 36 37
+              51:      6(int) AtomicIAdd 50 40 33 43
+                              Store 32(j) 51
+              52:     38(ptr) AccessChain 36 37
+              53:      6(int) AtomicISub 52 40 33 40
+                              Store 32(j) 53
+              54:     38(ptr) AccessChain 36 37
+              55:      6(int) Load 32(j)
+              56:      6(int) AtomicUMin 54 40 33 55
+                              Store 32(j) 56
+              57:     38(ptr) AccessChain 36 37
+              58:      6(int) Load 32(j)
+              59:      6(int) AtomicUMax 57 40 33 58
+                              Store 32(j) 59
+              60:     38(ptr) AccessChain 36 37
+              61:      6(int) Load 32(j)
+              62:      6(int) AtomicAnd 60 40 33 61
+                              Store 32(j) 62
+              63:     38(ptr) AccessChain 36 37
+              64:      6(int) Load 32(j)
+              65:      6(int) AtomicOr 63 40 33 64
+                              Store 32(j) 65
+              66:     38(ptr) AccessChain 36 37
+              67:      6(int) Load 32(j)
+              68:      6(int) AtomicXor 66 40 33 67
+                              Store 32(j) 68
+              69:     38(ptr) AccessChain 36 37
+              70:      6(int) Load 32(j)
+              71:      6(int) AtomicExchange 69 40 33 70
+                              Store 32(j) 71
+              72:     38(ptr) AccessChain 36 37
+              73:      6(int) Load 32(j)
+              74:      6(int) AtomicCompareExchange 72 40 33 33 73 33
+                              Store 32(j) 74
+              76:     38(ptr) AccessChain 36 75
+              77:      6(int) AtomicIAdd 76 40 33 40
+              81:     38(ptr) AccessChain 80 37
+              82:      6(int) AtomicIAdd 81 40 33 40
+                              MemoryBarrier 40 83
+              84:      6(int) Load 32(j)
+                              ReturnValue 84
                               FunctionEnd
         13(foo():   11(fvec4) Function None 12
               14:             Label
-           73(f):     72(ptr) Variable Function
-         103(v2):    102(ptr) Variable Function
-         114(v4):    113(ptr) Variable Function
-              78:     77(ptr) AccessChain 76 22
-              79:   10(float) Load 78
-              83:     77(ptr) AccessChain 82(bufferInstance) 22
-              84:   10(float) Load 83
-              85:   10(float) FAdd 79 84
-              94:     77(ptr) AccessChain 92 93 60
-              95:   10(float) Load 94
-              96:   10(float) FAdd 85 95
-              98:     23(ptr) AccessChain 92 93 97
-              99:      6(int) Load 98
-             100:   10(float) ConvertUToF 99
-             101:   10(float) FAdd 96 100
-                              Store 73(f) 101
-             105:    104(ptr) AccessChain 92 60
-             106:   86(fvec2) Load 105
-             107:    104(ptr) AccessChain 92 97
-             108:   86(fvec2) Load 107
-             109:   86(fvec2) FAdd 106 108
-             110:    104(ptr) AccessChain 92 93 22
-             111:   86(fvec2) Load 110
-             112:   86(fvec2) FAdd 109 111
-                              Store 103(v2) 112
-             116:    115(ptr) AccessChain 92 22
-             117:   11(fvec4) Load 116
-             119:    115(ptr) AccessChain 92 118 22
-             120:   11(fvec4) Load 119
-             121:   11(fvec4) FAdd 117 120
-             122:    115(ptr) AccessChain 92 118 60
-             123:   11(fvec4) Load 122
-             124:   11(fvec4) FAdd 121 123
-             125:    115(ptr) AccessChain 92 118 97
-             126:   11(fvec4) Load 125
-             127:   11(fvec4) FAdd 124 126
-             128:    115(ptr) AccessChain 76 60
-             129:   11(fvec4) Load 128
-             130:   11(fvec4) FAdd 127 129
-             131:    115(ptr) AccessChain 82(bufferInstance) 60
-             132:   11(fvec4) Load 131
-             133:   11(fvec4) FAdd 130 132
-             138:         135 Load 137(t1)
-             141:   11(fvec4) ImageSampleImplicitLod 138 140
-             142:   11(fvec4) FAdd 133 141
-                              Store 114(v4) 142
-             143:   10(float) Load 73(f)
-             144:   11(fvec4) CompositeConstruct 143 143 143 143
-             145:   86(fvec2) Load 103(v2)
-             147:   10(float) CompositeExtract 145 0
-             148:   10(float) CompositeExtract 145 1
-             149:   11(fvec4) CompositeConstruct 147 148 146 146
-             150:   11(fvec4) FMul 144 149
-             151:   11(fvec4) Load 114(v4)
-             152:   11(fvec4) FMul 150 151
-                              ReturnValue 152
+           88(f):     87(ptr) Variable Function
+         120(v2):    119(ptr) Variable Function
+         131(v4):    130(ptr) Variable Function
+              93:     92(ptr) AccessChain 91 37
+              94:   10(float) Load 93
+              98:     92(ptr) AccessChain 97(bufferInstance) 37
+              99:   10(float) Load 98
+             100:   10(float) FAdd 94 99
+             111:     92(ptr) AccessChain 109 110 75
+             112:   10(float) Load 111
+             113:   10(float) FAdd 100 112
+             115:     38(ptr) AccessChain 109 110 114
+             116:      6(int) Load 115
+             117:   10(float) ConvertUToF 116
+             118:   10(float) FAdd 113 117
+                              Store 88(f) 118
+             122:    121(ptr) AccessChain 109 75
+             123:  101(fvec2) Load 122
+             124:    121(ptr) AccessChain 109 114
+             125:  101(fvec2) Load 124
+             126:  101(fvec2) FAdd 123 125
+             127:    121(ptr) AccessChain 109 110 37
+             128:  101(fvec2) Load 127
+             129:  101(fvec2) FAdd 126 128
+                              Store 120(v2) 129
+             133:    132(ptr) AccessChain 109 37
+             134:   11(fvec4) Load 133
+             136:    132(ptr) AccessChain 109 135 37
+             137:   11(fvec4) Load 136
+             138:   11(fvec4) FAdd 134 137
+             139:    132(ptr) AccessChain 109 135 75
+             140:   11(fvec4) Load 139
+             141:   11(fvec4) FAdd 138 140
+             142:    132(ptr) AccessChain 109 135 114
+             143:   11(fvec4) Load 142
+             144:   11(fvec4) FAdd 141 143
+             145:    132(ptr) AccessChain 91 75
+             146:   11(fvec4) Load 145
+             147:   11(fvec4) FAdd 144 146
+             148:    132(ptr) AccessChain 97(bufferInstance) 75
+             149:   11(fvec4) Load 148
+             150:   11(fvec4) FAdd 147 149
+             152:          21 Load 151(t1)
+             155:   11(fvec4) ImageSampleImplicitLod 152 154
+             156:   11(fvec4) FAdd 150 155
+             158:          21 Load 157(structUniform.t0)
+             159:   11(fvec4) ImageSampleImplicitLod 158 154
+             160:   11(fvec4) FAdd 156 159
+                              Store 131(v4) 160
+             161:   10(float) Load 88(f)
+             162:   11(fvec4) CompositeConstruct 161 161 161 161
+             163:  101(fvec2) Load 120(v2)
+             165:   10(float) CompositeExtract 163 0
+             166:   10(float) CompositeExtract 163 1
+             167:   11(fvec4) CompositeConstruct 165 166 164 164
+             168:   11(fvec4) FMul 162 167
+             169:   11(fvec4) Load 131(v4)
+             170:   11(fvec4) FMul 168 169
+                              ReturnValue 170
+                              FunctionEnd
+29(baz(struct-SamplerArray-s21[4]1;s21;s21;s21;s21;):   11(fvec4) Function None 23
+    24(samplers):     19(ptr) FunctionParameter
+25(samplers.tn[0]):     22(ptr) FunctionParameter
+26(samplers.tn[1]):     22(ptr) FunctionParameter
+27(samplers.tn[2]):     22(ptr) FunctionParameter
+28(samplers.tn[3]):     22(ptr) FunctionParameter
+              30:             Label
+             173:          21 Load 25(samplers.tn[0])
+             174:   11(fvec4) ImageSampleImplicitLod 173 154
+             175:          21 Load 26(samplers.tn[1])
+             176:   11(fvec4) ImageSampleImplicitLod 175 154
+             177:   11(fvec4) FAdd 174 176
+             178:          21 Load 27(samplers.tn[2])
+             179:   11(fvec4) ImageSampleImplicitLod 178 154
+             180:   11(fvec4) FAdd 177 179
+             181:          21 Load 28(samplers.tn[3])
+             182:   11(fvec4) ImageSampleImplicitLod 181 154
+             183:   11(fvec4) FAdd 180 182
+                              ReturnValue 183
                               FunctionEnd
diff --git a/Test/gl_MaxSamples_32.conf b/Test/gl_MaxSamples_32.conf
new file mode 100644
index 0000000..a1baaf5
--- /dev/null
+++ b/Test/gl_MaxSamples_32.conf
@@ -0,0 +1,111 @@
+MaxLights 32
+MaxClipPlanes 6
+MaxTextureUnits 32
+MaxTextureCoords 32
+MaxVertexAttribs 64
+MaxVertexUniformComponents 4096
+MaxVaryingFloats 64
+MaxVertexTextureImageUnits 32
+MaxCombinedTextureImageUnits 80
+MaxTextureImageUnits 32
+MaxFragmentUniformComponents 4096
+MaxDrawBuffers 32
+MaxVertexUniformVectors 128
+MaxVaryingVectors 8
+MaxFragmentUniformVectors 16
+MaxVertexOutputVectors 16
+MaxFragmentInputVectors 15
+MinProgramTexelOffset -8
+MaxProgramTexelOffset 7
+MaxClipDistances 8
+MaxComputeWorkGroupCountX 65535
+MaxComputeWorkGroupCountY 65535
+MaxComputeWorkGroupCountZ 65535
+MaxComputeWorkGroupSizeX 1024
+MaxComputeWorkGroupSizeY 1024
+MaxComputeWorkGroupSizeZ 64
+MaxComputeUniformComponents 1024
+MaxComputeTextureImageUnits 16
+MaxComputeImageUniforms 8
+MaxComputeAtomicCounters 8
+MaxComputeAtomicCounterBuffers 1
+MaxVaryingComponents 60
+MaxVertexOutputComponents 64
+MaxGeometryInputComponents 64
+MaxGeometryOutputComponents 128
+MaxFragmentInputComponents 128
+MaxImageUnits 8
+MaxCombinedImageUnitsAndFragmentOutputs 8
+MaxCombinedShaderOutputResources 8
+MaxImageSamples 0
+MaxVertexImageUniforms 0
+MaxTessControlImageUniforms 0
+MaxTessEvaluationImageUniforms 0
+MaxGeometryImageUniforms 0
+MaxFragmentImageUniforms 8
+MaxCombinedImageUniforms 8
+MaxGeometryTextureImageUnits 16
+MaxGeometryOutputVertices 256
+MaxGeometryTotalOutputComponents 1024
+MaxGeometryUniformComponents 1024
+MaxGeometryVaryingComponents 64
+MaxTessControlInputComponents 128
+MaxTessControlOutputComponents 128
+MaxTessControlTextureImageUnits 16
+MaxTessControlUniformComponents 1024
+MaxTessControlTotalOutputComponents 4096
+MaxTessEvaluationInputComponents 128
+MaxTessEvaluationOutputComponents 128
+MaxTessEvaluationTextureImageUnits 16
+MaxTessEvaluationUniformComponents 1024
+MaxTessPatchComponents 120
+MaxPatchVertices 32
+MaxTessGenLevel 64
+MaxViewports 16
+MaxVertexAtomicCounters 0
+MaxTessControlAtomicCounters 0
+MaxTessEvaluationAtomicCounters 0
+MaxGeometryAtomicCounters 0
+MaxFragmentAtomicCounters 8
+MaxCombinedAtomicCounters 8
+MaxAtomicCounterBindings 1
+MaxVertexAtomicCounterBuffers 0
+MaxTessControlAtomicCounterBuffers 0
+MaxTessEvaluationAtomicCounterBuffers 0
+MaxGeometryAtomicCounterBuffers 0
+MaxFragmentAtomicCounterBuffers 1
+MaxCombinedAtomicCounterBuffers 1
+MaxAtomicCounterBufferSize 16384
+MaxTransformFeedbackBuffers 4
+MaxTransformFeedbackInterleavedComponents 64
+MaxCullDistances 8
+MaxCombinedClipAndCullDistances 8
+MaxSamples 32
+MaxMeshOutputVerticesNV 256
+MaxMeshOutputPrimitivesNV 512
+MaxMeshWorkGroupSizeX_NV 32
+MaxMeshWorkGroupSizeY_NV 1
+MaxMeshWorkGroupSizeZ_NV 1
+MaxTaskWorkGroupSizeX_NV 32
+MaxTaskWorkGroupSizeY_NV 1
+MaxTaskWorkGroupSizeZ_NV 1
+MaxMeshViewCountNV 4
+MaxMeshOutputVerticesEXT 256
+MaxMeshOutputPrimitivesEXT 256
+MaxMeshWorkGroupSizeX_EXT 128
+MaxMeshWorkGroupSizeY_EXT 128
+MaxMeshWorkGroupSizeZ_EXT 128
+MaxTaskWorkGroupSizeX_EXT 128
+MaxTaskWorkGroupSizeY_EXT 128
+MaxTaskWorkGroupSizeZ_EXT 128
+MaxMeshViewCountEXT 4
+MaxDualSourceDrawBuffersEXT 1
+nonInductiveForLoops 1
+whileLoops 1
+doWhileLoops 1
+generalUniformIndexing 1
+generalAttributeMatrixVectorIndexing 1
+generalVaryingIndexing 1
+generalSamplerIndexing 1
+generalVariableIndexing 1
+generalConstantMatrixVectorIndexing 1
\ No newline at end of file
diff --git a/Test/gl_MaxSamples_64.conf b/Test/gl_MaxSamples_64.conf
new file mode 100644
index 0000000..dcab319
--- /dev/null
+++ b/Test/gl_MaxSamples_64.conf
@@ -0,0 +1,111 @@
+MaxLights 32
+MaxClipPlanes 6
+MaxTextureUnits 32
+MaxTextureCoords 32
+MaxVertexAttribs 64
+MaxVertexUniformComponents 4096
+MaxVaryingFloats 64
+MaxVertexTextureImageUnits 32
+MaxCombinedTextureImageUnits 80
+MaxTextureImageUnits 32
+MaxFragmentUniformComponents 4096
+MaxDrawBuffers 32
+MaxVertexUniformVectors 128
+MaxVaryingVectors 8
+MaxFragmentUniformVectors 16
+MaxVertexOutputVectors 16
+MaxFragmentInputVectors 15
+MinProgramTexelOffset -8
+MaxProgramTexelOffset 7
+MaxClipDistances 8
+MaxComputeWorkGroupCountX 65535
+MaxComputeWorkGroupCountY 65535
+MaxComputeWorkGroupCountZ 65535
+MaxComputeWorkGroupSizeX 1024
+MaxComputeWorkGroupSizeY 1024
+MaxComputeWorkGroupSizeZ 64
+MaxComputeUniformComponents 1024
+MaxComputeTextureImageUnits 16
+MaxComputeImageUniforms 8
+MaxComputeAtomicCounters 8
+MaxComputeAtomicCounterBuffers 1
+MaxVaryingComponents 60
+MaxVertexOutputComponents 64
+MaxGeometryInputComponents 64
+MaxGeometryOutputComponents 128
+MaxFragmentInputComponents 128
+MaxImageUnits 8
+MaxCombinedImageUnitsAndFragmentOutputs 8
+MaxCombinedShaderOutputResources 8
+MaxImageSamples 0
+MaxVertexImageUniforms 0
+MaxTessControlImageUniforms 0
+MaxTessEvaluationImageUniforms 0
+MaxGeometryImageUniforms 0
+MaxFragmentImageUniforms 8
+MaxCombinedImageUniforms 8
+MaxGeometryTextureImageUnits 16
+MaxGeometryOutputVertices 256
+MaxGeometryTotalOutputComponents 1024
+MaxGeometryUniformComponents 1024
+MaxGeometryVaryingComponents 64
+MaxTessControlInputComponents 128
+MaxTessControlOutputComponents 128
+MaxTessControlTextureImageUnits 16
+MaxTessControlUniformComponents 1024
+MaxTessControlTotalOutputComponents 4096
+MaxTessEvaluationInputComponents 128
+MaxTessEvaluationOutputComponents 128
+MaxTessEvaluationTextureImageUnits 16
+MaxTessEvaluationUniformComponents 1024
+MaxTessPatchComponents 120
+MaxPatchVertices 32
+MaxTessGenLevel 64
+MaxViewports 16
+MaxVertexAtomicCounters 0
+MaxTessControlAtomicCounters 0
+MaxTessEvaluationAtomicCounters 0
+MaxGeometryAtomicCounters 0
+MaxFragmentAtomicCounters 8
+MaxCombinedAtomicCounters 8
+MaxAtomicCounterBindings 1
+MaxVertexAtomicCounterBuffers 0
+MaxTessControlAtomicCounterBuffers 0
+MaxTessEvaluationAtomicCounterBuffers 0
+MaxGeometryAtomicCounterBuffers 0
+MaxFragmentAtomicCounterBuffers 1
+MaxCombinedAtomicCounterBuffers 1
+MaxAtomicCounterBufferSize 16384
+MaxTransformFeedbackBuffers 4
+MaxTransformFeedbackInterleavedComponents 64
+MaxCullDistances 8
+MaxCombinedClipAndCullDistances 8
+MaxSamples 64
+MaxMeshOutputVerticesNV 256
+MaxMeshOutputPrimitivesNV 512
+MaxMeshWorkGroupSizeX_NV 32
+MaxMeshWorkGroupSizeY_NV 1
+MaxMeshWorkGroupSizeZ_NV 1
+MaxTaskWorkGroupSizeX_NV 32
+MaxTaskWorkGroupSizeY_NV 1
+MaxTaskWorkGroupSizeZ_NV 1
+MaxMeshViewCountNV 4
+MaxMeshOutputVerticesEXT 256
+MaxMeshOutputPrimitivesEXT 256
+MaxMeshWorkGroupSizeX_EXT 128
+MaxMeshWorkGroupSizeY_EXT 128
+MaxMeshWorkGroupSizeZ_EXT 128
+MaxTaskWorkGroupSizeX_EXT 128
+MaxTaskWorkGroupSizeY_EXT 128
+MaxTaskWorkGroupSizeZ_EXT 128
+MaxMeshViewCountEXT 4
+MaxDualSourceDrawBuffersEXT 1
+nonInductiveForLoops 1
+whileLoops 1
+doWhileLoops 1
+generalUniformIndexing 1
+generalAttributeMatrixVectorIndexing 1
+generalVaryingIndexing 1
+generalSamplerIndexing 1
+generalVariableIndexing 1
+generalConstantMatrixVectorIndexing 1
\ No newline at end of file
diff --git a/Test/gl_samplemask_array_size.frag b/Test/gl_samplemask_array_size.frag
new file mode 100644
index 0000000..52ef849
--- /dev/null
+++ b/Test/gl_samplemask_array_size.frag
@@ -0,0 +1,10 @@
+#version 320 es
+
+layout(location = 0) out mediump vec4 fragColor;
+void main (void)
+{
+       for (int i = 0; i < gl_SampleMask.length(); ++i)
+              gl_SampleMask[i] = int(0xAAAAAAAA);
+
+       fragColor = vec4(0.0, 1.0, 0.0, 1.0);
+}
\ No newline at end of file
diff --git a/Test/glsl.450.subgroupRotate.comp b/Test/glsl.450.subgroupRotate.comp
new file mode 100644
index 0000000..7f8c007
--- /dev/null
+++ b/Test/glsl.450.subgroupRotate.comp
@@ -0,0 +1,73 @@
+#version 450
+
+#extension GL_KHR_shader_subgroup_rotate: enable
+
+layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
+
+readonly buffer roblock
+{
+    uint delta;
+} ro;
+
+layout(binding = 0) buffer Buffers
+{
+    vec4  f4;
+    ivec4 i4;
+    uvec4 u4;
+    dvec4 d4;
+} data[4];
+
+void main()
+{
+    uint delta = ro.delta;
+
+    data[delta].f4.x   = subgroupRotate(data[0].f4.x,    delta);
+    data[delta].f4.xy  = subgroupRotate(data[1].f4.xy,   delta);
+    data[delta].f4.xyz = subgroupRotate(data[2].f4.xyz,  delta);
+    data[delta].f4     = subgroupRotate(data[3].f4,      delta);
+
+    data[delta].i4.x   = subgroupRotate(data[0].i4.x,    delta);
+    data[delta].i4.xy  = subgroupRotate(data[1].i4.xy,   delta);
+    data[delta].i4.xyz = subgroupRotate(data[2].i4.xyz,  delta);
+    data[delta].i4     = subgroupRotate(data[3].i4,      delta);
+
+    data[delta].u4.x   = subgroupRotate(data[0].u4.x,    delta);
+    data[delta].u4.xy  = subgroupRotate(data[1].u4.xy,   delta);
+    data[delta].u4.xyz = subgroupRotate(data[2].u4.xyz,  delta);
+    data[delta].u4     = subgroupRotate(data[3].u4,      delta);
+
+    data[delta].d4.x   = subgroupRotate(data[0].d4.x,    delta);
+    data[delta].d4.xy  = subgroupRotate(data[1].d4.xy,   delta);
+    data[delta].d4.xyz = subgroupRotate(data[2].d4.xyz,  delta);
+    data[delta].d4     = subgroupRotate(data[3].d4,      delta);
+
+    data[delta].i4.x   =   int(subgroupRotate(data[0].i4.x < 0,                   delta));
+    data[delta].i4.xy  = ivec2(subgroupRotate(lessThan(data[1].i4.xy, ivec2(0)),  delta));
+    data[delta].i4.xyz = ivec3(subgroupRotate(lessThan(data[1].i4.xyz, ivec3(0)), delta));
+    data[delta].i4     = ivec4(subgroupRotate(lessThan(data[1].i4, ivec4(0)),     delta));
+
+    data[delta].f4.x   = subgroupClusteredRotate(data[0].f4.x,    delta, 1);
+    data[delta].f4.xy  = subgroupClusteredRotate(data[1].f4.xy,   delta, 1);
+    data[delta].f4.xyz = subgroupClusteredRotate(data[2].f4.xyz,  delta, 1);
+    data[delta].f4     = subgroupClusteredRotate(data[3].f4,      delta, 1);
+
+    data[delta].i4.x   = subgroupClusteredRotate(data[0].i4.x,    delta, 1);
+    data[delta].i4.xy  = subgroupClusteredRotate(data[1].i4.xy,   delta, 1);
+    data[delta].i4.xyz = subgroupClusteredRotate(data[2].i4.xyz,  delta, 1);
+    data[delta].i4     = subgroupClusteredRotate(data[3].i4,      delta, 1);
+
+    data[delta].u4.x   = subgroupClusteredRotate(data[0].u4.x,    delta, 1);
+    data[delta].u4.xy  = subgroupClusteredRotate(data[1].u4.xy,   delta, 1);
+    data[delta].u4.xyz = subgroupClusteredRotate(data[2].u4.xyz,  delta, 1);
+    data[delta].u4     = subgroupClusteredRotate(data[3].u4,      delta, 1);
+
+    data[delta].d4.x   = subgroupClusteredRotate(data[0].d4.x,    delta, 1);
+    data[delta].d4.xy  = subgroupClusteredRotate(data[1].d4.xy,   delta, 1);
+    data[delta].d4.xyz = subgroupClusteredRotate(data[2].d4.xyz,  delta, 1);
+    data[delta].d4     = subgroupClusteredRotate(data[3].d4,      delta, 1);
+
+    data[delta].i4.x   =   int(subgroupClusteredRotate(data[0].i4.x < 0,                   delta, 1));
+    data[delta].i4.xy  = ivec2(subgroupClusteredRotate(lessThan(data[1].i4.xy, ivec2(0)),  delta, 1));
+    data[delta].i4.xyz = ivec3(subgroupClusteredRotate(lessThan(data[1].i4.xyz, ivec3(0)), delta, 1));
+    data[delta].i4     = ivec4(subgroupClusteredRotate(lessThan(data[1].i4, ivec4(0)),     delta, 1));
+}
diff --git a/Test/glsl.es320.extTextureShadowLod.frag b/Test/glsl.es320.extTextureShadowLod.frag
new file mode 100644
index 0000000..4912563
--- /dev/null
+++ b/Test/glsl.es320.extTextureShadowLod.frag
@@ -0,0 +1,22 @@
+#version 320 es
+
+#extension GL_EXT_texture_shadow_lod : enable
+
+
+uniform lowp sampler2DArrayShadow s2da;
+uniform lowp samplerCubeArrayShadow sca;
+uniform lowp samplerCubeShadow sc;
+
+in lowp vec4 tc;
+out lowp float c;
+void main()
+{
+    c = texture(s2da, tc, 0.0);
+    c = texture(sca, tc, 0.0, 0.0);
+    c = textureOffset(s2da, tc, ivec2(0.0), 0.0);
+    c = textureLod(s2da, tc, 0.0);
+    c = textureLod(sc, tc, 0.0);
+    c = textureLod(sca, tc, 0.0, 0.0);
+    c = textureLodOffset(s2da, tc, 0.0, ivec2(0.0));
+
+}
diff --git a/Test/glsl.es320.subgroupRotate.comp b/Test/glsl.es320.subgroupRotate.comp
new file mode 100644
index 0000000..c59a84b
--- /dev/null
+++ b/Test/glsl.es320.subgroupRotate.comp
@@ -0,0 +1,62 @@
+#version 320 es
+
+#extension GL_KHR_shader_subgroup_rotate: enable
+
+layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
+
+readonly buffer roblock
+{
+    uint delta;
+} ro;
+
+layout(binding = 0) buffer Buffers
+{
+    vec4  f4;
+    ivec4 i4;
+    uvec4 u4;
+} data[4];
+
+void main()
+{
+    uint delta = ro.delta;
+
+    data[0].f4.x   = subgroupRotate(data[0].f4.x,    delta);
+    data[0].f4.xy  = subgroupRotate(data[1].f4.xy,   delta);
+    data[0].f4.xyz = subgroupRotate(data[2].f4.xyz,  delta);
+    data[0].f4     = subgroupRotate(data[3].f4,      delta);
+
+    data[0].i4.x   = subgroupRotate(data[0].i4.x,    delta);
+    data[0].i4.xy  = subgroupRotate(data[1].i4.xy,   delta);
+    data[0].i4.xyz = subgroupRotate(data[2].i4.xyz,  delta);
+    data[0].i4     = subgroupRotate(data[3].i4,      delta);
+
+    data[1].u4.x   = subgroupRotate(data[0].u4.x,    delta);
+    data[1].u4.xy  = subgroupRotate(data[1].u4.xy,   delta);
+    data[1].u4.xyz = subgroupRotate(data[2].u4.xyz,  delta);
+    data[1].u4     = subgroupRotate(data[3].u4,      delta);
+
+    data[1].i4.x   =   int(subgroupRotate(data[0].i4.x < 0,                   delta));
+    data[1].i4.xy  = ivec2(subgroupRotate(lessThan(data[1].i4.xy, ivec2(0)),  delta));
+    data[1].i4.xyz = ivec3(subgroupRotate(lessThan(data[1].i4.xyz, ivec3(0)), delta));
+    data[1].i4     = ivec4(subgroupRotate(lessThan(data[1].i4, ivec4(0)),     delta));
+
+    data[2].f4.x   = subgroupClusteredRotate(data[0].f4.x,    delta, 1u);
+    data[2].f4.xy  = subgroupClusteredRotate(data[1].f4.xy,   delta, 1u);
+    data[2].f4.xyz = subgroupClusteredRotate(data[2].f4.xyz,  delta, 1u);
+    data[2].f4     = subgroupClusteredRotate(data[3].f4,      delta, 1u);
+
+    data[2].i4.x   = subgroupClusteredRotate(data[0].i4.x,    delta, 1u);
+    data[2].i4.xy  = subgroupClusteredRotate(data[1].i4.xy,   delta, 1u);
+    data[2].i4.xyz = subgroupClusteredRotate(data[2].i4.xyz,  delta, 1u);
+    data[2].i4     = subgroupClusteredRotate(data[3].i4,      delta, 1u);
+
+    data[3].u4.x   = subgroupClusteredRotate(data[0].u4.x,    delta, 1u);
+    data[3].u4.xy  = subgroupClusteredRotate(data[1].u4.xy,   delta, 1u);
+    data[3].u4.xyz = subgroupClusteredRotate(data[2].u4.xyz,  delta, 1u);
+    data[3].u4     = subgroupClusteredRotate(data[3].u4,      delta, 1u);
+
+    data[3].i4.x   =   int(subgroupClusteredRotate(data[0].i4.x < 0,                   delta, 1u));
+    data[3].i4.xy  = ivec2(subgroupClusteredRotate(lessThan(data[1].i4.xy, ivec2(0)),  delta, 1u));
+    data[3].i4.xyz = ivec3(subgroupClusteredRotate(lessThan(data[1].i4.xyz, ivec3(0)), delta, 1u));
+    data[3].i4     = ivec4(subgroupClusteredRotate(lessThan(data[1].i4, ivec4(0)),     delta, 1u));
+}
diff --git a/Test/glsl.ext.textureShadowLod.frag b/Test/glsl.ext.textureShadowLod.frag
new file mode 100644
index 0000000..79c22ff
--- /dev/null
+++ b/Test/glsl.ext.textureShadowLod.frag
@@ -0,0 +1,32 @@
+#version 450
+#extension GL_EXT_texture_shadow_lod : enable
+
+uniform sampler2DArrayShadow s2da;
+uniform samplerCubeArrayShadow sca;
+uniform samplerCubeShadow sc;
+
+out float c;
+in vec4 tc;
+
+void pass() {
+    c = texture(s2da, tc, 0.0);
+    c = texture(sca, tc, 0.0, 0.0);
+    c = textureOffset(s2da, tc, ivec2(0.0), 0.0);
+    c = textureLod(s2da, tc, 0.0);
+    c = textureLod(sc, tc, 0.0);
+    c = textureLod(sca, tc, 0.0, 0.0);
+    c = textureLodOffset(s2da, tc, 0.0, ivec2(0.0));
+}
+
+#extension GL_EXT_texture_shadow_lod : disable
+void fail() {
+    // All these builtins should fail to compile
+    c = texture(s2da, tc, 0.0); 
+    c = texture(sca, tc, 0.0, 0.0);
+    c = textureOffset(s2da, tc, ivec2(0.0), 0.0);
+    c = textureLod(s2da, tc, 0.0);
+    c = textureLod(sc, tc, 0.0);
+    c = textureLod(sca, tc, 0.0, 0.0);
+    c = textureLodOffset(s2da, tc, 0.0, ivec2(0.0));
+}
+
diff --git a/Test/glsl.interpOp.error.frag b/Test/glsl.interpOp.error.frag
new file mode 100644
index 0000000..7d46f2e
--- /dev/null
+++ b/Test/glsl.interpOp.error.frag
@@ -0,0 +1,73 @@
+#version 320 es
+
+struct S
+{
+    highp float a;
+    highp float b;
+};
+layout(location = 0) in S v_var;
+
+layout(location = 2) in highp float v;
+
+struct S0 {
+    highp vec4 s_v;
+};
+
+layout(location = 3) in FIn {
+    highp float x;
+    highp vec4 xyz[1];
+    S0 s0;
+};
+
+layout(location = 7) in highp float z[1];
+
+layout(location = 8) in highp vec4 w;
+
+layout(location = 0) out mediump vec4 fragColor;
+void main (void)
+{
+    // Centroid
+    {
+        // valid
+        fragColor = vec4(interpolateAtCentroid(v));
+        fragColor = vec4(interpolateAtCentroid(x));
+        fragColor = vec4(interpolateAtCentroid(z[0]));
+        fragColor = interpolateAtCentroid(w);
+        fragColor = interpolateAtCentroid(xyz[0]);
+
+        //// invalid
+        fragColor = vec4(interpolateAtCentroid(v_var.a));
+        fragColor = vec4(interpolateAtCentroid(w.x));
+        fragColor = vec4(interpolateAtCentroid(s0.s_v));
+    }
+
+    // Sample
+    {
+        // valid
+        fragColor = vec4(interpolateAtSample(v, 0));
+        fragColor = vec4(interpolateAtSample(x, 0));
+        fragColor = vec4(interpolateAtSample(z[0], 0));
+        fragColor = interpolateAtSample(w, 0);
+        fragColor = interpolateAtSample(xyz[0], 0);
+
+        // invalid
+        fragColor = vec4(interpolateAtSample(v_var.a, 0));
+        fragColor = vec4(interpolateAtSample(w.x, 0));
+        fragColor = vec4(interpolateAtSample(s0.s_v, 0));
+    }
+
+    // Offset
+    {
+        // valid
+        fragColor = vec4(interpolateAtOffset(v,    vec2(0)));
+        fragColor = vec4(interpolateAtOffset(x,    vec2(0)));
+        fragColor = vec4(interpolateAtOffset(z[0], vec2(0)));
+        fragColor = interpolateAtOffset(w,         vec2(0));
+        fragColor = interpolateAtOffset(xyz[0],    vec2(0));
+
+        // invalid
+        fragColor = vec4(interpolateAtOffset(v_var.a, vec2(0)));
+        fragColor = vec4(interpolateAtOffset(w.x,     vec2(0)));
+        fragColor = vec4(interpolateAtOffset(s0.s_v, vec2(0)));
+    }
+}
diff --git a/Test/hlsl.buffer_ref_parameter.comp b/Test/hlsl.buffer_ref_parameter.comp
new file mode 100644
index 0000000..acd08b3
--- /dev/null
+++ b/Test/hlsl.buffer_ref_parameter.comp
@@ -0,0 +1,13 @@
+[[vk::binding(0, 0)]] ByteAddressBuffer buffer_position_ms;
+[[vk::binding(1, 0)]] RWByteAddressBuffer r;
+
+float3 pull_position(ByteAddressBuffer buffer_position, uint vertex_id) {
+    return asfloat(buffer_position.Load3(vertex_id * 3 * 4));
+}
+
+[numthreads(64, 1, 1)]
+void main(uint gi : SV_GroupIndex) {
+    float3 position_ms = pull_position(buffer_position_ms, gi);
+
+    r.Store3(0, asuint(position_ms));
+}
\ No newline at end of file
diff --git a/Test/hlsl.multiView.frag b/Test/hlsl.multiView.frag
new file mode 100644
index 0000000..79e388d
--- /dev/null
+++ b/Test/hlsl.multiView.frag
@@ -0,0 +1,5 @@
+
+float4 main(uint ViewIndex : SV_ViewID)
+{
+    return float4(ViewIndex, 0.0f, 0.0f, 0.0f);
+}
diff --git a/Test/makeDoc b/Test/makeDoc
deleted file mode 100644
index 102dc9a..0000000
--- a/Test/makeDoc
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env bash
-./glslang -p > instDesc
-asciidoc --backend=html5 instDesc
diff --git a/Test/overflow_underflow_toinf_0.frag b/Test/overflow_underflow_toinf_0.frag
new file mode 100644
index 0000000..0b1d1b9
--- /dev/null
+++ b/Test/overflow_underflow_toinf_0.frag
@@ -0,0 +1,13 @@
+#version 320 es
+precision highp float;
+out vec4 my_FragColor;
+void main()
+{
+    // GLSL ES 3.00.6 section 4.1.4 Floats:
+    // "A value with a magnitude too small to be represented as a mantissa and exponent is converted to zero."
+    // 1.0e-50 is small enough that it can't even be stored as subnormal.
+    float correct = (1.0e-50 == 0.0) ? 1.0 : 0.0;
+    float correct1 = isinf(1.0e40) ? 1.0 : 0.0;
+    vec4 foo = vec4(1.0e-50, -1.0e-50, 1.0e50, -1.0e50);
+    my_FragColor = vec4(0.0, correct, correct1, 1.0);
+}
diff --git a/Test/preprocessor.simple.vert b/Test/preprocessor.simple.vert
index 788df76..6c44850 100644
--- a/Test/preprocessor.simple.vert
+++ b/Test/preprocessor.simple.vert
@@ -46,6 +46,8 @@
 	vec3 b = a.yzy;   \
 	vec3 b = a.z;
 
+void bar(int x) {}
+
 void foo()
 {
     S s;
@@ -55,6 +57,9 @@
     s.member2.yzy();
     s.member2.xyz();
     s.member2.yzy;
+    for(int i = 0;i < 100; i = i + 1) {
+      bar (i)
+    }
     FUN_MAC()
     yzy
 
diff --git a/Test/runtests b/Test/runtests
index e7e1d33..4ab2280 100755
--- a/Test/runtests
+++ b/Test/runtests
@@ -49,6 +49,10 @@
 run badMacroArgs.frag > $TARGETDIR/badMacroArgs.frag.out
 diff -b $BASEDIR/badMacroArgs.frag.out $TARGETDIR/badMacroArgs.frag.out || HASERROR=1
 
+run gl_samplemask_array_size.frag gl_MaxSamples_32.conf -i > $TARGETDIR/gl_samplemask_array_size_32.frag.out
+diff -b $BASEDIR/gl_samplemask_array_size_32.frag.out $TARGETDIR/gl_samplemask_array_size_32.frag.out || HASERROR=1
+run gl_samplemask_array_size.frag gl_MaxSamples_64.conf -i > $TARGETDIR/gl_samplemask_array_size_64.frag.out
+diff -b $BASEDIR/gl_samplemask_array_size_64.frag.out $TARGETDIR/gl_samplemask_array_size_64.frag.out || HASERROR=1
 #
 # reflection tests
 #
diff --git a/Test/spv.1.6.quad.frag b/Test/spv.1.6.quad.frag
new file mode 100644
index 0000000..24f72de
--- /dev/null
+++ b/Test/spv.1.6.quad.frag
@@ -0,0 +1,21 @@
+#version 460 core
+#extension GL_KHR_shader_subgroup_basic: require
+#extension GL_EXT_shader_quad_control: require
+#extension GL_KHR_shader_subgroup_vote: require
+
+layout (full_quads) in;
+layout (quad_derivatives) in;
+
+flat in int iInput;
+
+out int bOut;
+
+
+void main(){
+    bool bTemp = false;
+
+    // EXT_shader_quad_control required begin
+    bTemp  = bTemp || subgroupQuadAll(iInput > 0);                      // GL_KHR_shader_subgroup_vote
+    bTemp  = bTemp || subgroupQuadAny(iInput > 0);                      // GL_KHR_shader_subgroup_vote
+    bOut = bTemp == true ? 1 : 0;
+}
\ No newline at end of file
diff --git a/Test/spv.atomicRvalue.error.vert b/Test/spv.atomicRvalue.error.vert
new file mode 100644
index 0000000..74b7c3b
--- /dev/null
+++ b/Test/spv.atomicRvalue.error.vert
@@ -0,0 +1,7 @@
+#version 440
+
+void main() {
+    uint a = 5;
+    atomicAdd(a * 2, 0);
+    atomicAdd(a, 0);
+}
diff --git a/Test/spv.coopmatKHR.comp b/Test/spv.coopmatKHR.comp
new file mode 100644
index 0000000..3bcee7f
--- /dev/null
+++ b/Test/spv.coopmatKHR.comp
@@ -0,0 +1,121 @@
+#version 450 core
+#extension GL_KHR_memory_scope_semantics : enable
+#extension GL_KHR_cooperative_matrix : enable
+#extension GL_EXT_shader_explicit_arithmetic_types : enable
+#extension GL_EXT_buffer_reference : enable
+
+layout (local_size_x = 64, local_size_y = 1, local_size_z = 1) in;
+
+const int X = 8;
+layout(constant_id = 0) const int Y = 2;
+const int Z = X*Y;
+
+coopmat<float16_t, gl_ScopeSubgroup, Z, 8, gl_MatrixUseAccumulator> mC;
+coopmat<float16_t, gl_ScopeSubgroup, Z, 8, gl_MatrixUseAccumulator> mC2[3];
+
+layout(constant_id = 1) const float F = 3.0;
+
+const coopmat<float, gl_ScopeSubgroup, Z, 8, gl_MatrixUseAccumulator> mD = coopmat<float, gl_ScopeSubgroup, Z, 8, gl_MatrixUseAccumulator>(0.0);
+const coopmat<float16_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseAccumulator> mD2 = coopmat<float16_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseAccumulator>(1);
+
+struct S { int a; int b; int c; };
+
+const S s = S(12, 23, 34);
+
+layout(set = 0, binding = 0, buffer_reference) coherent buffer Block {
+    float y[1024*1024];
+    float x[];
+} block;
+
+layout(set = 0, binding = 0) coherent buffer Block16 {
+    float16_t y[1024*1024];
+    float16_t x[];
+
+    Block b;
+} block16;
+
+coopmat<float16_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseAccumulator> f16(coopmat<float16_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseAccumulator> m) { return -m; }
+coopmat<float, gl_ScopeSubgroup, 8, 8, gl_MatrixUseAccumulator> f32(coopmat<float, gl_ScopeSubgroup, 8, 8, gl_MatrixUseAccumulator> m) { return -m; }
+
+layout(constant_id = 2) const int SC = 1;
+coopmat<float16_t, gl_ScopeSubgroup, SC, SC, gl_MatrixUseAccumulator> scm[SC][SC];
+
+// sized for coopmat<float16_t, gl_ScopeSubgroup, 16, 16, gl_MatrixUseAccumulator>
+shared uvec4 shmatrix[16*16*2/16];
+
+void main()
+{
+    coopmat<float, gl_ScopeSubgroup, 16, (2>1?8:4), gl_MatrixUseAccumulator> m = coopmat<float, gl_ScopeSubgroup, 16, (2>1?8:4), gl_MatrixUseAccumulator>(0.0);
+
+    m = m + m;
+    m = m - m;
+    m = -m;
+    m = 2.0*m;
+    m = m*2.0;
+
+    coopmat<float16_t, gl_ScopeSubgroup, 16, 8, gl_MatrixUseAccumulator> m2 = coopmat<float16_t, gl_ScopeSubgroup, 16, 8, gl_MatrixUseAccumulator>(m);
+
+    float x = m[1];
+    m[0] = x;
+
+    coopMatLoad(m, block.x, 16, 128, gl_CooperativeMatrixLayoutRowMajor);
+    coopMatStore(m, block.x, 16, 128, gl_CooperativeMatrixLayoutRowMajor);
+    coopMatLoad(m2, block16.x, 16, 128, gl_CooperativeMatrixLayoutRowMajor);
+    coopMatStore(m2, block16.x, 16, 128, gl_CooperativeMatrixLayoutRowMajor);
+    coopMatLoad(m, block16.b.x, 16, 128, gl_CooperativeMatrixLayoutRowMajor);
+    coopMatStore(m, block16.b.x, 16, 128, gl_CooperativeMatrixLayoutRowMajor);
+
+    coopmat<float16_t, gl_ScopeSubgroup, 16, 8, gl_MatrixUseA> A;
+    coopmat<float16_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseB> B;
+    coopmat<float, gl_ScopeSubgroup, 16, 8, gl_MatrixUseAccumulator> C;
+    coopmat<float, gl_ScopeSubgroup, 16, 8, gl_MatrixUseAccumulator> D;
+    D = coopMatMulAdd(A, B, C);
+
+    int l = D.length();
+
+    coopmat<float16_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseAccumulator> E;
+
+    coopmat<float16_t, gl_ScopeSubgroup, Z, Z, gl_MatrixUseAccumulator> F = coopmat<float16_t, gl_ScopeSubgroup, Z, Z, gl_MatrixUseAccumulator>(0.0);
+
+    coopmat<float, gl_ScopeSubgroup, 16, (2>1?8:4), gl_MatrixUseAccumulator> a[5];
+    a[3][0] = 1.0;
+
+    float md1 = mD[1];
+
+    md1 += (m += m)[1234];
+
+    mC2[1] = mC2[2];
+
+    coopMatLoad(m, block.y, 16, 128, gl_CooperativeMatrixLayoutRowMajor);
+    coopMatStore(m, block.y, 16, 128, gl_CooperativeMatrixLayoutRowMajor);
+    coopMatLoad(m2, block16.y, 16, 128, gl_CooperativeMatrixLayoutRowMajor);
+    coopMatStore(m2, block16.y, 16, 128, gl_CooperativeMatrixLayoutRowMajor);
+
+    coopmat<float16_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseAccumulator> p1;
+    coopmat<float, gl_ScopeSubgroup, 8, 8, gl_MatrixUseAccumulator> p2;
+
+    p1 = f16(p1);
+    p2 = f32(p2);
+
+    p1 = coopmat<float16_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseAccumulator>(0.0);
+    p2 = coopmat<float, gl_ScopeSubgroup, 8, 8, gl_MatrixUseAccumulator>(0.0);
+
+    p1 /= p1;
+
+    p1 *= float16_t(2.0);
+    p2 *= 4.0;
+
+    coopmat<float16_t, gl_ScopeSubgroup, 16, 8, gl_MatrixUseAccumulator> ms;
+    coopMatLoad(ms, shmatrix, 1, 2, gl_CooperativeMatrixLayoutRowMajor);
+    coopMatStore(ms, shmatrix, 1, 2, gl_CooperativeMatrixLayoutRowMajor);
+
+    coopmat<int8_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> ms8A;
+    coopmat<int8_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseB> ms8B;
+    coopmat<int8_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseAccumulator> ms8C;
+    coopMatMulAdd(ms8A, ms8B, ms8C);
+    coopMatMulAdd(ms8A, ms8B, ms8C, 0);
+    coopMatMulAdd(ms8A, ms8B, ms8C, gl_MatrixOperandsSaturatingAccumulation);
+
+    coopmat<int16_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> m16;
+    coopMatStore(m16, shmatrix, 1, 2, gl_CooperativeMatrixLayoutRowMajor);
+}
diff --git a/Test/spv.coopmatKHR_Error.comp b/Test/spv.coopmatKHR_Error.comp
new file mode 100644
index 0000000..f2e5a52
--- /dev/null
+++ b/Test/spv.coopmatKHR_Error.comp
@@ -0,0 +1,69 @@
+#version 450 core
+#extension GL_KHR_memory_scope_semantics : enable
+#extension GL_KHR_cooperative_matrix : enable
+#extension GL_EXT_shader_explicit_arithmetic_types : enable
+
+layout (local_size_x = 64, local_size_y = 1, local_size_z = 1) in;
+
+float<16> ftemplate16;
+
+coopmat fnoparams;
+
+struct S
+{
+    int s;
+};
+
+coopmat<void, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> fbadtype;
+coopmat<S, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> fbadtype2;
+coopmat<16, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> fbadtype3;
+
+coopmat<float16_t, gl_ScopeSubgroup, 8, gl_MatrixUseA> fbadnumparams;
+
+int X = 8;
+
+coopmat<float16_t, gl_ScopeSubgroup, 8, X, gl_MatrixUseA> fbadparam;
+
+layout(constant_id = 0) const int Y = 1;
+
+shared coopmat<float16_t, gl_ScopeSubgroup, 16, 16> sharedmat;
+
+layout(set = 0, binding = 0) buffer InvBlock {
+    coopmat<float16_t, gl_ScopeSubgroup, 16, 16, gl_MatrixUseA> bufmat;
+} invblock;
+
+void main()
+{
+    coopmat<float, gl_ScopeSubgroup, 16, 8, gl_MatrixUseA> f32_16_8;
+    coopmat<float16_t, gl_ScopeSubgroup, 16, 8, gl_MatrixUseA> f16_16_8;
+
+    // invalid implicit conversions
+    f32_16_8 = f16_16_8;
+    f32_16_8 = f16_16_8 + f16_16_8;
+
+    coopmat<float16_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> f16_8_8;
+
+    // mismatching dimensions
+    f16_16_8 = f16_8_8;
+
+    coopmat<float16_t, gl_ScopeSubgroup, 8, Y, gl_MatrixUseA> f16_8_Y;
+    coopmat<float16_t, gl_ScopeSubgroup, 8, (Y+1), gl_MatrixUseA> f16_8_Y1;
+
+    // mismatching dimensions with specialization constants
+    f16_8_Y = f16_8_Y1;
+
+    // wrong arguments for constructor
+    f16_8_8 = coopmat<float16_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(1, 1);
+
+    // can't construct from a builtin type
+    mat4 m4;
+    coopmat<float, gl_ScopeSubgroup, 4, 4, gl_MatrixUseA> f32_4_4 = coopmat<float, gl_ScopeSubgroup, 4, 4, gl_MatrixUseA>(m4);
+
+    // only support a single array subscript
+    f16_16_8[0][0];
+
+    // don't support scalar component selection
+    f16_16_8.x;
+
+    transpose(f16_8_8);
+}
diff --git a/Test/spv.coopmatKHR_arithmetic.comp b/Test/spv.coopmatKHR_arithmetic.comp
new file mode 100644
index 0000000..611de24
--- /dev/null
+++ b/Test/spv.coopmatKHR_arithmetic.comp
@@ -0,0 +1,85 @@
+#version 450 core
+#extension GL_KHR_memory_scope_semantics : enable
+#extension GL_KHR_cooperative_matrix : enable
+#extension GL_EXT_shader_explicit_arithmetic_types : enable
+
+layout (local_size_x = 64, local_size_y = 1, local_size_z = 1) in;
+
+
+void main()
+{
+    coopmat<float, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> f;
+    coopmat<float, gl_ScopeSubgroup, 8, 8, gl_MatrixUseB> f2;
+    coopmat<float, gl_ScopeSubgroup, 16, 8, gl_MatrixUseA> f3;
+
+    coopmat<float16_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> f16;
+
+    coopmat<uint8_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> u8;
+    coopmat<int8_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> i8;
+    coopmat<uint32_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> u32;
+
+    f+f;
+    f-f;
+    f*f;
+    f/f;
+    f+=f;
+    f-=f;
+    f*=f;
+    f/=f;
+    f*2.0;
+    2.0*f;
+    f*=2.0;
+
+    f16+f16;
+    f16-f16;
+    f16*f16;
+    f16/f16;
+    f16+=f16;
+    f16-=f16;
+    f16*=f16;
+    f16/=f16;
+    f16*float16_t(2.0);
+    float16_t(2.0)*f16;
+    f16*=float16_t(2.0);
+
+    u32+u32;
+    u32-u32;
+    u32*u32;
+    u32/u32;
+    u32+=u32;
+    u32-=u32;
+    u32*=u32;
+    u32/=u32;
+    u32*uint32_t(2);
+    uint32_t(2)*u32;
+    u32*=uint32_t(2);
+
+    u8+u8;
+    u8-u8;
+    u8*u8;
+    u8/u8;
+    u8+=u8;
+    u8-=u8;
+    u8*=u8;
+    u8/=u8;
+    u8*uint8_t(2);
+    uint8_t(2)*u8;
+    u8*=uint8_t(2);
+
+    i8+i8;
+    i8-i8;
+    i8*i8;
+    i8/i8;
+    i8+=i8;
+    i8-=i8;
+    i8*=i8;
+    i8/=i8;
+    i8*int8_t(2);
+    int8_t(2)*i8;
+    i8*=int8_t(2);
+
+    -f;
+    -f16;
+    -i8;
+    -u8;
+}
diff --git a/Test/spv.coopmatKHR_arithmeticError.comp b/Test/spv.coopmatKHR_arithmeticError.comp
new file mode 100644
index 0000000..57381cd
--- /dev/null
+++ b/Test/spv.coopmatKHR_arithmeticError.comp
@@ -0,0 +1,87 @@
+#version 450 core
+#extension GL_KHR_memory_scope_semantics : enable
+#extension GL_KHR_cooperative_matrix : enable
+#extension GL_EXT_shader_explicit_arithmetic_types : enable
+
+layout (local_size_x = 64, local_size_y = 1, local_size_z = 1) in;
+
+
+void main()
+{
+    coopmat<float, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> f;
+    coopmat<float, gl_ScopeSubgroup, 8, 8, gl_MatrixUseB> f2;
+    coopmat<float, gl_ScopeSubgroup, 16, 8, gl_MatrixUseA> f3;
+
+    coopmat<float16_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> f16;
+
+    coopmat<uint8_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> u8;
+    coopmat<int8_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> i8;
+    coopmat<int32_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> i32;
+
+    f+1.0;
+    f-1.0;
+    f/1.0;
+    1.0+f;
+    1.0-f;
+    1.0/f;
+    f+=1.0;
+    f-=1.0;
+    f/=1.0;
+
+    f+f16;
+    f-f16;
+    f*f16;
+    f/f16;
+    f+=f16;
+    f-=f16;
+    f*=f16;
+    f/=f16;
+
+    f+f2;
+    f-f2;
+    f*f2;
+    f/f2;
+    f+=f2;
+    f-=f2;
+    f*=f2;
+    f/=f2;
+
+    f+f3;
+    f-f3;
+    f*f3;
+    f/f3;
+    f+=f3;
+    f-=f3;
+    f*=f3;
+    f/=f3;
+
+    u8+i8;
+    u8-i8;
+    u8*i8;
+    u8/i8;
+    u8+=i8;
+    u8-=i8;
+    u8*=i8;
+    u8/=i8;
+
+    u8+uint8_t(1);
+    u8-uint8_t(1);
+    u8/uint8_t(1);
+    u8+=uint8_t(1);
+    u8-=uint8_t(1);
+    u8/=uint8_t(1);
+
+    i8+int8_t(1);
+    i8-int8_t(1);
+    i8/int8_t(1);
+    i8+=int8_t(1);
+    i8-=int8_t(1);
+    i8/=int8_t(1);
+
+    i32+1;
+    i32-1;
+    i32/1;
+    i32+=1;
+    i32-=1;
+    i32/=1;
+}
diff --git a/Test/spv.coopmatKHR_constructor.comp b/Test/spv.coopmatKHR_constructor.comp
new file mode 100644
index 0000000..b0f19be
--- /dev/null
+++ b/Test/spv.coopmatKHR_constructor.comp
@@ -0,0 +1,49 @@
+#version 450 core
+#extension GL_KHR_memory_scope_semantics : enable
+#extension GL_KHR_cooperative_matrix : enable
+#extension GL_EXT_shader_explicit_arithmetic_types : enable
+
+layout (local_size_x = 64, local_size_y = 1, local_size_z = 1) in;
+
+
+void main()
+{
+
+#define TESTCONST(T, BASE) \
+    coopmat<T, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(coopmat<float,     gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(BASE+1.0)); \
+    coopmat<T, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(coopmat<float16_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(BASE+2.0)); \
+    coopmat<T, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(coopmat<uint32_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(BASE+3));    \
+    coopmat<T, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(coopmat<uint16_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(BASE+4));    \
+    coopmat<T, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(coopmat<uint8_t,  gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(BASE+5));    \
+    coopmat<T, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(coopmat<int32_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(BASE+6));     \
+    coopmat<T, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(coopmat<int16_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(BASE+7));     \
+    coopmat<T, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(coopmat<int8_t,  gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(BASE+8));
+
+    TESTCONST(float, 0)
+    TESTCONST(float16_t, 10)
+    TESTCONST(uint32_t, 20)
+    TESTCONST(uint16_t, 30)
+    TESTCONST(uint8_t, 40)
+    TESTCONST(int32_t, 50)
+    TESTCONST(int16_t, 60)
+    TESTCONST(int8_t, 70)
+
+#define TESTVAR(T, BASE) \
+    { coopmat<float,     gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> v = coopmat<float,     gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(BASE+1.0); coopmat<T, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(v); }  \
+    { coopmat<float16_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> v = coopmat<float16_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(BASE+2.0); coopmat<T, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(v); }  \
+    { coopmat<uint32_t,  gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> v = coopmat<uint32_t,  gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(BASE+3);   coopmat<T, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(v); }  \
+    { coopmat<uint16_t,  gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> v = coopmat<uint16_t,  gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(BASE+4);   coopmat<T, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(v); }  \
+    { coopmat<uint8_t,   gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> v = coopmat<uint8_t,   gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(BASE+5);   coopmat<T, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(v); }  \
+    { coopmat<int32_t,   gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> v = coopmat<int32_t,   gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(BASE+6);   coopmat<T, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(v); }  \
+    { coopmat<int16_t,   gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> v = coopmat<int16_t,   gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(BASE+7);   coopmat<T, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(v); }  \
+    { coopmat<int8_t,    gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> v = coopmat<int8_t,    gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(BASE+8);   coopmat<T, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(v); }
+
+    TESTVAR(float, 100)
+    TESTVAR(float16_t, 110)
+    TESTVAR(uint32_t, 120)
+    TESTVAR(uint16_t, 130)
+    TESTVAR(uint8_t, 140)
+    TESTVAR(int32_t, 150)
+    TESTVAR(int16_t, 160)
+    TESTVAR(int8_t, 170)
+}
diff --git a/Test/spv.coopmatKHR_constructorError.comp b/Test/spv.coopmatKHR_constructorError.comp
new file mode 100644
index 0000000..7f00eb1
--- /dev/null
+++ b/Test/spv.coopmatKHR_constructorError.comp
@@ -0,0 +1,16 @@
+#version 450 core
+#extension GL_KHR_memory_scope_semantics : enable
+#extension GL_KHR_cooperative_matrix : enable
+#extension GL_EXT_shader_explicit_arithmetic_types : enable
+
+layout (local_size_x = 64, local_size_y = 1, local_size_z = 1) in;
+
+
+void main()
+{
+    // Test each kind of shape mismatch
+    coopmat<float, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(coopmat<float, gl_ScopeWorkgroup, 8, 8, gl_MatrixUseA>(0.0));
+    coopmat<float, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(coopmat<float, gl_ScopeSubgroup, 16, 8, gl_MatrixUseA>(0.0));
+    coopmat<float, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(coopmat<float, gl_ScopeSubgroup, 8, 16, gl_MatrixUseA>(0.0));
+    coopmat<float, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA>(coopmat<float, gl_ScopeSubgroup, 8, 8,  gl_MatrixUseB>(0.0));
+}
diff --git a/Test/spv.debuginfo.bufferref.glsl.frag b/Test/spv.debuginfo.bufferref.glsl.frag
new file mode 100644
index 0000000..c2002fa
--- /dev/null
+++ b/Test/spv.debuginfo.bufferref.glsl.frag
@@ -0,0 +1,28 @@
+#version 450 core
+#extension GL_EXT_buffer_reference : enable
+
+layout(buffer_reference, std430) buffer MeshVertexPositions {
+  float data[];
+};
+
+struct Mesh {
+  MeshVertexPositions positions;
+};
+
+layout(set = 0, binding = 0) readonly buffer PerPass_meshes {
+  Mesh data[];
+} perPass_meshes;
+
+layout(location = 0) out vec4 out_fragColor;
+
+layout(location = 0) in flat uint tri_idx0;
+
+void main() {
+    Mesh meshData = perPass_meshes.data[tri_idx0];
+
+    vec3 vertex_pos0 = vec3(meshData.positions.data[3 * tri_idx0],
+                            meshData.positions.data[3 * tri_idx0 + 1],
+                            meshData.positions.data[3 * tri_idx0 + 2]);
+    
+    out_fragColor = vec4(vertex_pos0, 1.0);
+}
diff --git a/Test/spv.debuginfo.scalar_types.glsl.frag b/Test/spv.debuginfo.scalar_types.glsl.frag
new file mode 100644
index 0000000..36595ea
--- /dev/null
+++ b/Test/spv.debuginfo.scalar_types.glsl.frag
@@ -0,0 +1,55 @@
+/*
+The MIT License (MIT)
+
+Copyright (c) 2023 NVIDIA CORPORATION.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+#version 460
+
+#extension GL_EXT_shader_explicit_arithmetic_types : require
+
+bool VAR_bool;
+int VAR_int;
+uint VAR_uint;
+float VAR_float;
+double VAR_double;
+int8_t VAR_int8_t;
+uint8_t VAR_uint8_t;
+int16_t VAR_int16_t;
+uint16_t VAR_uint16_t;
+int64_t VAR_int64_t;
+uint64_t VAR_uint64_t;
+float16_t VAR_float16_t;
+
+void main() {
+    VAR_bool = bool(0);
+    VAR_int = int(0);
+    VAR_uint = uint(0);
+    VAR_float = float(0);
+    VAR_double = double(0);
+    VAR_int8_t = int8_t(0);
+    VAR_uint8_t = uint8_t(0);
+    VAR_int16_t = int16_t(0);
+    VAR_uint16_t = uint16_t(0);
+    VAR_int64_t = int64_t(0);
+    VAR_uint64_t = uint64_t(0);
+    VAR_float16_t = float16_t(0);
+}
\ No newline at end of file
diff --git a/Test/spv.exportFunctions.comp b/Test/spv.exportFunctions.comp
new file mode 100644
index 0000000..9332c65
--- /dev/null
+++ b/Test/spv.exportFunctions.comp
@@ -0,0 +1,9 @@
+#version 450
+
+float add(float a, float b) {
+    return a + b;
+}
+
+int foo() {
+    return 0;
+}
diff --git a/Test/spv.ext.meshShaderBuiltinsShadingRate.mesh b/Test/spv.ext.meshShaderBuiltinsShadingRate.mesh
new file mode 100644
index 0000000..b99125d
--- /dev/null
+++ b/Test/spv.ext.meshShaderBuiltinsShadingRate.mesh
@@ -0,0 +1,77 @@
+#version 460
+
+#define MAX_VER  81
+#define MAX_PRIM 32
+
+#define BARRIER() \
+    memoryBarrierShared(); \
+    barrier();
+
+#extension GL_EXT_mesh_shader : enable
+#extension GL_EXT_fragment_shading_rate : enable
+
+layout(local_size_x = 32, local_size_y=1, local_size_z=1) in;
+
+layout(max_vertices=MAX_VER) out;
+layout(max_primitives=MAX_PRIM) out;
+layout(triangles) out;
+
+// test use of builtins in mesh shaders:
+
+void main()
+{
+    uint iid = gl_LocalInvocationID.x;
+    uint gid = gl_WorkGroupID.x;
+    uvec3 numWorkGrous = gl_NumWorkGroups;
+    uint vertexCount = MAX_VER; // vertexCount <= max_vertices
+    uint primitiveCount = MAX_PRIM; // primitiveCount <= max_primtives
+    SetMeshOutputsEXT(vertexCount, primitiveCount);
+
+    gl_MeshVerticesEXT[iid].gl_Position = vec4(1.0);
+    gl_MeshVerticesEXT[iid].gl_PointSize = 2.0;
+    gl_MeshVerticesEXT[iid].gl_ClipDistance[3] = 3.0;
+    gl_MeshVerticesEXT[iid].gl_CullDistance[2] = 4.0;
+
+    BARRIER();
+
+    gl_MeshVerticesEXT[iid+1].gl_Position = gl_MeshVerticesEXT[iid].gl_Position;
+    gl_MeshVerticesEXT[iid+1].gl_PointSize = gl_MeshVerticesEXT[iid].gl_PointSize;
+    gl_MeshVerticesEXT[iid+1].gl_ClipDistance[3] = gl_MeshVerticesEXT[iid].gl_ClipDistance[3];
+    gl_MeshVerticesEXT[iid+1].gl_CullDistance[2] = gl_MeshVerticesEXT[iid].gl_CullDistance[2];
+
+    BARRIER();
+
+    gl_MeshPrimitivesEXT[iid].gl_PrimitiveID = 6;
+    gl_MeshPrimitivesEXT[iid].gl_Layer = 7;
+    gl_MeshPrimitivesEXT[iid].gl_ViewportIndex = 8;
+    gl_MeshPrimitivesEXT[iid].gl_CullPrimitiveEXT = false;
+    gl_MeshPrimitivesEXT[iid].gl_PrimitiveShadingRateEXT = 0;
+
+    BARRIER();
+
+    gl_MeshPrimitivesEXT[iid+1].gl_PrimitiveID = gl_MeshPrimitivesEXT[iid].gl_PrimitiveID;
+    gl_MeshPrimitivesEXT[iid+1].gl_Layer = gl_MeshPrimitivesEXT[iid].gl_Layer;
+    gl_MeshPrimitivesEXT[iid+1].gl_ViewportIndex = gl_MeshPrimitivesEXT[iid].gl_ViewportIndex;
+    gl_MeshPrimitivesEXT[iid+1].gl_CullPrimitiveEXT = gl_MeshPrimitivesEXT[iid].gl_CullPrimitiveEXT;
+    gl_MeshPrimitivesEXT[iid+1].gl_PrimitiveShadingRateEXT = 0;
+
+    BARRIER();
+
+    // check bound limits
+    gl_PrimitiveTriangleIndicesEXT[0] = uvec3(257); // should truncate 257 -> 1, range is between [0, vertexCount-1]
+    gl_PrimitiveTriangleIndicesEXT[primitiveCount - 1] = uvec3(2); // array size is primitiveCount*3 for triangle
+    gl_PrimitiveTriangleIndicesEXT[gid] = gl_PrimitiveTriangleIndicesEXT[gid-1];
+
+    BARRIER();
+}
+
+// test use of builtins enabled by other extensions
+#extension GL_ARB_shader_draw_parameters : enable
+#extension GL_EXT_multiview : enable
+
+void testAdditionalBuiltins()
+{
+    int id = gl_DrawIDARB; // GL_ARB_shader_draw_parameters
+    int viewIdx = gl_ViewIndex; // GL_EXT_multiview
+   
+}
\ No newline at end of file
diff --git a/Test/spv.ext.textureShadowLod.error.frag b/Test/spv.ext.textureShadowLod.error.frag
new file mode 100644
index 0000000..ef6ec21
--- /dev/null
+++ b/Test/spv.ext.textureShadowLod.error.frag
@@ -0,0 +1,13 @@
+#version 450
+
+layout(binding = 0) uniform sampler2DArrayShadow s2da;
+
+layout(location = 0) out vec4 c_out;
+
+layout(location = 0) in vec4 tc;
+
+void main()
+{
+    float c = textureLod(s2da, tc, 0);
+    c_out = vec4(c);
+}
diff --git a/Test/spv.ext.textureShadowLod.frag b/Test/spv.ext.textureShadowLod.frag
new file mode 100644
index 0000000..8c879d9
--- /dev/null
+++ b/Test/spv.ext.textureShadowLod.frag
@@ -0,0 +1,20 @@
+#version 450
+#extension GL_EXT_texture_shadow_lod : enable
+
+layout(binding = 0) uniform sampler2DArrayShadow s2da;
+layout(binding = 1) uniform samplerCubeArrayShadow sca;
+layout(binding = 2) uniform samplerCubeShadow sc;
+
+layout(location = 0) out float c;
+
+layout(location = 0) in vec4 tc;
+
+void main() {
+    c = texture(s2da, tc, 0.0);
+    c = texture(sca, tc, 0.0, 0.0);
+    c = textureOffset(s2da, tc, ivec2(0.0), 0.0);
+    c = textureLod(s2da, tc, 0.0);
+    c = textureLod(sc, tc, 0.0);
+    c = textureLod(sca, tc, 0.0, 0.0);
+    c = textureLodOffset(s2da, tc, 0.0, ivec2(0.0));
+}
diff --git a/Test/spv.floatFetch.frag b/Test/spv.floatFetch.frag
new file mode 100644
index 0000000..c02ddf3
--- /dev/null
+++ b/Test/spv.floatFetch.frag
@@ -0,0 +1,941 @@
+#version 450 core
+
+#extension GL_ARB_sparse_texture2: enable
+#extension GL_ARB_sparse_texture_clamp: enable
+#extension GL_AMD_texture_gather_bias_lod: enable
+
+layout(set = 0, binding =  0) uniform sampler1D            s1D;
+layout(set = 0, binding =  1) uniform sampler2D            s2D;
+layout(set = 0, binding =  2) uniform sampler3D            s3D;
+layout(set = 0, binding =  3) uniform sampler2DRect        s2DRect;
+layout(set = 0, binding =  4) uniform samplerCube          sCube;
+layout(set = 0, binding =  5) uniform samplerBuffer        sBuffer;
+layout(set = 0, binding =  6) uniform sampler2DMS          s2DMS;
+layout(set = 0, binding =  7) uniform sampler1DArray       s1DArray;
+layout(set = 0, binding =  8) uniform sampler2DArray       s2DArray;
+layout(set = 0, binding =  9) uniform samplerCubeArray     sCubeArray;
+layout(set = 0, binding = 10) uniform sampler2DMSArray     s2DMSArray;
+
+layout(set = 0, binding = 11) uniform sampler1DShadow          s1DShadow;
+layout(set = 0, binding = 12) uniform sampler2DShadow          s2DShadow;
+layout(set = 0, binding = 13) uniform sampler2DRectShadow      s2DRectShadow;
+layout(set = 0, binding = 14) uniform samplerCubeShadow        sCubeShadow;
+layout(set = 0, binding = 15) uniform sampler1DArrayShadow     s1DArrayShadow;
+layout(set = 0, binding = 16) uniform sampler2DArrayShadow     s2DArrayShadow;
+layout(set = 0, binding = 17) uniform samplerCubeArrayShadow   sCubeArrayShadow;
+
+layout(set = 1, binding =  0) layout(rgba16f) uniform image1D          i1D;
+layout(set = 1, binding =  1) layout(rgba16f) uniform image2D          i2D;
+layout(set = 1, binding =  2) layout(rgba16f) uniform image3D          i3D;
+layout(set = 1, binding =  3) layout(rgba16f) uniform image2DRect      i2DRect;
+layout(set = 1, binding =  4) layout(rgba16f) uniform imageCube        iCube;
+layout(set = 1, binding =  5) layout(rgba16f) uniform image1DArray     i1DArray;
+layout(set = 1, binding =  6) layout(rgba16f) uniform image2DArray     i2DArray;
+layout(set = 1, binding =  7) layout(rgba16f) uniform imageCubeArray   iCubeArray;
+layout(set = 1, binding =  8) layout(rgba16f) uniform imageBuffer      iBuffer;
+layout(set = 1, binding =  9) layout(rgba16f) uniform image2DMS        i2DMS;
+layout(set = 1, binding = 10) layout(rgba16f) uniform image2DMSArray   i2DMSArray;
+
+layout(set = 2, binding =  0) uniform texture1D           t1D;
+layout(set = 2, binding =  1) uniform texture2D           t2D;
+layout(set = 2, binding =  2) uniform texture3D           t3D;
+layout(set = 2, binding =  3) uniform texture2DRect       t2DRect;
+layout(set = 2, binding =  4) uniform textureCube         tCube;
+layout(set = 2, binding =  5) uniform texture1DArray      t1DArray;
+layout(set = 2, binding =  6) uniform texture2DArray      t2DArray;
+layout(set = 2, binding =  7) uniform textureCubeArray    tCubeArray;
+layout(set = 2, binding =  8) uniform textureBuffer       tBuffer;
+layout(set = 2, binding =  9) uniform texture2DMS         t2DMS;
+layout(set = 2, binding = 10) uniform texture2DMSArray    t2DMSArray;
+
+layout(set = 2, binding = 11) uniform sampler s;
+layout(set = 2, binding = 12) uniform samplerShadow sShadow;
+
+layout(set = 3, binding = 0, input_attachment_index = 0) uniform subpassInput   subpass;
+layout(set = 3, binding = 1, input_attachment_index = 0) uniform subpassInputMS subpassMS;
+
+layout(location =  0) in float c1;
+layout(location =  1) in vec2  c2;
+layout(location =  2) in vec3  c3;
+layout(location =  3) in vec4  c4;
+
+layout(location =  4) in float compare;
+layout(location =  5) in float lod;
+layout(location =  6) in float bias;
+layout(location =  7) in float lodClamp;
+
+layout(location =  8) in float dPdxy1;
+layout(location =  9) in vec2  dPdxy2;
+layout(location = 10) in vec3  dPdxy3;
+
+const int   offset1 = 1;
+const ivec2 offset2 = ivec2(1);
+const ivec3 offset3 = ivec3(1);
+const ivec2 offsets[4] = { offset2, offset2, offset2, offset2 };
+
+layout(location = 0) out vec4 fragColor;
+
+vec4 testTexture()
+{
+    vec4 texel = vec4(0.0);
+
+    texel   += texture(s1D, c1);
+    texel   += texture(s2D, c2);
+    texel   += texture(s3D, c3);
+    texel   += texture(sCube, c3);
+    texel.x += texture(s1DShadow, c3);
+    texel.x += texture(s2DShadow, c3);
+    texel.x += texture(sCubeShadow, c4);
+    texel   += texture(s1DArray, c2);
+    texel   += texture(s2DArray, c3);
+    texel   += texture(sCubeArray, c4);
+    texel.x += texture(s1DArrayShadow, c3);
+    texel.x += texture(s2DArrayShadow, c4);
+    texel   += texture(s2DRect, c2);
+    texel.x += texture(s2DRectShadow, c3);
+    texel.x += texture(sCubeArrayShadow, c4, compare);
+
+    return texel;
+}
+
+vec4 testTextureProj()
+{
+    vec4 texel = vec4(0.0);
+
+    texel   += textureProj(s1D, c2);
+    texel   += textureProj(s1D, c4);
+    texel   += textureProj(s2D, c3);
+    texel   += textureProj(s2D, c4);
+    texel   += textureProj(s3D, c4);
+    texel.x += textureProj(s1DShadow, c4);
+    texel.x += textureProj(s2DShadow, c4);
+    texel   += textureProj(s2DRect, c3);
+    texel   += textureProj(s2DRect, c4);
+    texel.x += textureProj(s2DRectShadow, c4);
+
+    return texel;
+}
+
+vec4 testTextureLod()
+{
+    vec4 texel = vec4(0.0);
+
+    texel   += textureLod(s1D, c1, lod);
+    texel   += textureLod(s2D, c2, lod);
+    texel   += textureLod(s3D, c3, lod);
+    texel   += textureLod(sCube, c3, lod);
+    texel.x += textureLod(s1DShadow, c3, lod);
+    texel.x += textureLod(s2DShadow, c3, lod);
+    texel   += textureLod(s1DArray, c2, lod);
+    texel   += textureLod(s2DArray, c3, lod);
+    texel.x += textureLod(s1DArrayShadow, c3, lod);
+    texel   += textureLod(sCubeArray, c4, lod);
+
+    return texel;
+}
+
+vec4 testTextureOffset()
+{
+    vec4 texel = vec4(0.0);
+
+    texel   += textureOffset(s1D, c1, offset1);
+    texel   += textureOffset(s2D, c2, offset2);
+    texel   += textureOffset(s3D, c3, offset3);
+    texel   += textureOffset(s2DRect, c2, offset2);
+    texel.x += textureOffset(s2DRectShadow, c3, offset2);
+    texel.x += textureOffset(s1DShadow, c3, offset1);
+    texel.x += textureOffset(s2DShadow, c3, offset2);
+    texel   += textureOffset(s1DArray, c2, offset1);
+    texel   += textureOffset(s2DArray, c3, offset2);
+    texel.x += textureOffset(s1DArrayShadow, c3, offset1);
+    texel.x += textureOffset(s2DArrayShadow, c4, offset2);
+
+    return texel;
+}
+
+vec4 testTextureProjOffset()
+{
+    vec4 texel = vec4(0.0);
+
+    texel   += textureProjOffset(s1D, c2, offset1);
+    texel   += textureProjOffset(s1D, c4, offset1);
+    texel   += textureProjOffset(s2D, c3, offset2);
+    texel   += textureProjOffset(s2D, c4, offset2);
+    texel   += textureProjOffset(s3D, c4, offset3);
+    texel   += textureProjOffset(s2DRect, c3, offset2);
+    texel   += textureProjOffset(s2DRect, c4, offset2);
+    texel.x += textureProjOffset(s2DRectShadow, c4, offset2);
+    texel.x += textureProjOffset(s1DShadow, c4, offset1);
+    texel.x += textureProjOffset(s2DShadow, c4, offset2);
+
+    return texel;
+}
+
+vec4 testTextureLodOffset()
+{
+    vec4 texel = vec4(0.0);
+
+    texel   += textureLodOffset(s1D, c1, lod, offset1);
+    texel   += textureLodOffset(s2D, c2, lod, offset2);
+    texel   += textureLodOffset(s3D, c3, lod, offset3);
+    texel.x += textureLodOffset(s1DShadow, c3, lod, offset1);
+    texel.x += textureLodOffset(s2DShadow, c3, lod, offset2);
+    texel   += textureLodOffset(s1DArray, c2, lod, offset1);
+    texel   += textureLodOffset(s2DArray, c3, lod, offset2);
+    texel.x += textureLodOffset(s1DArrayShadow, c3, lod, offset1);
+
+    return texel;
+}
+
+vec4 testTextureProjLodOffset()
+{
+    vec4 texel = vec4(0.0);
+
+    texel   += textureProjLodOffset(s1D, c2, lod, offset1);
+    texel   += textureProjLodOffset(s1D, c4, lod, offset1);
+    texel   += textureProjLodOffset(s2D, c3, lod, offset2);
+    texel   += textureProjLodOffset(s2D, c4, lod, offset2);
+    texel   += textureProjLodOffset(s3D, c4, lod, offset3);
+    texel.x += textureProjLodOffset(s1DShadow, c4, lod, offset1);
+    texel.x += textureProjLodOffset(s2DShadow, c4, lod, offset2);
+
+    return texel;
+}
+
+vec4 testTexelFetch()
+{
+    vec4 texel = vec4(0.0);
+
+    texel   += texelFetch(s1D, int(c1), int(lod));
+    texel   += texelFetch(s2D, ivec2(c2), int(lod));
+    texel   += texelFetch(s3D, ivec3(c3), int(lod));
+    texel   += texelFetch(s2DRect, ivec2(c2));
+    texel   += texelFetch(s1DArray, ivec2(c2), int(lod));
+    texel   += texelFetch(s2DArray, ivec3(c3), int(lod));
+    texel   += texelFetch(sBuffer, int(c1));
+    texel   += texelFetch(s2DMS, ivec2(c2), 1);
+    texel   += texelFetch(s2DMSArray, ivec3(c3), 2);
+
+    return texel;
+}
+
+vec4 testTexelFetchOffset()
+{
+    vec4 texel = vec4(0.0);
+
+    texel   += texelFetchOffset(s1D, int(c1), int(lod), offset1);
+    texel   += texelFetchOffset(s2D, ivec2(c2), int(lod), offset2);
+    texel   += texelFetchOffset(s3D, ivec3(c3), int(lod), offset3);
+    texel   += texelFetchOffset(s2DRect, ivec2(c2), offset2);
+    texel   += texelFetchOffset(s1DArray, ivec2(c2), int(lod), offset1);
+    texel   += texelFetchOffset(s2DArray, ivec3(c3), int(lod), offset2);
+
+    return texel;
+}
+
+vec4 testTextureGrad()
+{
+    vec4 texel = vec4(0.0);
+
+    texel   += textureGrad(s1D, c1, dPdxy1, dPdxy1);
+    texel   += textureGrad(s2D, c2, dPdxy2, dPdxy2);
+    texel   += textureGrad(s3D, c3, dPdxy3, dPdxy3);
+    texel   += textureGrad(sCube, c3, dPdxy3, dPdxy3);
+    texel   += textureGrad(s2DRect, c2, dPdxy2, dPdxy2);
+    texel.x += textureGrad(s2DRectShadow, c3, dPdxy2, dPdxy2);
+    texel.x += textureGrad(s1DShadow, c3, dPdxy1, dPdxy1);
+    texel.x += textureGrad(s2DShadow, c3, dPdxy2, dPdxy2);
+    texel.x += textureGrad(sCubeShadow, c4, dPdxy3, dPdxy3);
+    texel   += textureGrad(s1DArray, c2, dPdxy1, dPdxy1);
+    texel   += textureGrad(s2DArray, c3, dPdxy2, dPdxy2);
+    texel.x += textureGrad(s1DArrayShadow, c3, dPdxy1, dPdxy1);
+    texel.x += textureGrad(s2DArrayShadow, c4, dPdxy2, dPdxy2);
+    texel   += textureGrad(sCubeArray, c4, dPdxy3, dPdxy3);
+
+    return texel;
+}
+
+vec4 testTextureGradOffset()
+{
+    vec4 texel = vec4(0.0);
+
+    texel   += textureGradOffset(s1D, c1, dPdxy1, dPdxy1, offset1);
+    texel   += textureGradOffset(s2D, c2, dPdxy2, dPdxy2, offset2);
+    texel   += textureGradOffset(s3D, c3, dPdxy3, dPdxy3, offset3);
+    texel   += textureGradOffset(s2DRect, c2, dPdxy2, dPdxy2, offset2);
+    texel.x += textureGradOffset(s2DRectShadow, c3, dPdxy2, dPdxy2, offset2);
+    texel.x += textureGradOffset(s1DShadow, c3, dPdxy1, dPdxy1, offset1);
+    texel.x += textureGradOffset(s2DShadow, c3, dPdxy2, dPdxy2, offset2);
+    texel   += textureGradOffset(s1DArray, c2, dPdxy1, dPdxy1, offset1);
+    texel   += textureGradOffset(s2DArray, c3, dPdxy2, dPdxy2, offset2);
+    texel.x += textureGradOffset(s1DArrayShadow, c3, dPdxy1, dPdxy1, offset1);
+    texel.x += textureGradOffset(s2DArrayShadow, c4, dPdxy2, dPdxy2, offset2);
+
+    return texel;
+}
+
+vec4 testTextureProjGrad()
+{
+    vec4 texel = vec4(0.0);
+
+    texel   += textureProjGrad(s1D, c2, dPdxy1, dPdxy1);
+    texel   += textureProjGrad(s1D, c4, dPdxy1, dPdxy1);
+    texel   += textureProjGrad(s2D, c3, dPdxy2, dPdxy2);
+    texel   += textureProjGrad(s2D, c4, dPdxy2, dPdxy2);
+    texel   += textureProjGrad(s3D, c4, dPdxy3, dPdxy3);
+    texel   += textureProjGrad(s2DRect, c3, dPdxy2, dPdxy2);
+    texel   += textureProjGrad(s2DRect, c4, dPdxy2, dPdxy2);
+    texel.x += textureProjGrad(s2DRectShadow, c4, dPdxy2, dPdxy2);
+    texel.x += textureProjGrad(s1DShadow, c4, dPdxy1, dPdxy1);
+    texel.x += textureProjGrad(s2DShadow, c4, dPdxy2, dPdxy2);
+
+    return texel;
+}
+
+vec4 testTextureProjGradoffset()
+{
+    vec4 texel = vec4(0.0);
+
+    texel   += textureProjGradOffset(s1D, c2, dPdxy1, dPdxy1, offset1);
+    texel   += textureProjGradOffset(s1D, c4, dPdxy1, dPdxy1, offset1);
+    texel   += textureProjGradOffset(s2D, c3, dPdxy2, dPdxy2, offset2);
+    texel   += textureProjGradOffset(s2D, c4, dPdxy2, dPdxy2, offset2);
+    texel   += textureProjGradOffset(s2DRect, c3, dPdxy2, dPdxy2, offset2);
+    texel   += textureProjGradOffset(s2DRect, c4, dPdxy2, dPdxy2, offset2);
+    texel.x += textureProjGradOffset(s2DRectShadow, c4, dPdxy2, dPdxy2, offset2);
+    texel   += textureProjGradOffset(s3D, c4, dPdxy3, dPdxy3, offset3);
+    texel.x += textureProjGradOffset(s1DShadow, c4, dPdxy1, dPdxy1, offset1);
+    texel.x += textureProjGradOffset(s2DShadow, c4, dPdxy2, dPdxy2, offset2);
+
+    return texel;
+}
+
+vec4 testTextureGather()
+{
+    vec4 texel = vec4(0.0);
+
+    texel   += textureGather(s2D, c2, 0);
+    texel   += textureGather(s2DArray, c3, 0);
+    texel   += textureGather(sCube, c3, 0);
+    texel   += textureGather(sCubeArray, c4, 0);
+    texel   += textureGather(s2DRect, c2, 0);
+    texel   += textureGather(s2DShadow, c2, compare);
+    texel   += textureGather(s2DArrayShadow, c3, compare);
+    texel   += textureGather(sCubeShadow, c3, compare);
+    texel   += textureGather(sCubeArrayShadow, c4, compare);
+    texel   += textureGather(s2DRectShadow, c2, compare);
+
+    return texel;
+}
+
+vec4 testTextureGatherOffset()
+{
+    vec4 texel = vec4(0.0);
+
+    texel   += textureGatherOffset(s2D, c2, offset2, 0);
+    texel   += textureGatherOffset(s2DArray, c3, offset2, 0);
+    texel   += textureGatherOffset(s2DRect, c2, offset2, 0);
+    texel   += textureGatherOffset(s2DShadow, c2, compare, offset2);
+    texel   += textureGatherOffset(s2DArrayShadow, c3, compare, offset2);
+    texel   += textureGatherOffset(s2DRectShadow, c2, compare, offset2);
+
+    return texel;
+}
+
+vec4 testTextureGatherOffsets()
+{
+    vec4 texel = vec4(0.0);
+
+    texel   += textureGatherOffsets(s2D, c2, offsets, 0);
+    texel   += textureGatherOffsets(s2DArray, c3, offsets, 0);
+    texel   += textureGatherOffsets(s2DRect, c2, offsets, 0);
+    texel   += textureGatherOffsets(s2DShadow, c2, compare, offsets);
+    texel   += textureGatherOffsets(s2DArrayShadow, c3, compare, offsets);
+    texel   += textureGatherOffsets(s2DRectShadow, c2, compare, offsets);
+
+    return texel;
+}
+
+vec4 testTextureGatherLod()
+{
+    vec4 texel = vec4(0.0);
+
+    texel   += textureGatherLodAMD(s2D, c2, lod, 0);
+    texel   += textureGatherLodAMD(s2DArray, c3, lod, 0);
+    texel   += textureGatherLodAMD(sCube, c3, lod, 0);
+    texel   += textureGatherLodAMD(sCubeArray, c4, lod, 0);
+
+    return texel;
+}
+
+vec4 testTextureGatherLodOffset()
+{
+    vec4 texel = vec4(0.0);
+
+    texel   += textureGatherLodOffsetAMD(s2D, c2, lod, offset2, 0);
+    texel   += textureGatherLodOffsetAMD(s2DArray, c3, lod, offset2, 0);
+
+    return texel;
+}
+
+vec4 testTextureGatherLodOffsets()
+{
+    vec4 texel = vec4(0.0);
+
+    texel   += textureGatherLodOffsetsAMD(s2D, c2, lod, offsets, 0);
+    texel   += textureGatherLodOffsetsAMD(s2DArray, c3, lod, offsets, 0);
+
+    return texel;
+}
+
+ivec4 testTextureSize()
+{
+    ivec4 size = ivec4(0);
+
+    size.x      += textureSize(s1D, int(lod));
+    size.xy     += textureSize(s2D, int(lod));
+    size.xyz    += textureSize(s3D, int(lod));
+    size.xy     += textureSize(sCube, int(lod));
+    size.x      += textureSize(s1DShadow, int(lod));
+    size.xy     += textureSize(s2DShadow, int(lod));
+    size.xy     += textureSize(sCubeShadow, int(lod));
+    size.xyz    += textureSize(sCubeArray, int(lod));
+    size.xyz    += textureSize(sCubeArrayShadow, int(lod));
+    size.xy     += textureSize(s2DRect);
+    size.xy     += textureSize(s2DRectShadow);
+    size.xy     += textureSize(s1DArray, int(lod));
+    size.xyz    += textureSize(s2DArray, int(lod));
+    size.xy     += textureSize(s1DArrayShadow, int(lod));
+    size.xyz    += textureSize(s2DArrayShadow, int(lod));
+    size.x      += textureSize(sBuffer);
+    size.xy     += textureSize(s2DMS);
+    size.xyz    += textureSize(s2DMSArray);
+
+    return size;
+}
+
+vec2 testTextureQueryLod()
+{
+    vec2 lod = vec2(0.0);
+
+    lod  += textureQueryLod(s1D, c1);
+    lod  += textureQueryLod(s2D, c2);
+    lod  += textureQueryLod(s3D, c3);
+    lod  += textureQueryLod(sCube, c3);
+    lod  += textureQueryLod(s1DArray, c1);
+    lod  += textureQueryLod(s2DArray, c2);
+    lod  += textureQueryLod(sCubeArray, c3);
+    lod  += textureQueryLod(s1DShadow, c1);
+    lod  += textureQueryLod(s2DShadow, c2);
+    lod  += textureQueryLod(sCubeArrayShadow, c3);
+    lod  += textureQueryLod(s1DArrayShadow, c1);
+    lod  += textureQueryLod(s2DArrayShadow, c2);
+    lod  += textureQueryLod(sCubeArrayShadow, c3);
+
+    return lod;
+}
+
+int testTextureQueryLevels()
+{
+    int levels = 0;
+
+    levels  += textureQueryLevels(s1D);
+    levels  += textureQueryLevels(s2D);
+    levels  += textureQueryLevels(s3D);
+    levels  += textureQueryLevels(sCube);
+    levels  += textureQueryLevels(s1DShadow);
+    levels  += textureQueryLevels(s2DShadow);
+    levels  += textureQueryLevels(sCubeShadow);
+    levels  += textureQueryLevels(sCubeArray);
+    levels  += textureQueryLevels(sCubeArrayShadow);
+    levels  += textureQueryLevels(s1DArray);
+    levels  += textureQueryLevels(s2DArray);
+    levels  += textureQueryLevels(s1DArrayShadow);
+    levels  += textureQueryLevels(s2DArrayShadow);
+
+    return levels;
+}
+
+int testTextureSamples()
+{
+    int samples = 0;
+
+    samples += textureSamples(s2DMS);
+    samples += textureSamples(s2DMSArray);
+
+    return samples;
+}
+
+vec4 testImageLoad()
+{
+    vec4 texel = vec4(0.0);
+
+    texel += imageLoad(i1D, int(c1));
+    texel += imageLoad(i2D, ivec2(c2));
+    texel += imageLoad(i3D, ivec3(c3));
+    texel += imageLoad(i2DRect, ivec2(c2));
+    texel += imageLoad(iCube, ivec3(c3));
+    texel += imageLoad(iBuffer, int(c1));
+    texel += imageLoad(i1DArray, ivec2(c2));
+    texel += imageLoad(i2DArray, ivec3(c3));
+    texel += imageLoad(iCubeArray, ivec3(c3));
+    texel += imageLoad(i2DMS, ivec2(c2), 1);
+    texel += imageLoad(i2DMSArray, ivec3(c3), 1);
+
+    return texel;
+}
+
+void testImageStore(vec4 data)
+{
+    imageStore(i1D, int(c1), data);
+    imageStore(i2D, ivec2(c2), data);
+    imageStore(i3D, ivec3(c3), data);
+    imageStore(i2DRect, ivec2(c2), data);
+    imageStore(iCube, ivec3(c3), data);
+    imageStore(iBuffer, int(c1), data);
+    imageStore(i1DArray, ivec2(c2), data);
+    imageStore(i2DArray, ivec3(c3), data);
+    imageStore(iCubeArray, ivec3(c3), data);
+    imageStore(i2DMS, ivec2(c2), 1, data);
+    imageStore(i2DMSArray, ivec3(c3), 1, data);
+}
+
+vec4 testSparseTexture()
+{
+    vec4 texel = vec4(0.0);
+
+    sparseTextureARB(s2D, c2, texel);
+    sparseTextureARB(s3D, c3, texel);
+    sparseTextureARB(sCube, c3, texel);
+    sparseTextureARB(s2DShadow, c3, texel.x);
+    sparseTextureARB(sCubeShadow, c4, texel.x);
+    sparseTextureARB(s2DArray, c3, texel);
+    sparseTextureARB(sCubeArray, c4, texel);
+    sparseTextureARB(s2DArrayShadow, c4, texel.x);
+    sparseTextureARB(s2DRect, c2, texel);
+    sparseTextureARB(s2DRectShadow, c3, texel.x);
+    sparseTextureARB(sCubeArrayShadow, c4, compare, texel.x);
+
+    return texel;
+}
+
+vec4 testSparseTextureLod()
+{
+    vec4 texel = vec4(0.0);
+
+    sparseTextureLodARB(s2D, c2, lod, texel);
+    sparseTextureLodARB(s3D, c3, lod, texel);
+    sparseTextureLodARB(sCube, c3, lod, texel);
+    sparseTextureLodARB(s2DShadow, c3, lod, texel.x);
+    sparseTextureLodARB(s2DArray, c3, lod, texel);
+    sparseTextureLodARB(sCubeArray, c4, lod, texel);
+
+    return texel;
+}
+
+vec4 testSparseTextureOffset()
+{
+    vec4 texel = vec4(0.0);
+
+    sparseTextureOffsetARB(s2D, c2, offset2, texel);
+    sparseTextureOffsetARB(s3D, c3, offset3, texel);
+    sparseTextureOffsetARB(s2DRect, c2, offset2, texel);
+    sparseTextureOffsetARB(s2DRectShadow, c3, offset2, texel.x);
+    sparseTextureOffsetARB(s2DShadow, c3, offset2, texel.x);
+    sparseTextureOffsetARB(s2DArray, c3, offset2, texel);
+    sparseTextureOffsetARB(s2DArrayShadow, c4, offset2, texel.x);
+
+    return texel;
+}
+
+vec4 testSparseTextureLodOffset()
+{
+    vec4 texel = vec4(0.0);
+
+    sparseTextureLodOffsetARB(s2D, c2, lod, offset2, texel);
+    sparseTextureLodOffsetARB(s3D, c3, lod, offset3, texel);
+    sparseTextureLodOffsetARB(s2DShadow, c3, lod, offset2, texel.x);
+    sparseTextureLodOffsetARB(s2DArray, c3, lod, offset2, texel);
+
+    return texel;
+}
+
+vec4 testSparseTextureGrad()
+{
+    vec4 texel = vec4(0.0);
+
+    sparseTextureGradARB(s2D, c2, dPdxy2, dPdxy2, texel);
+    sparseTextureGradARB(s3D, c3, dPdxy3, dPdxy3, texel);
+    sparseTextureGradARB(sCube, c3, dPdxy3, dPdxy3, texel);
+    sparseTextureGradARB(s2DRect, c2, dPdxy2, dPdxy2, texel);
+    sparseTextureGradARB(s2DRectShadow, c3, dPdxy2, dPdxy2, texel.x);
+    sparseTextureGradARB(s2DShadow, c3, dPdxy2, dPdxy2, texel.x);
+    sparseTextureGradARB(sCubeShadow, c4, dPdxy3, dPdxy3, texel.x);
+    sparseTextureGradARB(s2DArray, c3, dPdxy2, dPdxy2, texel);
+    sparseTextureGradARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, texel.x);
+    sparseTextureGradARB(sCubeArray, c4, dPdxy3, dPdxy3, texel);
+
+    return texel;
+}
+
+vec4 testSparseTextureGradOffset()
+{
+    vec4 texel = vec4(0.0);
+
+    sparseTextureGradOffsetARB(s2D, c2, dPdxy2, dPdxy2, offset2, texel);
+    sparseTextureGradOffsetARB(s3D, c3, dPdxy3, dPdxy3, offset3, texel);
+    sparseTextureGradOffsetARB(s2DRect, c2, dPdxy2, dPdxy2, offset2, texel);
+    sparseTextureGradOffsetARB(s2DRectShadow, c3, dPdxy2, dPdxy2, offset2, texel.x);
+    sparseTextureGradOffsetARB(s2DShadow, c3, dPdxy2, dPdxy2, offset2, texel.x);
+    sparseTextureGradOffsetARB(s2DArray, c3, dPdxy2, dPdxy2, offset2, texel);
+    sparseTextureGradOffsetARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, offset2, texel.x);
+
+    return texel;
+}
+
+vec4 testSparseTexelFetch()
+{
+    vec4 texel = vec4(0.0);
+
+    sparseTexelFetchARB(s2D, ivec2(c2), int(lod), texel);
+    sparseTexelFetchARB(s3D, ivec3(c3), int(lod), texel);
+    sparseTexelFetchARB(s2DRect, ivec2(c2), texel);
+    sparseTexelFetchARB(s2DArray, ivec3(c3), int(lod), texel);
+    sparseTexelFetchARB(s2DMS, ivec2(c2), 1, texel);
+    sparseTexelFetchARB(s2DMSArray, ivec3(c3), 2, texel);
+
+    return texel;
+}
+
+vec4 testSparseTexelFetchOffset()
+{
+    vec4 texel = vec4(0.0);
+
+    sparseTexelFetchOffsetARB(s2D, ivec2(c2), int(lod), offset2, texel);
+    sparseTexelFetchOffsetARB(s3D, ivec3(c3), int(lod), offset3, texel);
+    sparseTexelFetchOffsetARB(s2DRect, ivec2(c2), offset2, texel);
+    sparseTexelFetchOffsetARB(s2DArray, ivec3(c3), int(lod), offset2, texel);
+
+    return texel;
+}
+
+vec4 testSparseTextureGather()
+{
+    vec4 texel = vec4(0.0);
+
+    sparseTextureGatherARB(s2D, c2, texel, 0);
+    sparseTextureGatherARB(s2DArray, c3, texel, 0);
+    sparseTextureGatherARB(sCube, c3, texel, 0);
+    sparseTextureGatherARB(sCubeArray, c4, texel, 0);
+    sparseTextureGatherARB(s2DRect, c2, texel, 0);
+    sparseTextureGatherARB(s2DShadow, c2, compare, texel);
+    sparseTextureGatherARB(s2DArrayShadow, c3, compare, texel);
+    sparseTextureGatherARB(sCubeShadow, c3, compare, texel);
+    sparseTextureGatherARB(sCubeArrayShadow, c4, compare, texel);
+    sparseTextureGatherARB(s2DRectShadow, c2, compare, texel);
+
+    return texel;
+}
+
+vec4 testSparseTextureGatherOffset()
+{
+    vec4 texel = vec4(0.0);
+
+    sparseTextureGatherOffsetARB(s2D, c2, offset2, texel, 0);
+    sparseTextureGatherOffsetARB(s2DArray, c3, offset2, texel, 0);
+    sparseTextureGatherOffsetARB(s2DRect, c2, offset2, texel, 0);
+    sparseTextureGatherOffsetARB(s2DShadow, c2, compare, offset2, texel);
+    sparseTextureGatherOffsetARB(s2DArrayShadow, c3, compare, offset2, texel);
+    sparseTextureGatherOffsetARB(s2DRectShadow, c2, compare, offset2, texel);
+
+    return texel;
+}
+
+vec4 testSparseTextureGatherOffsets()
+{
+    vec4 texel = vec4(0.0);
+    const ivec2 constOffsets[4] = ivec2[4](ivec2(1,2), ivec2(3,4), ivec2(15,16), ivec2(-2,0));
+
+    sparseTextureGatherOffsetsARB(s2D, c2, constOffsets, texel, 0);
+    sparseTextureGatherOffsetsARB(s2DArray, c3, constOffsets, texel, 0);
+    sparseTextureGatherOffsetsARB(s2DRect, c2, constOffsets, texel, 0);
+    sparseTextureGatherOffsetsARB(s2DShadow, c2, compare, constOffsets, texel);
+    sparseTextureGatherOffsetsARB(s2DArrayShadow, c3, compare, constOffsets, texel);
+    sparseTextureGatherOffsetsARB(s2DRectShadow, c2, compare, constOffsets, texel);
+
+    return texel;
+}
+
+vec4 testSparseTextureGatherLod()
+{
+    vec4 texel = vec4(0.0);
+
+    sparseTextureGatherLodAMD(s2D, c2, lod, texel, 0);
+    sparseTextureGatherLodAMD(s2DArray, c3, lod, texel, 0);
+    sparseTextureGatherLodAMD(sCube, c3, lod, texel, 0);
+    sparseTextureGatherLodAMD(sCubeArray, c4, lod, texel, 0);
+
+    return texel;
+}
+
+vec4 testSparseTextureGatherLodOffset()
+{
+    vec4 texel = vec4(0.0);
+
+    sparseTextureGatherLodOffsetAMD(s2D, c2, lod, offset2, texel, 0);
+    sparseTextureGatherLodOffsetAMD(s2DArray, c3, lod, offset2, texel, 0);
+
+    return texel;
+}
+
+vec4 testSparseTextureGatherLodOffsets()
+{
+    vec4 texel = vec4(0.0);
+
+    sparseTextureGatherLodOffsetsAMD(s2D, c2, lod, offsets, texel, 0);
+    sparseTextureGatherLodOffsetsAMD(s2DArray, c3, lod, offsets, texel, 0);
+
+    return texel;
+}
+
+vec4 testSparseImageLoad()
+{
+    vec4 texel = vec4(0.0);
+
+    sparseImageLoadARB(i2D, ivec2(c2), texel);
+    sparseImageLoadARB(i3D, ivec3(c3), texel);
+    sparseImageLoadARB(i2DRect, ivec2(c2), texel);
+    sparseImageLoadARB(iCube, ivec3(c3), texel);
+    sparseImageLoadARB(i2DArray, ivec3(c3), texel);
+    sparseImageLoadARB(iCubeArray, ivec3(c3), texel);
+    sparseImageLoadARB(i2DMS, ivec2(c2), 1, texel);
+    sparseImageLoadARB(i2DMSArray, ivec3(c3), 2, texel);
+
+    return texel;
+}
+
+vec4 testSparseTextureClamp()
+{
+    vec4 texel = vec4(0.0);
+
+    sparseTextureClampARB(s2D, c2, lodClamp, texel);
+    sparseTextureClampARB(s3D, c3, lodClamp, texel);
+    sparseTextureClampARB(sCube, c3, lodClamp, texel);
+    sparseTextureClampARB(s2DShadow, c3, lodClamp, texel.x);
+    sparseTextureClampARB(sCubeShadow, c4, lodClamp, texel.x);
+    sparseTextureClampARB(s2DArray, c3, lodClamp, texel);
+    sparseTextureClampARB(sCubeArray, c4, lodClamp, texel);
+    sparseTextureClampARB(s2DArrayShadow, c4, lodClamp, texel.x);
+    sparseTextureClampARB(sCubeArrayShadow, c4, compare, lodClamp, texel.x);
+
+    return texel;
+}
+
+vec4 testTextureClamp()
+{
+    vec4 texel = vec4(0.0);
+
+    texel   += textureClampARB(s1D, c1, lodClamp);
+    texel   += textureClampARB(s2D, c2, lodClamp);
+    texel   += textureClampARB(s3D, c3, lodClamp);
+    texel   += textureClampARB(sCube, c3, lodClamp);
+    texel.x += textureClampARB(s1DShadow, c3, lodClamp);
+    texel.x += textureClampARB(s2DShadow, c3, lodClamp);
+    texel.x += textureClampARB(sCubeShadow, c4, lodClamp);
+    texel   += textureClampARB(s1DArray, c2, lodClamp);
+    texel   += textureClampARB(s2DArray, c3, lodClamp);
+    texel   += textureClampARB(sCubeArray, c4, lodClamp);
+    texel.x += textureClampARB(s1DArrayShadow, c3, lodClamp);
+    texel.x += textureClampARB(s2DArrayShadow, c4, lodClamp);
+    texel.x += textureClampARB(sCubeArrayShadow, c4, compare, lodClamp);
+
+    return texel;
+}
+
+vec4 testSparseTextureOffsetClamp()
+{
+    vec4 texel = vec4(0.0);
+
+    sparseTextureOffsetClampARB(s2D, c2, offset2, lodClamp, texel);
+    sparseTextureOffsetClampARB(s3D, c3, offset3, lodClamp, texel);
+    sparseTextureOffsetClampARB(s2DShadow, c3, offset2, lodClamp, texel.x);
+    sparseTextureOffsetClampARB(s2DArray, c3, offset2, lodClamp, texel);
+    sparseTextureOffsetClampARB(s2DArrayShadow, c4, offset2, lodClamp, texel.x);
+
+    return texel;
+}
+
+vec4 testTextureOffsetClamp()
+{
+    vec4 texel = vec4(0.0);
+
+    texel   += textureOffsetClampARB(s1D, c1, offset1, lodClamp);
+    texel   += textureOffsetClampARB(s2D, c2, offset2, lodClamp);
+    texel   += textureOffsetClampARB(s3D, c3, offset3, lodClamp);
+    texel.x += textureOffsetClampARB(s1DShadow, c3, offset1, lodClamp);
+    texel.x += textureOffsetClampARB(s2DShadow, c3, offset2, lodClamp);
+    texel   += textureOffsetClampARB(s1DArray, c2, offset1, lodClamp);
+    texel   += textureOffsetClampARB(s2DArray, c3, offset2, lodClamp);
+    texel.x += textureOffsetClampARB(s1DArrayShadow, c3, offset1, lodClamp);
+    texel.x += textureOffsetClampARB(s2DArrayShadow, c4, offset2, lodClamp);
+    
+    return texel;
+}
+
+vec4 testSparseTextureGradClamp()
+{
+    vec4 texel = vec4(0.0);
+
+    sparseTextureGradClampARB(s2D, c2, dPdxy2, dPdxy2, lodClamp, texel);
+    sparseTextureGradClampARB(s3D, c3, dPdxy3, dPdxy3, lodClamp, texel);
+    sparseTextureGradClampARB(sCube, c3, dPdxy3, dPdxy3, lodClamp, texel);
+    sparseTextureGradClampARB(s2DShadow, c3, dPdxy2, dPdxy2, lodClamp, texel.x);
+    sparseTextureGradClampARB(sCubeShadow, c4, dPdxy3, dPdxy3, lodClamp, texel.x);
+    sparseTextureGradClampARB(s2DArray, c3, dPdxy2, dPdxy2, lodClamp, texel);
+    sparseTextureGradClampARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, lodClamp, texel.x);
+    sparseTextureGradClampARB(sCubeArray, c4, dPdxy3, dPdxy3, lodClamp, texel);
+
+    return texel;
+}
+
+vec4 testTextureGradClamp()
+{
+    vec4 texel = vec4(0.0);
+
+    texel   += textureGradClampARB(s1D, c1, dPdxy1, dPdxy1, lodClamp);
+    texel   += textureGradClampARB(s2D, c2, dPdxy2, dPdxy2, lodClamp);
+    texel   += textureGradClampARB(s3D, c3, dPdxy3, dPdxy3, lodClamp);
+    texel   += textureGradClampARB(sCube, c3, dPdxy3, dPdxy3, lodClamp);
+    texel.x += textureGradClampARB(s1DShadow, c3, dPdxy1, dPdxy1, lodClamp);
+    texel.x += textureGradClampARB(s2DShadow, c3, dPdxy2, dPdxy2, lodClamp);
+    texel.x += textureGradClampARB(sCubeShadow, c4, dPdxy3, dPdxy3, lodClamp);
+    texel   += textureGradClampARB(s1DArray, c2, dPdxy1, dPdxy1, lodClamp);
+    texel   += textureGradClampARB(s2DArray, c3, dPdxy2, dPdxy2, lodClamp);
+    texel.x += textureGradClampARB(s1DArrayShadow, c3, dPdxy1, dPdxy1, lodClamp);
+    texel.x += textureGradClampARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, lodClamp);
+    texel   += textureGradClampARB(sCubeArray, c4, dPdxy3, dPdxy3, lodClamp);
+
+    return texel;
+}
+
+vec4 testSparseTextureGradOffsetClamp()
+{
+    vec4 texel = vec4(0.0);
+
+    sparseTextureGradOffsetClampARB(s2D, c2, dPdxy2, dPdxy2, offset2, lodClamp, texel);
+    sparseTextureGradOffsetClampARB(s3D, c3, dPdxy3, dPdxy3, offset3, lodClamp, texel);
+    sparseTextureGradOffsetClampARB(s2DShadow, c3, dPdxy2, dPdxy2, offset2, lodClamp, texel.x);
+    sparseTextureGradOffsetClampARB(s2DArray, c3, dPdxy2, dPdxy2, offset2, lodClamp, texel);
+    sparseTextureGradOffsetClampARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, offset2, lodClamp, texel.x);
+
+    return texel;
+}
+
+vec4 testTextureGradOffsetClamp()
+{
+    vec4 texel = vec4(0.0);
+
+    texel   += textureGradOffsetClampARB(s1D, c1, dPdxy1, dPdxy1, offset1, lodClamp);
+    texel   += textureGradOffsetClampARB(s2D, c2, dPdxy2, dPdxy2, offset2, lodClamp);
+    texel   += textureGradOffsetClampARB(s3D, c3, dPdxy3, dPdxy3, offset3, lodClamp);
+    texel.x += textureGradOffsetClampARB(s1DShadow, c3, dPdxy1, dPdxy1, offset1, lodClamp);
+    texel.x += textureGradOffsetClampARB(s2DShadow, c3, dPdxy2, dPdxy2, offset2, lodClamp);
+    texel   += textureGradOffsetClampARB(s1DArray, c2, dPdxy1, dPdxy1, offset1, lodClamp);
+    texel   += textureGradOffsetClampARB(s2DArray, c3, dPdxy2, dPdxy2, offset2, lodClamp);
+    texel.x += textureGradOffsetClampARB(s1DArrayShadow, c3, dPdxy1, dPdxy1, offset1, lodClamp);
+    texel.x += textureGradOffsetClampARB(s2DArrayShadow, c4, dPdxy2, dPdxy2, offset2, lodClamp);
+
+    return texel;
+}
+
+vec4 testCombinedTextureSampler()
+{
+    vec4 texel = vec4(0.0);
+
+    texel   += texture(sampler1D(t1D, s), c1);
+    texel   += texture(sampler2D(t2D, s), c2);
+    texel   += texture(sampler3D(t3D, s), c3);
+    texel   += texture(samplerCube(tCube, s), c3);
+    texel.x += texture(sampler1DShadow(t1D, sShadow), c3);
+    texel.x += texture(sampler2DShadow(t2D, sShadow), c3);
+    texel.x += texture(samplerCubeShadow(tCube, sShadow), c4);
+    texel   += texture(sampler1DArray(t1DArray, s), c2);
+    texel   += texture(sampler2DArray(t2DArray, s), c3);
+    texel   += texture(samplerCubeArray(tCubeArray, s), c4);
+    texel.x += texture(sampler1DArrayShadow(t1DArray, sShadow), c3);
+    texel.x += texture(sampler2DArrayShadow(t2DArray, sShadow), c4);
+    texel   += texture(sampler2DRect(t2DRect, s), c2);
+    texel.x += texture(sampler2DRectShadow(t2DRect, sShadow), c3);
+    texel.x += texture(samplerCubeArrayShadow(tCubeArray, sShadow), c4, compare);
+
+    return texel;
+}
+
+vec4 testSubpassLoad()
+{
+    return subpassLoad(subpass) + subpassLoad(subpassMS, 2);
+}
+
+void main()
+{
+    vec4 result = vec4(0.0);
+
+    result  += testTexture();
+    result  += testTextureProj();
+    result  += testTextureLod();
+    result  += testTextureOffset();
+    result  += testTextureLodOffset();
+    result  += testTextureProjLodOffset();
+    result  += testTexelFetch();
+    result  += testTexelFetchOffset();
+    result  += testTextureGrad();
+    result  += testTextureGradOffset();
+    result  += testTextureProjGrad();
+    result  += testTextureProjGradoffset();
+    result  += testTextureGather();
+    result  += testTextureGatherOffset();
+    result  += testTextureGatherOffsets();
+    result  += testTextureGatherLod();
+    result  += testTextureGatherLodOffset();
+    result  += testTextureGatherLodOffsets();
+
+    result    += vec4(testTextureSize());
+    result.xy += vec2(testTextureQueryLod());
+    result.x  += testTextureQueryLevels();
+    result.x  += testTextureSamples();
+
+    result  += testImageLoad();
+    testImageStore(result);
+
+    result += testSparseTexture();
+    result += testSparseTextureLod();
+    result += testSparseTextureOffset();
+    result += testSparseTextureLodOffset();
+    result += testSparseTextureGrad();
+    result += testSparseTextureGradOffset();
+    result += testSparseTexelFetch();
+    result += testSparseTexelFetchOffset();
+    result += testSparseTextureGather();
+    result += testSparseTextureGatherOffset();
+    result += testSparseTextureGatherOffsets();
+    result += testSparseTextureGatherLod();
+    result += testSparseTextureGatherLodOffset();
+    result += testSparseTextureGatherLodOffsets();
+
+    result += testSparseImageLoad();
+
+    result += testSparseTextureClamp();
+    result += testTextureClamp();
+    result += testSparseTextureOffsetClamp();
+    result += testTextureOffsetClamp();
+    result += testSparseTextureGrad();
+    result += testTextureGrad();
+    result += testSparseTextureGradOffsetClamp();
+    result += testTextureGradOffsetClamp();
+
+    result += testCombinedTextureSampler();
+    result += testSubpassLoad();
+
+    fragColor = result;
+}
+
diff --git a/Test/spv.intcoopmat.comp b/Test/spv.intcoopmat.comp
index 235aa16..65aa27a 100644
--- a/Test/spv.intcoopmat.comp
+++ b/Test/spv.intcoopmat.comp
@@ -1,117 +1,123 @@
 #version 450 core
-#extension GL_KHR_memory_scope_semantics : enable
-#extension GL_NV_cooperative_matrix : enable
-#extension GL_NV_integer_cooperative_matrix : enable
-#extension GL_EXT_shader_explicit_arithmetic_types : enable
-#extension GL_EXT_buffer_reference : enable
-
+#extension GL_KHR_memory_scope_semantics : enable
+#extension GL_NV_cooperative_matrix : enable
+#extension GL_NV_integer_cooperative_matrix : enable
+#extension GL_EXT_shader_explicit_arithmetic_types : enable
+#extension GL_EXT_buffer_reference : enable
+
 layout (local_size_x = 64, local_size_y = 1, local_size_z = 1) in;
-
-const int X = 8;
-layout(constant_id = 0) const int Y = 2;
-const int Z = X*Y;
-
-icoopmatNV<8, gl_ScopeSubgroup, Z, 8> miC;
-icoopmatNV<8, gl_ScopeSubgroup, Z, 8> miC2[3];
-ucoopmatNV<8, gl_ScopeSubgroup, Z, 8> muC;
-ucoopmatNV<8, gl_ScopeSubgroup, Z, 8> muC2[3];
-
-int iarr[miC.length()];
-int iarr2[miC2[1].length()];
-int uarr[muC.length()];
-int uarr2[muC2[1].length()];
-
-const icoopmatNV<32, gl_ScopeSubgroup, Z, 8> mD = icoopmatNV<32, gl_ScopeSubgroup, Z, 8>(1);
-const ucoopmatNV<8, gl_ScopeSubgroup, 8, 8> mD2 = ucoopmatNV<8, gl_ScopeSubgroup, 8, 8>(1);
-
-struct S { int a; int b; int c; };
-
-const S s = S(12, 23, 34);
-
-layout(set = 0, binding = 0, buffer_reference) coherent buffer Block {
-    uint y[1024*1024];
-    uint x[];
-} block;
-
-layout(set = 0, binding = 0) coherent buffer Block16 {
-    int8_t y[1024*1024];
-    int8_t x[];
-
-    Block b;
-} block8;
-
-icoopmatNV<8, gl_ScopeSubgroup, 8, 8> ineg(icoopmatNV<8, gl_ScopeSubgroup, 8, 8> m) { return -m; }
-ucoopmatNV<8, gl_ScopeSubgroup, 8, 8> umul(ucoopmatNV<8, gl_ScopeSubgroup, 8, 8> m) { return m * uint8_t(2); }
-
-layout(constant_id = 2) const int SC = 1;
-ucoopmatNV<32, gl_ScopeSubgroup, SC, SC> scm[SC][SC];
-
-// sized for icoopmatNV<8, gl_ScopeSubgroup, 16, 16>
-shared uvec4 shmatrix[16*16*2/16];
-
+
+const int X = 8;
+layout(constant_id = 0) const int Y = 2;
+const int Z = X*Y;
+
+icoopmatNV<8, gl_ScopeSubgroup, Z, 8> miC;
+icoopmatNV<8, gl_ScopeSubgroup, Z, 8> miC2[3];
+ucoopmatNV<8, gl_ScopeSubgroup, Z, 8> muC;
+ucoopmatNV<8, gl_ScopeSubgroup, Z, 8> muC2[3];
+
+int iarr[miC.length()];
+int iarr2[miC2[1].length()];
+int uarr[muC.length()];
+int uarr2[muC2[1].length()];
+
+const icoopmatNV<32, gl_ScopeSubgroup, Z, 8> mD = icoopmatNV<32, gl_ScopeSubgroup, Z, 8>(1);
+const ucoopmatNV<8, gl_ScopeSubgroup, 8, 8> mD2 = ucoopmatNV<8, gl_ScopeSubgroup, 8, 8>(1);
+
+struct S { int a; int b; int c; };
+
+const S s = S(12, 23, 34);
+
+layout(set = 0, binding = 0, buffer_reference) coherent buffer Block {
+    uint y[1024*1024];
+    uint x[];
+} block;
+
+layout(set = 0, binding = 0) coherent buffer Block16 {
+    int8_t y[1024*1024];
+    int8_t x[];
+
+    Block b;
+} block8;
+
+icoopmatNV<8, gl_ScopeSubgroup, 8, 8> ineg(icoopmatNV<8, gl_ScopeSubgroup, 8, 8> m) { return -m; }
+ucoopmatNV<8, gl_ScopeSubgroup, 8, 8> umul(ucoopmatNV<8, gl_ScopeSubgroup, 8, 8> m) { return m * uint8_t(2); }
+
+layout(constant_id = 2) const int SC = 1;
+ucoopmatNV<32, gl_ScopeSubgroup, SC, SC> scm[SC][SC];
+
+// sized for icoopmatNV<8, gl_ScopeSubgroup, 16, 16>
+shared uvec4 shmatrix[16*16*2/16];
+
 void main()
 {
-    ucoopmatNV<8, gl_ScopeSubgroup, 16, (2>1?8:4)> mu = ucoopmatNV<8, gl_ScopeSubgroup, 16, (2>1?8:4)>(2);
-    icoopmatNV<8, gl_ScopeSubgroup, 16, (2>1?8:4)> mi = icoopmatNV<8, gl_ScopeSubgroup, 16, (2>1?8:4)>(2);
-
-    mu = mu + mu;
-    mu = mu - mu;
-    mi = -mi;
-    mi = mi * int8_t(2);
-
-    fcoopmatNV<16, gl_ScopeSubgroup, 16, 8> mf16_0 = fcoopmatNV<16, gl_ScopeSubgroup, 16, 8>(mu);
-    fcoopmatNV<32, gl_ScopeSubgroup, 16, 8> mf32_0 = fcoopmatNV<32, gl_ScopeSubgroup, 16, 8>(mu);
-    fcoopmatNV<16, gl_ScopeSubgroup, 16, 8> mf16_1 = fcoopmatNV<16, gl_ScopeSubgroup, 16, 8>(mi);
-    fcoopmatNV<32, gl_ScopeSubgroup, 16, 8> mf32_1 = fcoopmatNV<32, gl_ScopeSubgroup, 16, 8>(mi);
-
-    uint8_t x = mu[1];
-    mi[0] = int8_t(x);
-
-    coopMatLoadNV(mi, block.x, 16, 128, false);
-    coopMatStoreNV(mi, block.x, 16, 128, false);
-    coopMatLoadNV(mu, block8.x, 16, 128, false);
-    coopMatStoreNV(mu, block8.x, 16, 128, false);
-    coopMatLoadNV(mi, block8.b.x, 16, 128, false);
-    coopMatStoreNV(mi, block8.b.x, 16, 128, false);
-
-    ucoopmatNV<8, gl_ScopeSubgroup, 16, 8> A;
-    ucoopmatNV<8, gl_ScopeSubgroup, 8, 8> B;
-    ucoopmatNV<8, gl_ScopeSubgroup, 16, 8> C;
-    ucoopmatNV<8, gl_ScopeSubgroup, 16, 8> D;
-    D = coopMatMulAddNV(A, B, C);
-
-    int l = D.length();
-
-
-    icoopmatNV<8, gl_ScopeSubgroup, 16, (2>1?8:4)> a[5];
-    a[3][0] = int8_t(1);
-
-    int md1 = mD[1];
-
-    md1 += (mi += mi)[1234];
-
+    ucoopmatNV<8, gl_ScopeSubgroup, 16, (2>1?8:4)> mu = ucoopmatNV<8, gl_ScopeSubgroup, 16, (2>1?8:4)>(2);
+    icoopmatNV<8, gl_ScopeSubgroup, 16, (2>1?8:4)> mi = icoopmatNV<8, gl_ScopeSubgroup, 16, (2>1?8:4)>(2);
+
+    mu = mu + mu;
+    mu = mu - mu;
+    mi = -mi;
+    mi = mi * int8_t(2);
+
+    fcoopmatNV<16, gl_ScopeSubgroup, 16, 8> mf16_0 = fcoopmatNV<16, gl_ScopeSubgroup, 16, 8>(mu);
+    fcoopmatNV<32, gl_ScopeSubgroup, 16, 8> mf32_0 = fcoopmatNV<32, gl_ScopeSubgroup, 16, 8>(mu);
+    fcoopmatNV<16, gl_ScopeSubgroup, 16, 8> mf16_1 = fcoopmatNV<16, gl_ScopeSubgroup, 16, 8>(mi);
+    fcoopmatNV<32, gl_ScopeSubgroup, 16, 8> mf32_1 = fcoopmatNV<32, gl_ScopeSubgroup, 16, 8>(mi);
+
+    uint8_t x = mu[1];
+    mi[0] = int8_t(x);
+
+    coopMatLoadNV(mi, block.x, 16, 128, false);
+    coopMatStoreNV(mi, block.x, 16, 128, false);
+    coopMatLoadNV(mu, block8.x, 16, 128, false);
+    coopMatStoreNV(mu, block8.x, 16, 128, false);
+    coopMatLoadNV(mi, block8.b.x, 16, 128, false);
+    coopMatStoreNV(mi, block8.b.x, 16, 128, false);
+
+    ucoopmatNV<8, gl_ScopeSubgroup, 16, 8> A;
+    ucoopmatNV<8, gl_ScopeSubgroup, 8, 8> B;
+    ucoopmatNV<8, gl_ScopeSubgroup, 16, 8> C;
+    ucoopmatNV<8, gl_ScopeSubgroup, 16, 8> D;
+    D = coopMatMulAddNV(A, B, C);
+
+    int l = D.length();
+
+
+    icoopmatNV<8, gl_ScopeSubgroup, 16, (2>1?8:4)> a[5];
+    a[3][0] = int8_t(1);
+
+    int md1 = mD[1];
+
+    md1 += (mi += mi)[1234];
+
     muC2[0] = muC2[1];
-    muC2[1][0] = (miC2[2][0]);
-
-    coopMatLoadNV(mi, block.y, 16, 128, false);
-    coopMatStoreNV(mi, block.y, 16, 128, false);
-    coopMatLoadNV(mu, block8.y, 16, 128, false);
-    coopMatStoreNV(mu, block8.y, 16, 128, false);
-
-    icoopmatNV<8, gl_ScopeSubgroup, 8, 8> p1;
-    ucoopmatNV<8, gl_ScopeSubgroup, 8, 8> p2;
-
-    p1 = ineg(p1);
-    p2 = umul(p2);
-
-    p1 /= p1;
+    muC2[1][0] = (miC2[2][0]);
+
+    coopMatLoadNV(mi, block.y, 16, 128, false);
+    coopMatStoreNV(mi, block.y, 16, 128, false);
+    coopMatLoadNV(mu, block8.y, 16, 128, false);
+    coopMatStoreNV(mu, block8.y, 16, 128, false);
+
+    icoopmatNV<8, gl_ScopeSubgroup, 8, 8> p1;
+    ucoopmatNV<8, gl_ScopeSubgroup, 8, 8> p2;
+
+    p1 = ineg(p1);
+    p2 = umul(p2);
+
+    p1 /= p1;
     p2 /= p2;
-
-    p1 *= int8_t(2);
-    p2 *= uint8_t(4);
-
-    icoopmatNV<8, gl_ScopeSubgroup, 16, 8> ms;
-    coopMatLoadNV(ms, shmatrix, 1, 2, false);
-    coopMatStoreNV(ms, shmatrix, 1, 2, false);
-
+
+    p1 *= int8_t(2);
+    p2 *= uint8_t(4);
+
+    icoopmatNV<8, gl_ScopeSubgroup, 16, 8> ms;
+    coopMatLoadNV(ms, shmatrix, 1, 2, false);
+    coopMatStoreNV(ms, shmatrix, 1, 2, false);
+
+    icoopmatNV<16, gl_ScopeSubgroup, 16, 8> i16 = icoopmatNV<16, gl_ScopeSubgroup, 16, 8>(0);
+    ucoopmatNV<16, gl_ScopeSubgroup, 16, 8> u16 = ucoopmatNV<16, gl_ScopeSubgroup, 16, 8>(0);
+    coopMatLoadNV(i16, shmatrix, 1, 2, false);
+    coopMatStoreNV(i16, shmatrix, 1, 2, false);
+    coopMatLoadNV(u16, shmatrix, 1, 2, false);
+    coopMatStoreNV(u16, shmatrix, 1, 2, false);
 }
diff --git a/Test/spv.intrinsicsFakeEnable.vert b/Test/spv.intrinsicsFakeEnable.vert
new file mode 100644
index 0000000..a6d6a31
--- /dev/null
+++ b/Test/spv.intrinsicsFakeEnable.vert
@@ -0,0 +1,10 @@
+#version 460 core
+#extension GL_EXT_spirv_intrinsics : enable
+
+// ERROR: Overlapped input location. Make sure it could be detected even
+// if GL_EXT_spirv_intrinsics is enabled.
+layout(location = 0) in vec4 v4;
+layout(location = 0) in vec3 v3;
+
+void main() {
+}
diff --git a/Test/spv.maximalReconvergence.vert b/Test/spv.maximalReconvergence.vert
new file mode 100644
index 0000000..e152f4e
--- /dev/null
+++ b/Test/spv.maximalReconvergence.vert
@@ -0,0 +1,7 @@
+#version 460
+
+#extension GL_EXT_maximal_reconvergence : enable
+
+[[random(4)]] void main() [[maximally_reconverges]]
+{
+}
diff --git a/Test/spv.nv.dmm-allops.comp b/Test/spv.nv.dmm-allops.comp
new file mode 100644
index 0000000..5c6ed36
--- /dev/null
+++ b/Test/spv.nv.dmm-allops.comp
@@ -0,0 +1,19 @@
+#version 460
+#extension GL_NV_displacement_micromap : enable
+#extension GL_EXT_ray_query : enable
+layout(local_size_x = 16) in;
+layout(binding = 1) uniform accelerationStructureEXT as;
+layout(binding = 0) buffer block {
+	vec3 op_pos;
+	vec2 op_bary;
+};
+void main()
+{
+	op_pos =  fetchMicroTriangleVertexPositionNV(as, 1, 1, 1,	ivec2(0,0));
+	op_pos += fetchMicroTriangleVertexPositionNV(as, 1, 1, 1,	ivec2(0,1));
+	op_pos += fetchMicroTriangleVertexPositionNV(as, 1, 1, 1,	ivec2(1,0));
+
+	op_bary =  fetchMicroTriangleVertexBarycentricNV(as, 1, 1, 1, ivec2(0,0));
+	op_bary += fetchMicroTriangleVertexBarycentricNV(as, 1, 1, 1, ivec2(0,1));
+	op_bary += fetchMicroTriangleVertexBarycentricNV(as, 1, 1, 1, ivec2(1,0));
+}
diff --git a/Test/spv.nv.dmm-allops.mesh b/Test/spv.nv.dmm-allops.mesh
new file mode 100644
index 0000000..6cb945b
--- /dev/null
+++ b/Test/spv.nv.dmm-allops.mesh
@@ -0,0 +1,20 @@
+#version 460
+#extension GL_NV_displacement_micromap : enable
+#extension GL_NV_mesh_shader : enable
+#extension GL_EXT_ray_query : enable
+layout(max_vertices = 8, max_primitives = 16, triangles) out;
+layout(binding = 1) uniform accelerationStructureEXT as;
+layout(binding = 0) buffer block {
+	vec3 op_pos;
+	vec2 op_bary;
+};
+void main()
+{
+	op_pos =  fetchMicroTriangleVertexPositionNV(as, 1, 1, 1,	ivec2(0,0));
+	op_pos += fetchMicroTriangleVertexPositionNV(as, 1, 1, 1,	ivec2(0,1));
+	op_pos += fetchMicroTriangleVertexPositionNV(as, 1, 1, 1,	ivec2(1,0));
+
+	op_bary =  fetchMicroTriangleVertexBarycentricNV(as, 1, 1, 1, ivec2(0,0));
+	op_bary += fetchMicroTriangleVertexBarycentricNV(as, 1, 1, 1, ivec2(0,1));
+	op_bary += fetchMicroTriangleVertexBarycentricNV(as, 1, 1, 1, ivec2(1,0));
+}
diff --git a/Test/spv.nv.dmm-allops.rahit b/Test/spv.nv.dmm-allops.rahit
new file mode 100644
index 0000000..3edb676
--- /dev/null
+++ b/Test/spv.nv.dmm-allops.rahit
@@ -0,0 +1,26 @@
+#version 460
+#extension GL_EXT_ray_tracing : enable
+#extension GL_EXT_ray_query : enable
+#extension GL_NV_displacement_micromap : enable
+layout(binding = 1) uniform accelerationStructureEXT as;
+layout(binding = 0) buffer block {
+	vec3 op_pos;
+	vec2 op_bary;
+	uint op_hit;
+};
+void main()
+{
+	op_pos =  gl_HitMicroTriangleVertexPositionsNV[0];
+	op_pos += gl_HitMicroTriangleVertexPositionsNV[1];
+	op_pos += gl_HitMicroTriangleVertexPositionsNV[2];
+
+	op_bary =  gl_HitMicroTriangleVertexBarycentricsNV[0];
+	op_bary += gl_HitMicroTriangleVertexBarycentricsNV[1];
+	op_bary += gl_HitMicroTriangleVertexBarycentricsNV[2];
+
+	op_hit = gl_HitKindEXT;
+	op_hit &= gl_HitKindFrontFacingTriangleEXT |
+	          gl_HitKindBackFacingTriangleEXT |
+	          gl_HitKindFrontFacingMicroTriangleNV |
+	          gl_HitKindBackFacingMicroTriangleNV;
+}
diff --git a/Test/spv.nv.dmm-allops.rchit b/Test/spv.nv.dmm-allops.rchit
new file mode 100644
index 0000000..3edb676
--- /dev/null
+++ b/Test/spv.nv.dmm-allops.rchit
@@ -0,0 +1,26 @@
+#version 460
+#extension GL_EXT_ray_tracing : enable
+#extension GL_EXT_ray_query : enable
+#extension GL_NV_displacement_micromap : enable
+layout(binding = 1) uniform accelerationStructureEXT as;
+layout(binding = 0) buffer block {
+	vec3 op_pos;
+	vec2 op_bary;
+	uint op_hit;
+};
+void main()
+{
+	op_pos =  gl_HitMicroTriangleVertexPositionsNV[0];
+	op_pos += gl_HitMicroTriangleVertexPositionsNV[1];
+	op_pos += gl_HitMicroTriangleVertexPositionsNV[2];
+
+	op_bary =  gl_HitMicroTriangleVertexBarycentricsNV[0];
+	op_bary += gl_HitMicroTriangleVertexBarycentricsNV[1];
+	op_bary += gl_HitMicroTriangleVertexBarycentricsNV[2];
+
+	op_hit = gl_HitKindEXT;
+	op_hit &= gl_HitKindFrontFacingTriangleEXT |
+	          gl_HitKindBackFacingTriangleEXT |
+	          gl_HitKindFrontFacingMicroTriangleNV |
+	          gl_HitKindBackFacingMicroTriangleNV;
+}
diff --git a/Test/spv.nv.dmm-allops.rgen b/Test/spv.nv.dmm-allops.rgen
new file mode 100644
index 0000000..447df68
--- /dev/null
+++ b/Test/spv.nv.dmm-allops.rgen
@@ -0,0 +1,24 @@
+#version 460
+#extension GL_NV_displacement_micromap : enable
+#extension GL_EXT_ray_query : enable
+layout(binding = 1) uniform accelerationStructureEXT as;
+layout(binding = 0) buffer block {
+	vec3 op_pos;
+	vec2 op_bary;
+	uint op_hitmask;
+};
+void main()
+{
+	op_pos =  fetchMicroTriangleVertexPositionNV(as, 1, 1, 1,	ivec2(0,0));
+	op_pos += fetchMicroTriangleVertexPositionNV(as, 1, 1, 1,	ivec2(0,1));
+	op_pos += fetchMicroTriangleVertexPositionNV(as, 1, 1, 1,	ivec2(1,0));
+
+	op_bary =  fetchMicroTriangleVertexBarycentricNV(as, 1, 1, 1, ivec2(0,0));
+	op_bary += fetchMicroTriangleVertexBarycentricNV(as, 1, 1, 1, ivec2(0,1));
+	op_bary += fetchMicroTriangleVertexBarycentricNV(as, 1, 1, 1, ivec2(1,0));
+
+	op_hitmask = gl_HitKindFrontFacingTriangleEXT |
+	             gl_HitKindBackFacingTriangleEXT |
+	             gl_HitKindFrontFacingMicroTriangleNV |
+	             gl_HitKindBackFacingMicroTriangleNV;
+}
diff --git a/Test/spv.specConstantOp.float16.comp b/Test/spv.specConstantOp.float16.comp
new file mode 100644
index 0000000..c3db60c
--- /dev/null
+++ b/Test/spv.specConstantOp.float16.comp
@@ -0,0 +1,18 @@
+#version 450
+#extension GL_EXT_shader_explicit_arithmetic_types_float16 : require
+
+// Produce an OpSpecConstantOp with 8 bit integer type
+
+layout(constant_id = 0) const float c = 8;
+
+layout(binding=0) writeonly restrict buffer S {
+    float16_t p_out[];
+};
+
+void main()
+{
+    p_out[0] = float16_t(c);
+}
+
+
+
diff --git a/Test/spv.specConstantOp.int16.comp b/Test/spv.specConstantOp.int16.comp
new file mode 100644
index 0000000..c507843
--- /dev/null
+++ b/Test/spv.specConstantOp.int16.comp
@@ -0,0 +1,16 @@
+#version 450
+#extension GL_EXT_shader_explicit_arithmetic_types_int16 : require
+
+// Produce an OpSpecConstantOp with 16 bit integer type
+
+layout(constant_id = 0) const int c = 8;
+
+layout(binding=0) writeonly restrict buffer S {
+    uint16_t p_out[];
+};
+
+void main()
+{
+    p_out[0] = uint16_t(c);
+}
+
diff --git a/Test/spv.specConstantOp.int8.comp b/Test/spv.specConstantOp.int8.comp
new file mode 100644
index 0000000..5988210
--- /dev/null
+++ b/Test/spv.specConstantOp.int8.comp
@@ -0,0 +1,17 @@
+#version 450
+#extension GL_EXT_shader_explicit_arithmetic_types_int8 : require
+
+// Produce an OpSpecConstantOp with 8 bit integer type
+
+layout(constant_id = 0) const int c = 8;
+
+layout(binding=0) writeonly restrict buffer S {
+    uint8_t p_out[];
+};
+
+void main()
+{
+    p_out[0] = uint8_t(c);
+}
+
+
diff --git a/Test/spv.subgroupExtendedTypesRotate.comp b/Test/spv.subgroupExtendedTypesRotate.comp
new file mode 100644
index 0000000..a83335f
--- /dev/null
+++ b/Test/spv.subgroupExtendedTypesRotate.comp
@@ -0,0 +1,100 @@
+#version 450
+
+#extension GL_KHR_shader_subgroup_rotate: enable
+#extension GL_EXT_shader_subgroup_extended_types_int8: enable
+#extension GL_EXT_shader_subgroup_extended_types_int16: enable
+#extension GL_EXT_shader_subgroup_extended_types_int64: enable
+#extension GL_EXT_shader_subgroup_extended_types_float16: enable
+
+layout (local_size_x = 8) in;
+
+readonly buffer roblock
+{
+    uint delta;
+} ro;
+
+layout(binding = 0) buffer Buffers
+{
+    i8vec4 i8;
+    u8vec4 u8;
+    i16vec4 i16;
+    u16vec4 u16;
+    i64vec4 i64;
+    u64vec4 u64;
+    f16vec4 f16;
+} data[4];
+
+void main()
+{
+    uint delta = ro.delta;
+
+    data[delta].i8.x   = subgroupRotate(data[0].i8.x,    delta);
+    data[delta].i8.xy  = subgroupRotate(data[1].i8.xy,   delta);
+    data[delta].i8.xyz = subgroupRotate(data[2].i8.xyz,  delta);
+    data[delta].i8     = subgroupRotate(data[3].i8,      delta);
+
+    data[delta].i8.x   = subgroupClusteredRotate(data[0].i8.x,    delta, 1);
+    data[delta].i8.xy  = subgroupClusteredRotate(data[1].i8.xy,   delta, 1);
+    data[delta].i8.xyz = subgroupClusteredRotate(data[2].i8.xyz,  delta, 1);
+    data[delta].i8     = subgroupClusteredRotate(data[3].i8,      delta, 1);
+
+    data[delta].u8.x   = subgroupRotate(data[0].u8.x,    delta);
+    data[delta].u8.xy  = subgroupRotate(data[1].u8.xy,   delta);
+    data[delta].u8.xyz = subgroupRotate(data[2].u8.xyz,  delta);
+    data[delta].u8     = subgroupRotate(data[3].u8,      delta);
+
+    data[delta].u8.x   = subgroupClusteredRotate(data[0].u8.x,    delta, 1);
+    data[delta].u8.xy  = subgroupClusteredRotate(data[1].u8.xy,   delta, 1);
+    data[delta].u8.xyz = subgroupClusteredRotate(data[2].u8.xyz,  delta, 1);
+    data[delta].u8     = subgroupClusteredRotate(data[3].u8,      delta, 1);
+
+    data[delta].i16.x   = subgroupRotate(data[0].i16.x,    delta);
+    data[delta].i16.xy  = subgroupRotate(data[1].i16.xy,   delta);
+    data[delta].i16.xyz = subgroupRotate(data[2].i16.xyz,  delta);
+    data[delta].i16     = subgroupRotate(data[3].i16,      delta);
+
+    data[delta].i16.x   = subgroupClusteredRotate(data[0].i16.x,    delta, 1);
+    data[delta].i16.xy  = subgroupClusteredRotate(data[1].i16.xy,   delta, 1);
+    data[delta].i16.xyz = subgroupClusteredRotate(data[2].i16.xyz,  delta, 1);
+    data[delta].i16     = subgroupClusteredRotate(data[3].i16,      delta, 1);
+
+    data[delta].u16.x   = subgroupRotate(data[0].u16.x,    delta);
+    data[delta].u16.xy  = subgroupRotate(data[1].u16.xy,   delta);
+    data[delta].u16.xyz = subgroupRotate(data[2].u16.xyz,  delta);
+    data[delta].u16     = subgroupRotate(data[3].u16,      delta);
+
+    data[delta].u16.x   = subgroupClusteredRotate(data[0].u16.x,    delta, 1);
+    data[delta].u16.xy  = subgroupClusteredRotate(data[1].u16.xy,   delta, 1);
+    data[delta].u16.xyz = subgroupClusteredRotate(data[2].u16.xyz,  delta, 1);
+    data[delta].u16     = subgroupClusteredRotate(data[3].u16,      delta, 1);
+
+    data[delta].i64.x   = subgroupRotate(data[0].i64.x,    delta);
+    data[delta].i64.xy  = subgroupRotate(data[1].i64.xy,   delta);
+    data[delta].i64.xyz = subgroupRotate(data[2].i64.xyz,  delta);
+    data[delta].i64     = subgroupRotate(data[3].i64,      delta);
+
+    data[delta].i64.x   = subgroupClusteredRotate(data[0].i64.x,    delta, 1);
+    data[delta].i64.xy  = subgroupClusteredRotate(data[1].i64.xy,   delta, 1);
+    data[delta].i64.xyz = subgroupClusteredRotate(data[2].i64.xyz,  delta, 1);
+    data[delta].i64     = subgroupClusteredRotate(data[3].i64,      delta, 1);
+
+    data[delta].u64.x   = subgroupRotate(data[0].u64.x,    delta);
+    data[delta].u64.xy  = subgroupRotate(data[1].u64.xy,   delta);
+    data[delta].u64.xyz = subgroupRotate(data[2].u64.xyz,  delta);
+    data[delta].u64     = subgroupRotate(data[3].u64,      delta);
+
+    data[delta].u64.x   = subgroupClusteredRotate(data[0].u64.x,    delta, 1);
+    data[delta].u64.xy  = subgroupClusteredRotate(data[1].u64.xy,   delta, 1);
+    data[delta].u64.xyz = subgroupClusteredRotate(data[2].u64.xyz,  delta, 1);
+    data[delta].u64     = subgroupClusteredRotate(data[3].u64,      delta, 1);
+
+    data[delta].f16.x   = subgroupRotate(data[0].f16.x,    delta);
+    data[delta].f16.xy  = subgroupRotate(data[1].f16.xy,   delta);
+    data[delta].f16.xyz = subgroupRotate(data[2].f16.xyz,  delta);
+    data[delta].f16     = subgroupRotate(data[3].f16,      delta);
+
+    data[delta].f16.x   = subgroupClusteredRotate(data[0].f16.x,    delta, 1);
+    data[delta].f16.xy  = subgroupClusteredRotate(data[1].f16.xy,   delta, 1);
+    data[delta].f16.xyz = subgroupClusteredRotate(data[2].f16.xyz,  delta, 1);
+    data[delta].f16     = subgroupClusteredRotate(data[3].f16,      delta, 1);
+}
diff --git a/Test/spv.subgroupExtendedTypesRotateNeg.comp b/Test/spv.subgroupExtendedTypesRotateNeg.comp
new file mode 100644
index 0000000..01ea7e9
--- /dev/null
+++ b/Test/spv.subgroupExtendedTypesRotateNeg.comp
@@ -0,0 +1,100 @@
+#version 450
+
+#extension GL_KHR_shader_subgroup_rotate: enable
+#extension GL_EXT_shader_explicit_arithmetic_types_int8: enable
+#extension GL_EXT_shader_explicit_arithmetic_types_int16: enable
+#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable
+#extension GL_EXT_shader_explicit_arithmetic_types_float16: enable
+
+layout (local_size_x = 8) in;
+
+readonly buffer roblock
+{
+    uint delta;
+} ro;
+
+layout(binding = 0) buffer Buffers
+{
+    i8vec4 i8;
+    u8vec4 u8;
+    i16vec4 i16;
+    u16vec4 u16;
+    i64vec4 i64;
+    u64vec4 u64;
+    f16vec4 f16;
+} data[4];
+
+void main()
+{
+    uint delta = ro.delta;
+
+    data[delta].i8.x   = subgroupRotate(data[0].i8.x,    delta);
+    data[delta].i8.xy  = subgroupRotate(data[1].i8.xy,   delta);
+    data[delta].i8.xyz = subgroupRotate(data[2].i8.xyz,  delta);
+    data[delta].i8     = subgroupRotate(data[3].i8,      delta);
+
+    data[delta].i8.x   = subgroupClusteredRotate(data[0].i8.x,    delta, 1);
+    data[delta].i8.xy  = subgroupClusteredRotate(data[1].i8.xy,   delta, 1);
+    data[delta].i8.xyz = subgroupClusteredRotate(data[2].i8.xyz,  delta, 1);
+    data[delta].i8     = subgroupClusteredRotate(data[3].i8,      delta, 1);
+
+    data[delta].u8.x   = subgroupRotate(data[0].u8.x,    delta);
+    data[delta].u8.xy  = subgroupRotate(data[1].u8.xy,   delta);
+    data[delta].u8.xyz = subgroupRotate(data[2].u8.xyz,  delta);
+    data[delta].u8     = subgroupRotate(data[3].u8,      delta);
+
+    data[delta].u8.x   = subgroupClusteredRotate(data[0].u8.x,    delta, 1);
+    data[delta].u8.xy  = subgroupClusteredRotate(data[1].u8.xy,   delta, 1);
+    data[delta].u8.xyz = subgroupClusteredRotate(data[2].u8.xyz,  delta, 1);
+    data[delta].u8     = subgroupClusteredRotate(data[3].u8,      delta, 1);
+
+    data[delta].i16.x   = subgroupRotate(data[0].i16.x,    delta);
+    data[delta].i16.xy  = subgroupRotate(data[1].i16.xy,   delta);
+    data[delta].i16.xyz = subgroupRotate(data[2].i16.xyz,  delta);
+    data[delta].i16     = subgroupRotate(data[3].i16,      delta);
+
+    data[delta].i16.x   = subgroupClusteredRotate(data[0].i16.x,    delta, 1);
+    data[delta].i16.xy  = subgroupClusteredRotate(data[1].i16.xy,   delta, 1);
+    data[delta].i16.xyz = subgroupClusteredRotate(data[2].i16.xyz,  delta, 1);
+    data[delta].i16     = subgroupClusteredRotate(data[3].i16,      delta, 1);
+
+    data[delta].u16.x   = subgroupRotate(data[0].u16.x,    delta);
+    data[delta].u16.xy  = subgroupRotate(data[1].u16.xy,   delta);
+    data[delta].u16.xyz = subgroupRotate(data[2].u16.xyz,  delta);
+    data[delta].u16     = subgroupRotate(data[3].u16,      delta);
+
+    data[delta].u16.x   = subgroupClusteredRotate(data[0].u16.x,    delta, 1);
+    data[delta].u16.xy  = subgroupClusteredRotate(data[1].u16.xy,   delta, 1);
+    data[delta].u16.xyz = subgroupClusteredRotate(data[2].u16.xyz,  delta, 1);
+    data[delta].u16     = subgroupClusteredRotate(data[3].u16,      delta, 1);
+
+    data[delta].i64.x   = subgroupRotate(data[0].i64.x,    delta);
+    data[delta].i64.xy  = subgroupRotate(data[1].i64.xy,   delta);
+    data[delta].i64.xyz = subgroupRotate(data[2].i64.xyz,  delta);
+    data[delta].i64     = subgroupRotate(data[3].i64,      delta);
+
+    data[delta].i64.x   = subgroupClusteredRotate(data[0].i64.x,    delta, 1);
+    data[delta].i64.xy  = subgroupClusteredRotate(data[1].i64.xy,   delta, 1);
+    data[delta].i64.xyz = subgroupClusteredRotate(data[2].i64.xyz,  delta, 1);
+    data[delta].i64     = subgroupClusteredRotate(data[3].i64,      delta, 1);
+
+    data[delta].u64.x   = subgroupRotate(data[0].u64.x,    delta);
+    data[delta].u64.xy  = subgroupRotate(data[1].u64.xy,   delta);
+    data[delta].u64.xyz = subgroupRotate(data[2].u64.xyz,  delta);
+    data[delta].u64     = subgroupRotate(data[3].u64,      delta);
+
+    data[delta].u64.x   = subgroupClusteredRotate(data[0].u64.x,    delta, 1);
+    data[delta].u64.xy  = subgroupClusteredRotate(data[1].u64.xy,   delta, 1);
+    data[delta].u64.xyz = subgroupClusteredRotate(data[2].u64.xyz,  delta, 1);
+    data[delta].u64     = subgroupClusteredRotate(data[3].u64,      delta, 1);
+
+    data[delta].f16.x   = subgroupRotate(data[0].f16.x,    delta);
+    data[delta].f16.xy  = subgroupRotate(data[1].f16.xy,   delta);
+    data[delta].f16.xyz = subgroupRotate(data[2].f16.xyz,  delta);
+    data[delta].f16     = subgroupRotate(data[3].f16,      delta);
+
+    data[delta].f16.x   = subgroupClusteredRotate(data[0].f16.x,    delta, 1);
+    data[delta].f16.xy  = subgroupClusteredRotate(data[1].f16.xy,   delta, 1);
+    data[delta].f16.xyz = subgroupClusteredRotate(data[2].f16.xyz,  delta, 1);
+    data[delta].f16     = subgroupClusteredRotate(data[3].f16,      delta, 1);
+}
diff --git a/Test/spv.subgroupRotate.comp b/Test/spv.subgroupRotate.comp
new file mode 100644
index 0000000..7f8c007
--- /dev/null
+++ b/Test/spv.subgroupRotate.comp
@@ -0,0 +1,73 @@
+#version 450
+
+#extension GL_KHR_shader_subgroup_rotate: enable
+
+layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
+
+readonly buffer roblock
+{
+    uint delta;
+} ro;
+
+layout(binding = 0) buffer Buffers
+{
+    vec4  f4;
+    ivec4 i4;
+    uvec4 u4;
+    dvec4 d4;
+} data[4];
+
+void main()
+{
+    uint delta = ro.delta;
+
+    data[delta].f4.x   = subgroupRotate(data[0].f4.x,    delta);
+    data[delta].f4.xy  = subgroupRotate(data[1].f4.xy,   delta);
+    data[delta].f4.xyz = subgroupRotate(data[2].f4.xyz,  delta);
+    data[delta].f4     = subgroupRotate(data[3].f4,      delta);
+
+    data[delta].i4.x   = subgroupRotate(data[0].i4.x,    delta);
+    data[delta].i4.xy  = subgroupRotate(data[1].i4.xy,   delta);
+    data[delta].i4.xyz = subgroupRotate(data[2].i4.xyz,  delta);
+    data[delta].i4     = subgroupRotate(data[3].i4,      delta);
+
+    data[delta].u4.x   = subgroupRotate(data[0].u4.x,    delta);
+    data[delta].u4.xy  = subgroupRotate(data[1].u4.xy,   delta);
+    data[delta].u4.xyz = subgroupRotate(data[2].u4.xyz,  delta);
+    data[delta].u4     = subgroupRotate(data[3].u4,      delta);
+
+    data[delta].d4.x   = subgroupRotate(data[0].d4.x,    delta);
+    data[delta].d4.xy  = subgroupRotate(data[1].d4.xy,   delta);
+    data[delta].d4.xyz = subgroupRotate(data[2].d4.xyz,  delta);
+    data[delta].d4     = subgroupRotate(data[3].d4,      delta);
+
+    data[delta].i4.x   =   int(subgroupRotate(data[0].i4.x < 0,                   delta));
+    data[delta].i4.xy  = ivec2(subgroupRotate(lessThan(data[1].i4.xy, ivec2(0)),  delta));
+    data[delta].i4.xyz = ivec3(subgroupRotate(lessThan(data[1].i4.xyz, ivec3(0)), delta));
+    data[delta].i4     = ivec4(subgroupRotate(lessThan(data[1].i4, ivec4(0)),     delta));
+
+    data[delta].f4.x   = subgroupClusteredRotate(data[0].f4.x,    delta, 1);
+    data[delta].f4.xy  = subgroupClusteredRotate(data[1].f4.xy,   delta, 1);
+    data[delta].f4.xyz = subgroupClusteredRotate(data[2].f4.xyz,  delta, 1);
+    data[delta].f4     = subgroupClusteredRotate(data[3].f4,      delta, 1);
+
+    data[delta].i4.x   = subgroupClusteredRotate(data[0].i4.x,    delta, 1);
+    data[delta].i4.xy  = subgroupClusteredRotate(data[1].i4.xy,   delta, 1);
+    data[delta].i4.xyz = subgroupClusteredRotate(data[2].i4.xyz,  delta, 1);
+    data[delta].i4     = subgroupClusteredRotate(data[3].i4,      delta, 1);
+
+    data[delta].u4.x   = subgroupClusteredRotate(data[0].u4.x,    delta, 1);
+    data[delta].u4.xy  = subgroupClusteredRotate(data[1].u4.xy,   delta, 1);
+    data[delta].u4.xyz = subgroupClusteredRotate(data[2].u4.xyz,  delta, 1);
+    data[delta].u4     = subgroupClusteredRotate(data[3].u4,      delta, 1);
+
+    data[delta].d4.x   = subgroupClusteredRotate(data[0].d4.x,    delta, 1);
+    data[delta].d4.xy  = subgroupClusteredRotate(data[1].d4.xy,   delta, 1);
+    data[delta].d4.xyz = subgroupClusteredRotate(data[2].d4.xyz,  delta, 1);
+    data[delta].d4     = subgroupClusteredRotate(data[3].d4,      delta, 1);
+
+    data[delta].i4.x   =   int(subgroupClusteredRotate(data[0].i4.x < 0,                   delta, 1));
+    data[delta].i4.xy  = ivec2(subgroupClusteredRotate(lessThan(data[1].i4.xy, ivec2(0)),  delta, 1));
+    data[delta].i4.xyz = ivec3(subgroupClusteredRotate(lessThan(data[1].i4.xyz, ivec3(0)), delta, 1));
+    data[delta].i4     = ivec4(subgroupClusteredRotate(lessThan(data[1].i4, ivec4(0)),     delta, 1));
+}
diff --git a/Test/spv.tpipBlockMatchSAD.frag b/Test/spv.tpipBlockMatchSAD.frag
new file mode 100644
index 0000000..832f59d
--- /dev/null
+++ b/Test/spv.tpipBlockMatchSAD.frag
@@ -0,0 +1,38 @@
+#version 450
+#extension GL_QCOM_image_processing : require
+
+precision highp float;
+
+// fragment shader inputs and outputs
+layout (location = 0) in vec4 v_texcoord;
+
+layout (location = 0) out vec4 fragColor;
+
+// fragment shader resources
+layout(set = 0, binding = 0) uniform texture2DArray tex2DArray_weights;
+layout(set = 0, binding = 1) uniform texture2D tex2D_src1;
+layout(set = 0, binding = 2) uniform texture2D tex2D_src2;
+layout(set = 0, binding = 3) uniform sampler samp;
+layout(set = 0, binding = 4) uniform sampler2D target_samp;
+layout(set = 0, binding = 5) uniform sampler2D ref_samp;
+
+void main()
+{
+
+    uvec2 tgt_coords; tgt_coords.x = uint(v_texcoord.x); tgt_coords.x = uint(v_texcoord.y);
+    uvec2 ref_coords; ref_coords.x = uint(v_texcoord.z); ref_coords.y = uint(v_texcoord.w);
+    uvec2 blockSize = uvec2(4, 4);
+    fragColor = textureBlockMatchSADQCOM(
+                    sampler2D(tex2D_src1, samp),                   // target texture
+                    tgt_coords,                                    // target coords
+                    sampler2D(tex2D_src2, samp),                   // reference texture
+                    ref_coords,                                    // reference coords
+                    blockSize);                                    // block size
+    fragColor = textureBlockMatchSADQCOM(
+                    target_samp,                                   // target texture
+                    tgt_coords,                                    // target coords
+                    ref_samp,                                      // reference texture
+                    ref_coords,                                    // reference coords
+                    blockSize);                                    // block size
+}
+
diff --git a/Test/spv.tpipBlockMatchSSD.frag b/Test/spv.tpipBlockMatchSSD.frag
new file mode 100644
index 0000000..aa3ff2a
--- /dev/null
+++ b/Test/spv.tpipBlockMatchSSD.frag
@@ -0,0 +1,38 @@
+#version 450
+#extension GL_QCOM_image_processing : require
+
+precision highp float;
+
+// fragment shader inputs and outputs
+layout (location = 0) in vec4 v_texcoord;
+
+layout (location = 0) out vec4 fragColor;
+
+// fragment shader resources
+layout(set = 0, binding = 0) uniform texture2DArray tex2DArray_weights;
+layout(set = 0, binding = 1) uniform texture2D tex2D_src1;
+layout(set = 0, binding = 2) uniform texture2D tex2D_src2;
+layout(set = 0, binding = 3) uniform sampler samp;
+layout(set = 0, binding = 4) uniform sampler2D target_samp;
+layout(set = 0, binding = 5) uniform sampler2D ref_samp;
+
+void main()
+{
+
+    uvec2 tgt_coords; tgt_coords.x = uint(v_texcoord.x); tgt_coords.x = uint(v_texcoord.y);
+    uvec2 ref_coords; ref_coords.x = uint(v_texcoord.z); ref_coords.y = uint(v_texcoord.w);
+    uvec2 blockSize = uvec2(4, 4);
+    fragColor = textureBlockMatchSSDQCOM(
+                    sampler2D(tex2D_src1, samp),                   // target texture
+                    tgt_coords,                                    // target coords
+                    sampler2D(tex2D_src2, samp),                   // reference texture
+                    ref_coords,                                    // reference coords
+                    blockSize);                                    // block size
+    fragColor = textureBlockMatchSSDQCOM(
+                    target_samp,                                   // target texture
+                    tgt_coords,                                    // target coords
+                    ref_samp,                                      // reference texture
+                    ref_coords,                                    // reference coords
+                    blockSize);                                    // block size
+}
+
diff --git a/Test/spv.tpipBoxFilter.frag b/Test/spv.tpipBoxFilter.frag
new file mode 100644
index 0000000..d86d531
--- /dev/null
+++ b/Test/spv.tpipBoxFilter.frag
@@ -0,0 +1,32 @@
+#version 450
+#extension GL_QCOM_image_processing : require
+
+precision highp float;
+
+// fragment shader inputs and outputs
+layout (location = 0) in vec4 v_texcoord;
+
+layout (location = 0) out vec4 fragColor;
+
+// fragment shader resources
+layout(set = 0, binding = 0) uniform texture2DArray tex2DArray_weights;
+layout(set = 0, binding = 1) uniform texture2D tex2D_src1;
+layout(set = 0, binding = 2) uniform texture2D tex2D_src2;
+layout(set = 0, binding = 3) uniform sampler samp;
+layout(set = 0, binding = 4) uniform sampler2D tex_samp;
+
+void main()
+{
+
+    vec2 boxSize = vec2(2.5, 4.5);
+    fragColor = textureBoxFilterQCOM(
+                    sampler2D(tex2D_src1, samp),                   // source texture
+                    v_texcoord.xy,                                 // tex coords
+                    boxSize);                                      // box size
+    fragColor = textureBoxFilterQCOM(
+                    tex_samp,                                      // combined source texture
+                    v_texcoord.xy,                                 // tex coords
+                    boxSize);                                      // box size
+
+}
+
diff --git a/Test/spv.tpipSampleWeighted.frag b/Test/spv.tpipSampleWeighted.frag
new file mode 100644
index 0000000..0d10028
--- /dev/null
+++ b/Test/spv.tpipSampleWeighted.frag
@@ -0,0 +1,32 @@
+#version 450
+#extension GL_QCOM_image_processing : require
+
+precision highp float;
+
+// fragment shader inputs and outputs
+layout (location = 0) in vec4 v_texcoord;
+
+layout (location = 0) out vec4 fragColor;
+
+// fragment shader resources
+layout(set = 0, binding = 0) uniform texture2DArray tex2DArray_weights;
+layout(set = 0, binding = 1) uniform texture2D tex2D_src1;
+layout(set = 0, binding = 2) uniform texture2D tex2D_src2;
+layout(set = 0, binding = 3) uniform sampler samp;
+layout(set = 0, binding = 4) uniform sampler2D tex_samp;
+layout(set = 0, binding = 5) uniform sampler2DArray tex_samp_array;
+
+void main()
+{
+
+    fragColor = textureWeightedQCOM(
+                    sampler2D(tex2D_src1, samp),                   // source texture
+                    v_texcoord.xy,                                 // tex coords
+                    sampler2DArray(tex2DArray_weights, samp));     // weight texture
+    fragColor = textureWeightedQCOM(
+                    tex_samp,                                      // combined source texture
+                    v_texcoord.xy,                                 // tex coords
+                    tex_samp_array);                               // combined weight texture
+
+}
+
diff --git a/Test/spv.tpipTextureArrays.frag b/Test/spv.tpipTextureArrays.frag
new file mode 100644
index 0000000..332acb3
--- /dev/null
+++ b/Test/spv.tpipTextureArrays.frag
@@ -0,0 +1,40 @@
+#version 450
+#extension GL_QCOM_image_processing : require
+
+precision highp float;
+
+// fragment shader inputs and outputs
+layout (location = 0) in vec4 v_texcoord;
+
+layout (location = 0) out vec4 fragColor;
+
+// fragment shader resources
+layout(set = 0, binding = 3) uniform sampler samp;
+
+
+layout(set = 0, binding = 4) uniform texture2D tex2D_srcs[8];
+layout(set = 0, binding = 5) uniform sampler2D samplers[3];
+
+void main()
+{
+
+    uvec2 tgt_coords; tgt_coords.x = uint(v_texcoord.x); tgt_coords.x = uint(v_texcoord.y);
+    uvec2 ref_coords; ref_coords.x = uint(v_texcoord.z); ref_coords.y = uint(v_texcoord.w);
+    uvec2 blockSize = uvec2(4, 4);
+    uint  ii = tgt_coords.x % 8;
+    fragColor = textureBlockMatchSSDQCOM(
+                    samplers[0],                                   // target texture
+                    tgt_coords,                                    // target coords
+                    sampler2D(tex2D_srcs[ii], samp),               // reference texture
+                    ref_coords,                                    // reference coords
+                    blockSize);                                    // block size
+
+    fragColor = textureBlockMatchSADQCOM(
+                    sampler2D(tex2D_srcs[1], samp),                // target texture
+                    tgt_coords,                                    // target coords
+                    samplers[1],                                   // reference texture
+                    ref_coords,                                    // reference coords
+                    blockSize);                                    // block size
+
+}
+
diff --git a/Test/tokenLength.vert b/Test/tokenLength.vert
index 325fbcb..2907b32 100644
--- a/Test/tokenLength.vert
+++ b/Test/tokenLength.vert
@@ -44,31 +44,31 @@
 
 // Boundary cases
 #if 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
-#error in long non-zero #if
+#error in long non-zero "if"
 #endif
 #if 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 == 0
-#error in long zero #if
+#error in long zero "if"
 #endif
 #if 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 == 0
-#error in too long #if
+#error in too long "if"
 #endif
 
 #if A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001
-#error in long macro #if
+#error in long macro "if"
 #endif
 #if A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-#error in long macro #if
+#error in long macro "if"
 #endif
 #if A0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-#error in too long macro #if
+#error in too long macro "if"
 #endif
 
 // Super long
 #if 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-#error in super long #if
+#error in super long "if"
 #endif
 #if A000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-#error in super long macro #if
+#error in super long macro "if"
 #endif
 
 int BE = 0b01u; // ERROR (not supported by GLSL)
diff --git a/Test/vk.relaxed.errorcheck.frag b/Test/vk.relaxed.errorcheck.frag
index b75b50b..086c1d0 100644
--- a/Test/vk.relaxed.errorcheck.frag
+++ b/Test/vk.relaxed.errorcheck.frag
@@ -7,10 +7,13 @@
 // default uniforms will be gathered into a uniform block
 uniform vec4 a;     // declared in both stages with different types
 
+uniform float test; // declared twice in this compilation unit
+uniform vec2 test;
+
 vec4 foo() {
-    return a;
+    return a + vec4(test);
 }
 
 void main() {
     o = io + foo();
-}
\ No newline at end of file
+}
diff --git a/Test/vk.relaxed.frag b/Test/vk.relaxed.frag
index d43416e..3dd3c17 100644
--- a/Test/vk.relaxed.frag
+++ b/Test/vk.relaxed.frag
@@ -7,10 +7,17 @@
 uniform vec2 b = vec2(0, 0);            // initializer will be ignored
 layout(location = 0) uniform vec2 c;    // location qualifier will be ignored
 uniform vec4 d[10];
+
+struct SamplerArray{
+    sampler2D tn[4];
+};
+
 uniform struct e {                      
     vec2 x;
     float y;
     uint z;
+    sampler2D t0;
+    SamplerArray samplers;
 } structUniform; 
 
 // opaque types will not be grouped into uniform block
@@ -64,11 +71,15 @@
 vec4 foo() {
     float f = j + bufferInstance.j + structUniform.y + structUniform.z;
     vec2 v2 = b + c + structUniform.x;
-    vec4 v4 = a + d[0] + d[1] + d[2] + k + bufferInstance.k + texture(t1, vec2(0, 0));
+    vec4 v4 = a + d[0] + d[1] + d[2] + k + bufferInstance.k + texture(t1, vec2(0, 0)) + texture(structUniform.t0, vec2(0, 0));
     return vec4(f) * vec4(v2, 1, 1) * v4;
 }
 
+vec4 baz(SamplerArray samplers) {
+    return texture(samplers.tn[0], vec2(0, 0)) + texture(samplers.tn[1], vec2(0, 0)) + texture(samplers.tn[2], vec2(0, 0)) + texture(samplers.tn[3], vec2(0, 0));
+}
+
 void main() {
     float j = float(bar());
-    o = j * foo();
-}
\ No newline at end of file
+    o = j * foo() + baz(structUniform.samplers);
+}
diff --git a/WORKSPACE b/WORKSPACE
deleted file mode 100644
index 488546c..0000000
--- a/WORKSPACE
+++ /dev/null
@@ -1,27 +0,0 @@
-workspace(name = "org_khronos_glslang")
-load(
-    "@bazel_tools//tools/build_defs/repo:http.bzl",
-    "http_archive",
-)
-
-http_archive(
-    name = "com_google_googletest",
-    sha256 = "94c634d499558a76fa649edb13721dce6e98fb1e7018dfaeba3cd7a083945e91",
-    strip_prefix = "googletest-release-1.10.0",
-    urls = ["https://github.com/google/googletest/archive/release-1.10.0.zip"],  # 3-Oct-2019
-)
-
-http_archive(
-    name = "com_googlesource_code_re2",
-    sha256 = "b885bb965ab4b6cf8718bbb8154d8f6474cd00331481b6d3e390babb3532263e",
-    strip_prefix = "re2-e860767c86e577b87deadf24cc4567ea83c4f162/",
-    urls = ["https://github.com/google/re2/archive/e860767c86e577b87deadf24cc4567ea83c4f162.zip"],
-)
-
-http_archive(
-    name = "com_google_effcee",
-    build_file = "BUILD.effcee.bazel",
-    sha256 = "b0c21a01995fdf9792510566d78d5e7fe6f83cb4ba986eba691f4926f127cb34",
-    strip_prefix = "effcee-8f0a61dc95e0df18c18e0ac56d83b3fa9d2fe90b/",
-    urls = ["https://github.com/google/effcee/archive/8f0a61dc95e0df18c18e0ac56d83b3fa9d2fe90b.zip"],
-)
diff --git a/glslang/CMakeLists.txt b/glslang/CMakeLists.txt
index f9ba5eb..3c61ba3 100644
--- a/glslang/CMakeLists.txt
+++ b/glslang/CMakeLists.txt
@@ -57,7 +57,6 @@
 # MachineIndependent
 ################################################################################
 set(MACHINEINDEPENDENT_SOURCES
-    MachineIndependent/glslang.m4
     MachineIndependent/glslang.y
     MachineIndependent/glslang_tab.cpp
     MachineIndependent/attribute.cpp
@@ -135,11 +134,16 @@
 set_property(TARGET MachineIndependent PROPERTY POSITION_INDEPENDENT_CODE ON)
 set_property(TARGET MachineIndependent PROPERTY FOLDER glslang)
 
+if (NOT MSVC)
+    # -Wunused-but-set-variable is triggered in code generated by bison that we do not control. Turn this warning off, but only for the generated.
+    set_source_files_properties(MachineIndependent/glslang_tab.cpp PROPERTIES COMPILE_FLAGS -Wno-unused-but-set-variable)
+endif()
+
 glslang_add_build_info_dependency(MachineIndependent)
 
 glslang_pch(MachineIndependent MachineIndependent/pch.h)
 
-target_link_libraries(MachineIndependent PRIVATE OGLCompiler OSDependent GenericCodeGen)
+target_link_libraries(MachineIndependent PRIVATE OSDependent GenericCodeGen)
 
 ################################################################################
 # glslang
@@ -164,13 +168,13 @@
     Include/SpirvIntrinsics.h
     Include/Types.h)
 
-add_library(glslang ${LIB_TYPE} ${BISON_GLSLParser_OUTPUT_SOURCE} ${GLSLANG_SOURCES} ${GLSLANG_HEADERS})
+add_library(glslang ${LIB_TYPE} ${GLSLANG_SOURCES} ${GLSLANG_HEADERS})
 set_target_properties(glslang PROPERTIES
     FOLDER glslang
     POSITION_INDEPENDENT_CODE ON
     VERSION   "${GLSLANG_VERSION}"
     SOVERSION "${GLSLANG_VERSION_MAJOR}")
-target_link_libraries(glslang PRIVATE OGLCompiler OSDependent MachineIndependent)
+target_link_libraries(glslang PRIVATE OSDependent MachineIndependent)
 target_include_directories(glslang PUBLIC
     $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>
     $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
@@ -196,7 +200,7 @@
   Public/resource_limits_c.h
 )
 
-add_library(glslang-default-resource-limits STATIC ${RESOURCELIMITS_SOURCES} ${RESOURCELIMITS_HEADERS})
+add_library(glslang-default-resource-limits ${RESOURCELIMITS_SOURCES} ${RESOURCELIMITS_HEADERS})
 set_target_properties(glslang-default-resource-limits PROPERTIES
     VERSION "${GLSLANG_VERSION}"
     SOVERSION "${GLSLANG_VERSION_MAJOR}"
@@ -223,37 +227,23 @@
 ################################################################################
 # install
 ################################################################################
-if(ENABLE_GLSLANG_INSTALL)
+if(PROJECT_IS_TOP_LEVEL)
     install(TARGETS glslang EXPORT glslang-targets)
     if(NOT BUILD_SHARED_LIBS)
         install(TARGETS MachineIndependent EXPORT glslang-targets)
         install(TARGETS GenericCodeGen EXPORT glslang-targets)
-
-        # Backward compatibility
-        file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/glslangTargets.cmake" "
-            message(WARNING \"Using `glslangTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\")
-
-            if (NOT TARGET glslang::glslang)
-                include(\"${CMAKE_INSTALL_FULL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\")
-            endif()
-
-            if(${BUILD_SHARED_LIBS})
-                add_library(glslang ALIAS glslang::glslang)
-            else()
-                add_library(glslang ALIAS glslang::glslang)
-                add_library(MachineIndependent ALIAS glslang::MachineIndependent)
-                add_library(GenericCodeGen ALIAS glslang::GenericCodeGen)
-            endif()
-        ")
-        install(FILES "${CMAKE_CURRENT_BINARY_DIR}/glslangTargets.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake)
     endif()
 
-    set(ALL_HEADERS
-        ${GLSLANG_HEADERS}
-        ${MACHINEINDEPENDENT_HEADERS}
-        ${RESOURCELIMITS_HEADERS})
+    set(PUBLIC_HEADERS
+        Public/ResourceLimits.h
+        Public/ShaderLang.h
+        Public/resource_limits_c.h
+        Include/glslang_c_interface.h
+        Include/glslang_c_shader_types.h
+        Include/ResourceLimits.h
+        MachineIndependent/Versions.h)
 
-    foreach(file ${ALL_HEADERS})
+    foreach(file ${PUBLIC_HEADERS})
         get_filename_component(dir ${file} DIRECTORY)
         install(FILES ${file} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/glslang/${dir})
     endforeach()
@@ -261,17 +251,4 @@
     install(FILES ${GLSLANG_BUILD_INFO_H} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/glslang)
 
     install(TARGETS glslang-default-resource-limits EXPORT glslang-targets)
-
-    # Backward compatibility
-    file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/glslang-default-resource-limitsTargets.cmake" "
-        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_INSTALL_FULL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\")
-        endif()
-
-        add_library(glslang-default-resource-limits ALIAS glslang::glslang-default-resource-limits)
-    ")
-    install(FILES "${CMAKE_CURRENT_BINARY_DIR}/glslang-default-resource-limitsTargets.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake)
-
 endif()
diff --git a/glslang/GenericCodeGen/CodeGen.cpp b/glslang/GenericCodeGen/CodeGen.cpp
index b3c7226..1ef2449 100644
--- a/glslang/GenericCodeGen/CodeGen.cpp
+++ b/glslang/GenericCodeGen/CodeGen.cpp
@@ -41,10 +41,9 @@
 //
 class TGenericCompiler : public TCompiler {
 public:
-    TGenericCompiler(EShLanguage l, int dOptions) : TCompiler(l, infoSink), debugOptions(dOptions) { }
+    TGenericCompiler(EShLanguage l) : TCompiler(l, infoSink) {}
     virtual bool compile(TIntermNode* root, int version = 0, EProfile profile = ENoProfile);
     TInfoSink infoSink;
-    int debugOptions;
 };
 
 //
@@ -52,10 +51,7 @@
 // compile object used by higher level code.  It returns
 // a subclass of TCompiler.
 //
-TCompiler* ConstructCompiler(EShLanguage language, int debugOptions)
-{
-    return new TGenericCompiler(language, debugOptions);
-}
+TCompiler* ConstructCompiler(EShLanguage language, int) { return new TGenericCompiler(language); }
 
 //
 // Delete the compiler made by ConstructCompiler
diff --git a/glslang/GenericCodeGen/Link.cpp b/glslang/GenericCodeGen/Link.cpp
index 5e28405..5df39b8 100644
--- a/glslang/GenericCodeGen/Link.cpp
+++ b/glslang/GenericCodeGen/Link.cpp
@@ -44,11 +44,10 @@
 //
 class TGenericLinker : public TLinker {
 public:
-    TGenericLinker(EShExecutable e, int dOptions) : TLinker(e, infoSink), debugOptions(dOptions) { }
+    TGenericLinker(EShExecutable e) : TLinker(e, infoSink) {}
     bool link(TCompilerList&, TUniformMap*) { return true; }
     void getAttributeBindings(ShBindingTable const **) const { }
     TInfoSink infoSink;
-    int debugOptions;
 };
 
 //
@@ -60,10 +59,7 @@
     virtual int getLocation(const char*) { return 0; }
 };
 
-TShHandleBase* ConstructLinker(EShExecutable executable, int debugOptions)
-{
-    return new TGenericLinker(executable, debugOptions);
-}
+TShHandleBase* ConstructLinker(EShExecutable executable, int) { return new TGenericLinker(executable); }
 
 void DeleteLinker(TShHandleBase* linker)
 {
diff --git a/glslang/HLSL/hlslAttributes.cpp b/glslang/HLSL/hlslAttributes.cpp
index 0cc0d3f..9730549 100644
--- a/glslang/HLSL/hlslAttributes.cpp
+++ b/glslang/HLSL/hlslAttributes.cpp
@@ -101,6 +101,8 @@
 
             if (name == "nonwritable")    return EatNonWritable;
             if (name == "nonreadable")    return EatNonReadable;
+
+            if (name == "export")         return EatExport;
         } else if (nameSpace.size() > 0)
             return EatNone;
 
diff --git a/glslang/HLSL/hlslParseHelper.cpp b/glslang/HLSL/hlslParseHelper.cpp
index ac0dee5..b0fb5f4 100644
--- a/glslang/HLSL/hlslParseHelper.cpp
+++ b/glslang/HLSL/hlslParseHelper.cpp
@@ -9551,6 +9551,8 @@
         return language == EShLangTessEvaluation;
     case EbvTessCoord:
         return language == EShLangTessEvaluation;
+    case EbvViewIndex:
+        return language != EShLangCompute;
     default:
         return false;
     }
diff --git a/glslang/HLSL/hlslScanContext.cpp b/glslang/HLSL/hlslScanContext.cpp
index 823b17a..e9edb61 100644
--- a/glslang/HLSL/hlslScanContext.cpp
+++ b/glslang/HLSL/hlslScanContext.cpp
@@ -512,6 +512,7 @@
     (*SemanticMap)["SV_PRIMITIVEID"] =            EbvPrimitiveId;
     (*SemanticMap)["SV_OUTPUTCONTROLPOINTID"] =   EbvInvocationId;
     (*SemanticMap)["SV_ISFRONTFACE"] =            EbvFace;
+    (*SemanticMap)["SV_VIEWID"] =                 EbvViewIndex;
     (*SemanticMap)["SV_INSTANCEID"] =             EbvInstanceIndex;
     (*SemanticMap)["SV_INSIDETESSFACTOR"] =       EbvTessLevelInner;
     (*SemanticMap)["SV_GSINSTANCEID"] =           EbvInvocationId;
diff --git a/glslang/Include/BaseTypes.h b/glslang/Include/BaseTypes.h
index f41941e..64bffa8 100755
--- a/glslang/Include/BaseTypes.h
+++ b/glslang/Include/BaseTypes.h
@@ -66,10 +66,9 @@
     EbtReference,
     EbtRayQuery,
     EbtHitObjectNV,
-#ifndef GLSLANG_WEB
+    EbtCoopmat,
     // SPIR-V type defined by spirv_type
     EbtSpirvType,
-#endif
 
     // HLSL types that live only temporarily.
     EbtString,
@@ -96,9 +95,7 @@
     EvqUniform,       // read only, shared with app
     EvqBuffer,        // read/write, shared with app
     EvqShared,        // compute shader's read/write 'shared' qualifier
-#ifndef GLSLANG_WEB
     EvqSpirvStorageClass, // spirv_storage_class
-#endif
 
     EvqPayload,
     EvqPayloadIn,
@@ -293,6 +290,12 @@
     EbvLayerPerViewNV,
     EbvMeshViewCountNV,
     EbvMeshViewIndicesNV,
+
+    EbvMicroTrianglePositionNV,
+    EbvMicroTriangleBaryNV,
+    EbvHitKindFrontFacingMicroTriangleNV,
+    EbvHitKindBackFacingMicroTriangleNV,
+
     //GL_EXT_mesh_shader
     EbvPrimitivePointIndicesEXT,
     EbvPrimitiveLineIndicesEXT,
@@ -341,10 +344,6 @@
     EpqHigh
 };
 
-#ifdef GLSLANG_WEB
-__inline const char* GetStorageQualifierString(TStorageQualifier q) { return ""; }
-__inline const char* GetPrecisionQualifierString(TPrecisionQualifier p) { return ""; }
-#else
 // These will show up in error messages
 __inline const char* GetStorageQualifierString(TStorageQualifier q)
 {
@@ -353,9 +352,7 @@
     case EvqGlobal:         return "global";         break;
     case EvqConst:          return "const";          break;
     case EvqConstReadOnly:  return "const (read only)"; break;
-#ifndef GLSLANG_WEB
     case EvqSpirvStorageClass: return "spirv_storage_class"; break;
-#endif
     case EvqVaryingIn:      return "in";             break;
     case EvqVaryingOut:     return "out";            break;
     case EvqUniform:        return "uniform";        break;
@@ -532,6 +529,9 @@
     case EbvShadingRateKHR:             return "ShadingRateKHR";
     case EbvPrimitiveShadingRateKHR:    return "PrimitiveShadingRateKHR";
 
+    case EbvHitKindFrontFacingMicroTriangleNV: return "HitKindFrontFacingMicroTriangleNV";
+    case EbvHitKindBackFacingMicroTriangleNV:  return "HitKindBackFacingMicroTriangleNV";
+
     default:                      return "unknown built-in variable";
     }
 }
@@ -546,7 +546,6 @@
     default:        return "unknown precision qualifier";
     }
 }
-#endif
 
 __inline bool isTypeSignedInt(TBasicType type)
 {
diff --git a/glslang/Include/Common.h b/glslang/Include/Common.h
index 080b807..af7dfe6 100644
--- a/glslang/Include/Common.h
+++ b/glslang/Include/Common.h
@@ -292,34 +292,6 @@
     return result;
 }
 
-inline bool IsInfinity(double x) {
-#ifdef _MSC_VER
-    switch (_fpclass(x)) {
-    case _FPCLASS_NINF:
-    case _FPCLASS_PINF:
-        return true;
-    default:
-        return false;
-    }
-#else
-    return std::isinf(x);
-#endif
-}
-
-inline bool IsNan(double x) {
-#ifdef _MSC_VER
-    switch (_fpclass(x)) {
-    case _FPCLASS_SNAN:
-    case _FPCLASS_QNAN:
-        return true;
-    default:
-        return false;
-    }
-#else
-  return std::isnan(x);
-#endif
-}
-
 } // end namespace glslang
 
 #endif // _COMMON_INCLUDED_
diff --git a/glslang/Include/ConstantUnion.h b/glslang/Include/ConstantUnion.h
index c4ffb85..da4737b 100644
--- a/glslang/Include/ConstantUnion.h
+++ b/glslang/Include/ConstantUnion.h
@@ -234,7 +234,6 @@
 
             break;
 
-#ifndef GLSLANG_WEB
         case EbtInt16:
             if (constant.i16Const == i16Const)
                 return true;
@@ -265,7 +264,6 @@
                 return true;
 
             break;
-#endif
         default:
             assert(false && "Default missing");
         }
@@ -347,7 +345,6 @@
                 return true;
 
             return false;
-#ifndef GLSLANG_WEB
         case EbtInt8:
             if (i8Const > constant.i8Const)
                 return true;
@@ -378,7 +375,6 @@
                 return true;
 
             return false;
-#endif
         default:
             assert(false && "Default missing");
             return false;
@@ -389,7 +385,6 @@
     {
         assert(type == constant.type);
         switch (type) {
-#ifndef GLSLANG_WEB
         case EbtInt8:
             if (i8Const < constant.i8Const)
                 return true;
@@ -419,7 +414,6 @@
                 return true;
 
             return false;
-#endif
         case EbtDouble:
             if (dConst < constant.dConst)
                 return true;
@@ -449,14 +443,12 @@
         case EbtInt:    returnValue.setIConst(iConst + constant.iConst); break;
         case EbtUint:   returnValue.setUConst(uConst + constant.uConst); break;
         case EbtDouble: returnValue.setDConst(dConst + constant.dConst); break;
-#ifndef GLSLANG_WEB
         case EbtInt8:   returnValue.setI8Const(i8Const + constant.i8Const); break;
         case EbtInt16:  returnValue.setI16Const(i16Const + constant.i16Const); break;
         case EbtInt64:  returnValue.setI64Const(i64Const + constant.i64Const); break;
         case EbtUint8:  returnValue.setU8Const(u8Const + constant.u8Const); break;
         case EbtUint16: returnValue.setU16Const(u16Const + constant.u16Const); break;
         case EbtUint64: returnValue.setU64Const(u64Const + constant.u64Const); break;
-#endif
         default: assert(false && "Default missing");
         }
 
@@ -471,14 +463,12 @@
         case EbtInt:    returnValue.setIConst(iConst - constant.iConst); break;
         case EbtUint:   returnValue.setUConst(uConst - constant.uConst); break;
         case EbtDouble: returnValue.setDConst(dConst - constant.dConst); break;
-#ifndef GLSLANG_WEB
         case EbtInt8:   returnValue.setI8Const(i8Const - constant.i8Const); break;
         case EbtInt16:  returnValue.setI16Const(i16Const - constant.i16Const); break;
         case EbtInt64:  returnValue.setI64Const(i64Const - constant.i64Const); break;
         case EbtUint8:  returnValue.setU8Const(u8Const - constant.u8Const); break;
         case EbtUint16: returnValue.setU16Const(u16Const - constant.u16Const); break;
         case EbtUint64: returnValue.setU64Const(u64Const - constant.u64Const); break;
-#endif
         default: assert(false && "Default missing");
         }
 
@@ -493,14 +483,12 @@
         case EbtInt:    returnValue.setIConst(iConst * constant.iConst); break;
         case EbtUint:   returnValue.setUConst(uConst * constant.uConst); break;
         case EbtDouble: returnValue.setDConst(dConst * constant.dConst); break;
-#ifndef GLSLANG_WEB
         case EbtInt8:   returnValue.setI8Const(i8Const * constant.i8Const); break;
         case EbtInt16:  returnValue.setI16Const(i16Const * constant.i16Const); break;
         case EbtInt64:  returnValue.setI64Const(i64Const * constant.i64Const); break;
         case EbtUint8:  returnValue.setU8Const(u8Const * constant.u8Const); break;
         case EbtUint16: returnValue.setU16Const(u16Const * constant.u16Const); break;
         case EbtUint64: returnValue.setU64Const(u64Const * constant.u64Const); break;
-#endif
         default: assert(false && "Default missing");
         }
 
@@ -514,14 +502,12 @@
         switch (type) {
         case EbtInt:    returnValue.setIConst(iConst % constant.iConst); break;
         case EbtUint:   returnValue.setUConst(uConst % constant.uConst); break;
-#ifndef GLSLANG_WEB
         case EbtInt8:   returnValue.setI8Const(i8Const % constant.i8Const); break;
-        case EbtInt16:  returnValue.setI8Const(i8Const % constant.i16Const); break;
+        case EbtInt16:  returnValue.setI16Const(i16Const % constant.i16Const); break;
         case EbtInt64:  returnValue.setI64Const(i64Const % constant.i64Const); break;
         case EbtUint8:  returnValue.setU8Const(u8Const % constant.u8Const); break;
         case EbtUint16: returnValue.setU16Const(u16Const % constant.u16Const); break;
         case EbtUint64: returnValue.setU64Const(u64Const % constant.u64Const); break;
-#endif
         default:     assert(false && "Default missing");
         }
 
@@ -532,7 +518,6 @@
     {
         TConstUnion returnValue;
         switch (type) {
-#ifndef GLSLANG_WEB
         case EbtInt8:
             switch (constant.type) {
             case EbtInt8:   returnValue.setI8Const(i8Const >> constant.i8Const);  break;
@@ -585,19 +570,16 @@
             default:       assert(false && "Default missing");
             }
             break;
-#endif
         case EbtInt:
             switch (constant.type) {
             case EbtInt:    returnValue.setIConst(iConst >> constant.iConst);   break;
             case EbtUint:   returnValue.setIConst(iConst >> constant.uConst);   break;
-#ifndef GLSLANG_WEB
             case EbtInt8:   returnValue.setIConst(iConst >> constant.i8Const);  break;
             case EbtUint8:  returnValue.setIConst(iConst >> constant.u8Const);  break;
             case EbtInt16:  returnValue.setIConst(iConst >> constant.i16Const); break;
             case EbtUint16: returnValue.setIConst(iConst >> constant.u16Const); break;
             case EbtInt64:  returnValue.setIConst(iConst >> constant.i64Const); break;
             case EbtUint64: returnValue.setIConst(iConst >> constant.u64Const); break;
-#endif
             default:       assert(false && "Default missing");
             }
             break;
@@ -605,18 +587,15 @@
             switch (constant.type) {
             case EbtInt:    returnValue.setUConst(uConst >> constant.iConst);   break;
             case EbtUint:   returnValue.setUConst(uConst >> constant.uConst);   break;
-#ifndef GLSLANG_WEB
             case EbtInt8:   returnValue.setUConst(uConst >> constant.i8Const);  break;
             case EbtUint8:  returnValue.setUConst(uConst >> constant.u8Const);  break;
             case EbtInt16:  returnValue.setUConst(uConst >> constant.i16Const); break;
             case EbtUint16: returnValue.setUConst(uConst >> constant.u16Const); break;
             case EbtInt64:  returnValue.setUConst(uConst >> constant.i64Const); break;
             case EbtUint64: returnValue.setUConst(uConst >> constant.u64Const); break;
-#endif
             default:       assert(false && "Default missing");
             }
             break;
-#ifndef GLSLANG_WEB
          case EbtInt64:
             switch (constant.type) {
             case EbtInt8:   returnValue.setI64Const(i64Const >> constant.i8Const);  break;
@@ -643,7 +622,6 @@
             default:       assert(false && "Default missing");
             }
             break;
-#endif
         default:     assert(false && "Default missing");
         }
 
@@ -654,7 +632,6 @@
     {
         TConstUnion returnValue;
         switch (type) {
-#ifndef GLSLANG_WEB
         case EbtInt8:
             switch (constant.type) {
             case EbtInt8:   returnValue.setI8Const(i8Const << constant.i8Const);  break;
@@ -733,19 +710,16 @@
             default:       assert(false && "Default missing");
             }
             break;
-#endif
         case EbtInt:
             switch (constant.type) {
             case EbtInt:    returnValue.setIConst(iConst << constant.iConst);   break;
             case EbtUint:   returnValue.setIConst(iConst << constant.uConst);   break;
-#ifndef GLSLANG_WEB
             case EbtInt8:   returnValue.setIConst(iConst << constant.i8Const);  break;
             case EbtUint8:  returnValue.setIConst(iConst << constant.u8Const);  break;
             case EbtInt16:  returnValue.setIConst(iConst << constant.i16Const); break;
             case EbtUint16: returnValue.setIConst(iConst << constant.u16Const); break;
             case EbtInt64:  returnValue.setIConst(iConst << constant.i64Const); break;
             case EbtUint64: returnValue.setIConst(iConst << constant.u64Const); break;
-#endif
             default:       assert(false && "Default missing");
             }
             break;
@@ -753,14 +727,12 @@
             switch (constant.type) {
             case EbtInt:    returnValue.setUConst(uConst << constant.iConst);   break;
             case EbtUint:   returnValue.setUConst(uConst << constant.uConst);   break;
-#ifndef GLSLANG_WEB
             case EbtInt8:   returnValue.setUConst(uConst << constant.i8Const);  break;
             case EbtUint8:  returnValue.setUConst(uConst << constant.u8Const);  break;
             case EbtInt16:  returnValue.setUConst(uConst << constant.i16Const); break;
             case EbtUint16: returnValue.setUConst(uConst << constant.u16Const); break;
             case EbtInt64:  returnValue.setUConst(uConst << constant.i64Const); break;
             case EbtUint64: returnValue.setUConst(uConst << constant.u64Const); break;
-#endif
             default:       assert(false && "Default missing");
             }
             break;
@@ -777,14 +749,12 @@
         switch (type) {
         case EbtInt:    returnValue.setIConst(iConst & constant.iConst); break;
         case EbtUint:   returnValue.setUConst(uConst & constant.uConst); break;
-#ifndef GLSLANG_WEB
         case EbtInt8:   returnValue.setI8Const(i8Const & constant.i8Const); break;
         case EbtUint8:  returnValue.setU8Const(u8Const & constant.u8Const); break;
         case EbtInt16:  returnValue.setI16Const(i16Const & constant.i16Const); break;
         case EbtUint16: returnValue.setU16Const(u16Const & constant.u16Const); break;
         case EbtInt64:  returnValue.setI64Const(i64Const & constant.i64Const); break;
         case EbtUint64: returnValue.setU64Const(u64Const & constant.u64Const); break;
-#endif
         default:     assert(false && "Default missing");
         }
 
@@ -798,14 +768,12 @@
         switch (type) {
         case EbtInt:    returnValue.setIConst(iConst | constant.iConst); break;
         case EbtUint:   returnValue.setUConst(uConst | constant.uConst); break;
-#ifndef GLSLANG_WEB
         case EbtInt8:   returnValue.setI8Const(i8Const | constant.i8Const); break;
         case EbtUint8:  returnValue.setU8Const(u8Const | constant.u8Const); break;
         case EbtInt16:  returnValue.setI16Const(i16Const | constant.i16Const); break;
         case EbtUint16: returnValue.setU16Const(u16Const | constant.u16Const); break;
         case EbtInt64:  returnValue.setI64Const(i64Const | constant.i64Const); break;
         case EbtUint64: returnValue.setU64Const(u64Const | constant.u64Const); break;
-#endif
         default:     assert(false && "Default missing");
         }
 
@@ -819,14 +787,12 @@
         switch (type) {
         case EbtInt:    returnValue.setIConst(iConst ^ constant.iConst); break;
         case EbtUint:   returnValue.setUConst(uConst ^ constant.uConst); break;
-#ifndef GLSLANG_WEB
         case EbtInt8:   returnValue.setI8Const(i8Const ^ constant.i8Const); break;
         case EbtUint8:  returnValue.setU8Const(u8Const ^ constant.u8Const); break;
         case EbtInt16:  returnValue.setI16Const(i16Const ^ constant.i16Const); break;
         case EbtUint16: returnValue.setU16Const(u16Const ^ constant.u16Const); break;
         case EbtInt64:  returnValue.setI64Const(i64Const ^ constant.i64Const); break;
         case EbtUint64: returnValue.setU64Const(u64Const ^ constant.u64Const); break;
-#endif
         default:     assert(false && "Default missing");
         }
 
@@ -839,14 +805,12 @@
         switch (type) {
         case EbtInt:    returnValue.setIConst(~iConst); break;
         case EbtUint:   returnValue.setUConst(~uConst); break;
-#ifndef GLSLANG_WEB
         case EbtInt8:   returnValue.setI8Const(~i8Const); break;
         case EbtUint8:  returnValue.setU8Const(~u8Const); break;
         case EbtInt16:  returnValue.setI16Const(~i16Const); break;
         case EbtUint16: returnValue.setU16Const(~u16Const); break;
         case EbtInt64:  returnValue.setI64Const(~i64Const); break;
         case EbtUint64: returnValue.setU64Const(~u64Const); break;
-#endif
         default:     assert(false && "Default missing");
         }
 
diff --git a/glslang/Include/InitializeGlobals.h b/glslang/Include/InitializeGlobals.h
index 95d0a40..b7fdd7a 100644
--- a/glslang/Include/InitializeGlobals.h
+++ b/glslang/Include/InitializeGlobals.h
@@ -37,7 +37,7 @@
 
 namespace glslang {
 
-bool InitializePoolIndex();
+inline bool InitializePoolIndex() { return true; } // DEPRECATED: No need to call
 
 } // end namespace glslang
 
diff --git a/glslang/Include/PoolAlloc.h b/glslang/Include/PoolAlloc.h
index 3e67d6e..e84ac52 100644
--- a/glslang/Include/PoolAlloc.h
+++ b/glslang/Include/PoolAlloc.h
@@ -118,11 +118,16 @@
     unsigned char* mem;           // beginning of our allocation (pts to header)
     TAllocation* prevAlloc;       // prior allocation in the chain
 
-    const static unsigned char guardBlockBeginVal;
-    const static unsigned char guardBlockEndVal;
-    const static unsigned char userDataFill;
+    static inline constexpr unsigned char guardBlockBeginVal = 0xfb;
+    static inline constexpr unsigned char guardBlockEndVal = 0xfe;
+    static inline constexpr unsigned char userDataFill = 0xcd;
 
-    const static size_t guardBlockSize;
+#   ifdef GUARD_BLOCKS
+    static inline constexpr size_t guardBlockSize = 16;
+#   else
+    static inline constexpr size_t guardBlockSize = 0;
+#   endif
+
 #   ifdef GUARD_BLOCKS
     inline static size_t headerSize() { return sizeof(TAllocation); }
 #   else
diff --git a/glslang/Include/SpirvIntrinsics.h b/glslang/Include/SpirvIntrinsics.h
index d56c65d..0082a4d 100644
--- a/glslang/Include/SpirvIntrinsics.h
+++ b/glslang/Include/SpirvIntrinsics.h
@@ -35,12 +35,11 @@
 
 #pragma once
 
-#ifndef GLSLANG_WEB
-
 //
 // GL_EXT_spirv_intrinsics
 //
 #include "Common.h"
+#include <variant>
 
 namespace glslang {
 
@@ -98,23 +97,27 @@
 struct TSpirvTypeParameter {
     POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator())
 
-    TSpirvTypeParameter(const TIntermConstantUnion* arg)
-    {
-        constant = arg;
-        type = nullptr;
-    }
+    TSpirvTypeParameter(const TIntermConstantUnion* arg) { value = arg; }
+    TSpirvTypeParameter(const TType* arg) { value = arg; }
 
-    TSpirvTypeParameter(const TType *arg)
+    const TIntermConstantUnion* getAsConstant() const
     {
-        constant = nullptr;
-        type = arg;
+        if (value.index() == 0)
+            return std::get<const TIntermConstantUnion*>(value);
+        return nullptr;
+    }
+    const TType* getAsType() const
+    {
+        if (value.index() == 1)
+            return std::get<const TType*>(value);
+        return nullptr;
     }
 
     bool operator==(const TSpirvTypeParameter& rhs) const;
     bool operator!=(const TSpirvTypeParameter& rhs) const { return !operator==(rhs); }
 
-    const TIntermConstantUnion* constant; // Constant expression
-    const TType* type;                    // Type specifier
+    // Parameter value: constant expression or type specifier
+    std::variant<const TIntermConstantUnion*, const TType*> value;
 };
 
 typedef TVector<TSpirvTypeParameter> TSpirvTypeParameters;
@@ -135,5 +138,3 @@
 };
 
 } // end namespace glslang
-
-#endif // GLSLANG_WEB
diff --git a/glslang/Include/Types.h b/glslang/Include/Types.h
index 6e3ad62..f938f11 100644
--- a/glslang/Include/Types.h
+++ b/glslang/Include/Types.h
@@ -86,20 +86,6 @@
     bool   combined : 1;  // true means texture is combined with a sampler, false means texture with no sampler
     bool    sampler : 1;  // true means a pure sampler, other fields should be clear()
 
-#ifdef GLSLANG_WEB
-    bool is1D()          const { return false; }
-    bool isBuffer()      const { return false; }
-    bool isRect()        const { return false; }
-    bool isSubpass()     const { return false; }
-    bool isAttachmentEXT()  const { return false; }
-    bool isCombined()    const { return true; }
-    bool isImage()       const { return false; }
-    bool isImageClass()  const { return false; }
-    bool isMultiSample() const { return false; }
-    bool isExternal()    const { return false; }
-    void setExternal(bool e) { }
-    bool isYuv()         const { return false; }
-#else
     unsigned int vectorSize : 3;  // vector return type size.
     // Some languages support structures as sample results.  Storing the whole structure in the
     // TSampler is too large, so there is an index to a separate table.
@@ -132,7 +118,6 @@
     bool isExternal()    const { return external; }
     void setExternal(bool e) { external = e; }
     bool isYuv()         const { return yuv; }
-#endif
     bool isTexture()     const { return !sampler && !image; }
     bool isPureSampler() const { return sampler; }
 
@@ -152,10 +137,8 @@
         image = false;
         combined = false;
         sampler = false;
-#ifndef GLSLANG_WEB
         external = false;
         yuv = false;
-#endif
 
 #ifdef ENABLE_HLSL
         clearReturnStruct();
@@ -207,7 +190,6 @@
         shadow = s;
     }
 
-#ifndef GLSLANG_WEB
     // make a subpass input attachment
     void setSubpass(TBasicType t, bool m = false)
     {
@@ -226,7 +208,6 @@
         image = true;
         dim = EsdAttachmentEXT;
     }
-#endif
 
     bool operator==(const TSampler& right) const
     {
@@ -264,7 +245,6 @@
         switch (type) {
         case EbtInt:    s.append("i");   break;
         case EbtUint:   s.append("u");   break;
-#ifndef GLSLANG_WEB
         case EbtFloat16: s.append("f16"); break;
         case EbtInt8:   s.append("i8");  break;
         case EbtUint16: s.append("u8");  break;
@@ -272,7 +252,6 @@
         case EbtUint8:  s.append("u16"); break;
         case EbtInt64:  s.append("i64"); break;
         case EbtUint64: s.append("u64"); break;
-#endif
         default:  break;
         }
         if (isImageClass()) {
@@ -298,13 +277,11 @@
         case Esd2D:      s.append("2D");      break;
         case Esd3D:      s.append("3D");      break;
         case EsdCube:    s.append("Cube");    break;
-#ifndef GLSLANG_WEB
         case Esd1D:         s.append("1D");      break;
         case EsdRect:       s.append("2DRect");  break;
         case EsdBuffer:     s.append("Buffer");  break;
         case EsdSubpass:    s.append("Input"); break;
         case EsdAttachmentEXT: s.append(""); break;
-#endif
         default:  break;  // some compilers want this
         }
         if (isMultiSample())
@@ -533,12 +510,10 @@
         invariant = false;
         makeTemporary();
         declaredBuiltIn = EbvNone;
-#ifndef GLSLANG_WEB
         noContraction = false;
         nullInit = false;
         spirvByReference = false;
         spirvLiteral = false;
-#endif
         defaultBlock = false;
     }
 
@@ -555,21 +530,17 @@
         nullInit = false;
         defaultBlock = false;
         clearLayout();
-#ifndef GLSLANG_WEB
         spirvStorageClass = -1;
         spirvDecorate = nullptr;
         spirvByReference = false;
         spirvLiteral = false;
-#endif
     }
 
     void clearInterstage()
     {
         clearInterpolation();
-#ifndef GLSLANG_WEB
         patch = false;
         sample = false;
-#endif
     }
 
     void clearInterpolation()
@@ -577,20 +548,17 @@
         centroid     = false;
         smooth       = false;
         flat         = false;
-#ifndef GLSLANG_WEB
         nopersp      = false;
         explicitInterp = false;
         pervertexNV = false;
         perPrimitiveNV = false;
         perViewNV = false;
         perTaskNV = false;
-#endif
         pervertexEXT = false;
     }
 
     void clearMemory()
     {
-#ifndef GLSLANG_WEB
         coherent     = false;
         devicecoherent = false;
         queuefamilycoherent = false;
@@ -602,7 +570,6 @@
         restrict     = false;
         readonly     = false;
         writeonly    = false;
-#endif
     }
 
     const char*         semanticName;
@@ -621,31 +588,6 @@
     bool explicitOffset   : 1;
     bool defaultBlock : 1; // default blocks with matching names have structures merged when linking
 
-#ifdef GLSLANG_WEB
-    bool isWriteOnly() const { return false; }
-    bool isReadOnly() const { return false; }
-    bool isRestrict() const { return false; }
-    bool isCoherent() const { return false; }
-    bool isVolatile() const { return false; }
-    bool isSample() const { return false; }
-    bool isMemory() const { return false; }
-    bool isMemoryQualifierImageAndSSBOOnly() const { return false; }
-    bool bufferReferenceNeedsVulkanMemoryModel() const { return false; }
-    bool isInterpolation() const { return flat || smooth; }
-    bool isExplicitInterpolation() const { return false; }
-    bool isAuxiliary() const { return centroid; }
-    bool isPatch() const { return false; }
-    bool isNoContraction() const { return false; }
-    void setNoContraction() { }
-    bool isPervertexNV() const { return false; }
-    bool isPervertexEXT() const { return pervertexEXT; }
-    void setNullInit() {}
-    bool isNullInit() const { return false; }
-    void setSpirvByReference() { }
-    bool isSpirvByReference() { return false; }
-    void setSpirvLiteral() { }
-    bool isSpirvLiteral() { return false; }
-#else
     bool noContraction: 1; // prevent contraction and reassociation, e.g., for 'precise' keyword, and expressions it affects
     bool nopersp      : 1;
     bool explicitInterp : 1;
@@ -712,7 +654,6 @@
     bool isSpirvByReference() const { return spirvByReference; }
     void setSpirvLiteral() { spirvLiteral = true; }
     bool isSpirvLiteral() const { return spirvLiteral; }
-#endif
 
     bool isPipeInput() const
     {
@@ -843,9 +784,7 @@
     }
 
     void setBlockStorage(TBlockStorageClass newBacking) {
-#ifndef GLSLANG_WEB
         layoutPushConstant = (newBacking == EbsPushConstant);
-#endif
         switch (newBacking) {
         case EbsUniform :
             if (layoutPacking == ElpStd430) {
@@ -857,23 +796,16 @@
         case EbsStorageBuffer :
             storage = EvqBuffer;
             break;
-#ifndef GLSLANG_WEB
         case EbsPushConstant :
             storage = EvqUniform;
             layoutSet = TQualifier::layoutSetEnd;
             layoutBinding = TQualifier::layoutBindingEnd;
             break;
-#endif
         default:
             break;
         }
     }
 
-#ifdef GLSLANG_WEB
-    bool isPerView() const { return false; }
-    bool isTaskMemory() const { return false; }
-    bool isArrayedIo(EShLanguage language) const { return false; }
-#else
     bool isPerPrimitive() const { return perPrimitiveNV; }
     bool isPerView() const { return perViewNV; }
     bool isTaskMemory() const { return perTaskNV; }
@@ -907,14 +839,12 @@
             return false;
         }
     }
-#endif
 
     // Implementing an embedded layout-qualifier class here, since C++ can't have a real class bitfield
     void clearLayout()  // all layout
     {
         clearUniformLayout();
 
-#ifndef GLSLANG_WEB
         layoutPushConstant = false;
         layoutBufferReference = false;
         layoutPassthrough = false;
@@ -922,12 +852,13 @@
         // -2048 as the default value indicating layoutSecondaryViewportRelative is not set
         layoutSecondaryViewportRelativeOffset = -2048;
         layoutShaderRecord = false;
+        layoutFullQuads = false;
+        layoutQuadDeriv = false;
         layoutHitObjectShaderRecordNV = false;
         layoutBindlessSampler = false;
         layoutBindlessImage = false;
         layoutBufferReferenceAlign = layoutBufferReferenceAlignEnd;
         layoutFormat = ElfNone;
-#endif
 
         clearInterstageLayout();
 
@@ -937,14 +868,11 @@
     {
         layoutLocation = layoutLocationEnd;
         layoutComponent = layoutComponentEnd;
-#ifndef GLSLANG_WEB
         layoutIndex = layoutIndexEnd;
         clearStreamLayout();
         clearXfbLayout();
-#endif
     }
 
-#ifndef GLSLANG_WEB
     void clearStreamLayout()
     {
         layoutStream = layoutStreamEnd;
@@ -955,7 +883,6 @@
         layoutXfbStride = layoutXfbStrideEnd;
         layoutXfbOffset = layoutXfbOffsetEnd;
     }
-#endif
 
     bool hasNonXfbLayout() const
     {
@@ -1011,7 +938,6 @@
                  unsigned int layoutSpecConstantId       : 11;
     static const unsigned int layoutSpecConstantIdEnd = 0x7FF;
 
-#ifndef GLSLANG_WEB
     // stored as log2 of the actual alignment value
                  unsigned int layoutBufferReferenceAlign :  6;
     static const unsigned int layoutBufferReferenceAlignEnd = 0x3F;
@@ -1024,6 +950,8 @@
     bool layoutViewportRelative;
     int layoutSecondaryViewportRelativeOffset;
     bool layoutShaderRecord;
+    bool layoutFullQuads;
+    bool layoutQuadDeriv;
     bool layoutHitObjectShaderRecordNV;
 
     // GL_EXT_spirv_intrinsics
@@ -1032,7 +960,6 @@
 
     bool layoutBindlessSampler;
     bool layoutBindlessImage;
-#endif
 
     bool hasUniformLayout() const
     {
@@ -1052,9 +979,7 @@
 
         layoutSet = layoutSetEnd;
         layoutBinding = layoutBindingEnd;
-#ifndef GLSLANG_WEB
         layoutAttachment = layoutAttachmentEnd;
-#endif
     }
 
     bool hasMatrix() const
@@ -1087,26 +1012,6 @@
     {
         return layoutBinding != layoutBindingEnd;
     }
-#ifdef GLSLANG_WEB
-    bool hasOffset() const { return false; }
-    bool isNonPerspective() const { return false; }
-    bool hasIndex() const { return false; }
-    unsigned getIndex() const { return 0; }
-    bool hasComponent() const { return false; }
-    bool hasStream() const { return false; }
-    bool hasFormat() const { return false; }
-    bool hasXfb() const { return false; }
-    bool hasXfbBuffer() const { return false; }
-    bool hasXfbStride() const { return false; }
-    bool hasXfbOffset() const { return false; }
-    bool hasAttachment() const { return false; }
-    TLayoutFormat getFormat() const { return ElfNone; }
-    bool isPushConstant() const { return false; }
-    bool isShaderRecord() const { return false; }
-    bool hasBufferReference() const { return false; }
-    bool hasBufferReferenceAlign() const { return false; }
-    bool isNonUniform() const { return false; }
-#else
     bool hasOffset() const
     {
         return layoutOffset != layoutNotSet;
@@ -1154,6 +1059,8 @@
     TLayoutFormat getFormat() const { return layoutFormat; }
     bool isPushConstant() const { return layoutPushConstant; }
     bool isShaderRecord() const { return layoutShaderRecord; }
+    bool isFullQuads() const { return layoutFullQuads; }
+    bool isQuadDeriv() const { return layoutQuadDeriv; }
     bool hasHitObjectShaderRecordNV() const { return layoutHitObjectShaderRecordNV; }
     bool hasBufferReference() const { return layoutBufferReference; }
     bool hasBufferReferenceAlign() const
@@ -1174,14 +1081,14 @@
     }
 
     // GL_EXT_spirv_intrinsics
-    bool hasSprivDecorate() const { return spirvDecorate != nullptr; }
+    bool hasSpirvDecorate() const { return spirvDecorate != nullptr; }
     void setSpirvDecorate(int decoration, const TIntermAggregate* args = nullptr);
     void setSpirvDecorateId(int decoration, const TIntermAggregate* args);
     void setSpirvDecorateString(int decoration, const TIntermAggregate* args);
     const TSpirvDecorate& getSpirvDecorate() const { assert(spirvDecorate); return *spirvDecorate; }
     TSpirvDecorate& getSpirvDecorate() { assert(spirvDecorate); return *spirvDecorate; }
     TString getSpirvDecorateQualifierString() const;
-#endif
+
     bool hasSpecConstantId() const
     {
         // Not the same thing as being a specialization constant, this
@@ -1215,12 +1122,10 @@
     {
         switch (packing) {
         case ElpStd140:   return "std140";
-#ifndef GLSLANG_WEB
         case ElpPacked:   return "packed";
         case ElpShared:   return "shared";
         case ElpStd430:   return "std430";
         case ElpScalar:   return "scalar";
-#endif
         default:          return "none";
         }
     }
@@ -1232,9 +1137,6 @@
         default:             return "none";
         }
     }
-#ifdef GLSLANG_WEB
-    static const char* getLayoutFormatString(TLayoutFormat f) { return "none"; }
-#else
     static const char* getLayoutFormatString(TLayoutFormat f)
     {
         switch (f) {
@@ -1388,7 +1290,6 @@
         default:                                return "none";
         }
     }
-#endif
 };
 
 // Qualifiers that don't need to be keep per object.  They have shader scope, not object scope.
@@ -1405,7 +1306,6 @@
     int localSize[3];         // compute shader
     bool localSizeNotDefault[3];        // compute shader
     int localSizeSpecId[3];   // compute shader specialization id for gl_WorkGroupSize
-#ifndef GLSLANG_WEB
     bool earlyFragmentTests;  // fragment input
     bool postDepthCoverage;   // fragment input
     bool earlyAndLateFragmentTestsAMD; //fragment input
@@ -1424,9 +1324,6 @@
     bool layoutPrimitiveCulling;        // true if layout primitive_culling set
     TLayoutDepth getDepth() const { return layoutDepth; }
     TLayoutStencil getStencil() const { return layoutStencil; }
-#else
-    TLayoutDepth getDepth() const { return EldNone; }
-#endif
 
     void init()
     {
@@ -1447,7 +1344,6 @@
         localSizeSpecId[0] = TQualifier::layoutNotSet;
         localSizeSpecId[1] = TQualifier::layoutNotSet;
         localSizeSpecId[2] = TQualifier::layoutNotSet;
-#ifndef GLSLANG_WEB
         earlyFragmentTests = false;
         earlyAndLateFragmentTestsAMD = false;
         postDepthCoverage = false;
@@ -1464,14 +1360,9 @@
         layoutPrimitiveCulling      = false;
         primitives                  = TQualifier::layoutNotSet;
         interlockOrdering = EioNone;
-#endif
     }
 
-#ifdef GLSLANG_WEB
-    bool hasBlendEquation() const { return false; }
-#else
     bool hasBlendEquation() const { return blendEquation; }
-#endif
 
     // Merge in characteristics from the 'src' qualifier.  They can override when
     // set, but never erase when not set.
@@ -1504,7 +1395,6 @@
             if (src.localSizeSpecId[i] != TQualifier::layoutNotSet)
                 localSizeSpecId[i] = src.localSizeSpecId[i];
         }
-#ifndef GLSLANG_WEB
         if (src.earlyFragmentTests)
             earlyFragmentTests = true;
         if (src.earlyAndLateFragmentTestsAMD)
@@ -1537,10 +1427,22 @@
             interlockOrdering = src.interlockOrdering;
         if (src.layoutPrimitiveCulling)
             layoutPrimitiveCulling = src.layoutPrimitiveCulling;
-#endif
     }
 };
 
+class TTypeParameters {
+public:
+    POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator())
+
+    TTypeParameters() : basicType(EbtVoid), arraySizes(nullptr) {}
+
+    TBasicType basicType;
+    TArraySizes *arraySizes;
+
+    bool operator==(const TTypeParameters& rhs) const { return basicType == rhs.basicType && *arraySizes == *rhs.arraySizes; }
+    bool operator!=(const TTypeParameters& rhs) const { return basicType != rhs.basicType || *arraySizes != *rhs.arraySizes; }
+};
+
 //
 // TPublicType is just temporarily used while parsing and not quite the same
 // information kept per node in TType.  Due to the bison stack, it can't have
@@ -1555,39 +1457,35 @@
     TSampler sampler;
     TQualifier qualifier;
     TShaderQualifiers shaderQualifiers;
-    int vectorSize : 4;
-    int matrixCols : 4;
-    int matrixRows : 4;
-    bool coopmat   : 1;
+    uint32_t vectorSize  : 4;
+    uint32_t matrixCols  : 4;
+    uint32_t matrixRows  : 4;
+    bool coopmatNV  : 1;
+    bool coopmatKHR : 1;
     TArraySizes* arraySizes;
     const TType* userDef;
     TSourceLoc loc;
-    TArraySizes* typeParameters;
-#ifndef GLSLANG_WEB
+    TTypeParameters* typeParameters;
     // SPIR-V type defined by spirv_type directive
     TSpirvType* spirvType;
-#endif
 
-#ifdef GLSLANG_WEB
-    bool isCoopmat() const { return false; }
-#else
-    bool isCoopmat() const { return coopmat; }
-#endif
+    bool isCoopmat() const { return coopmatNV || coopmatKHR; }
+    bool isCoopmatNV() const { return coopmatNV; }
+    bool isCoopmatKHR() const { return coopmatKHR; }
 
     void initType(const TSourceLoc& l)
     {
         basicType = EbtVoid;
-        vectorSize = 1;
+        vectorSize = 1u;
         matrixRows = 0;
         matrixCols = 0;
         arraySizes = nullptr;
         userDef = nullptr;
         loc = l;
         typeParameters = nullptr;
-        coopmat = false;
-#ifndef GLSLANG_WEB
+        coopmatNV = false;
+        coopmatKHR = false;
         spirvType = nullptr;
-#endif
     }
 
     void initQualifiers(bool global = false)
@@ -1609,25 +1507,26 @@
     {
         matrixRows = 0;
         matrixCols = 0;
-        vectorSize = s;
+        assert(s >= 0);
+        vectorSize = static_cast<uint32_t>(s) & 0b1111;
     }
 
     void setMatrix(int c, int r)
     {
-        matrixRows = r;
-        matrixCols = c;
+        assert(r >= 0);
+        matrixRows = static_cast<uint32_t>(r) & 0b1111;
+        assert(c >= 0);
+        matrixCols = static_cast<uint32_t>(c) & 0b1111;
         vectorSize = 0;
     }
 
     bool isScalar() const
     {
-        return matrixCols == 0 && vectorSize == 1 && arraySizes == nullptr && userDef == nullptr;
+        return matrixCols == 0u && vectorSize == 1u && arraySizes == nullptr && userDef == nullptr;
     }
 
-#ifndef GLSLANG_WEB
     // GL_EXT_spirv_intrinsics
     void setSpirvType(const TSpirvInstruction& spirvInst, const TSpirvTypeParameters* typeParams = nullptr);
-#endif
 
     // "Image" is a superset of "Subpass"
     bool isImage()      const { return basicType == EbtSampler && sampler.isImage(); }
@@ -1645,12 +1544,14 @@
     // for "empty" type (no args) or simple scalar/vector/matrix
     explicit TType(TBasicType t = EbtVoid, TStorageQualifier q = EvqTemporary, int vs = 1, int mc = 0, int mr = 0,
                    bool isVector = false) :
-                            basicType(t), vectorSize(vs), matrixCols(mc), matrixRows(mr), vector1(isVector && vs == 1), coopmat(false),
-                            arraySizes(nullptr), structure(nullptr), fieldName(nullptr), typeName(nullptr), typeParameters(nullptr)
-#ifndef GLSLANG_WEB
-                            , spirvType(nullptr)
-#endif
+                            basicType(t), vectorSize(static_cast<uint32_t>(vs) & 0b1111), matrixCols(static_cast<uint32_t>(mc) & 0b1111), matrixRows(static_cast<uint32_t>(mr) & 0b1111), vector1(isVector && vs == 1), coopmatNV(false), coopmatKHR(false), coopmatKHRuse(0), coopmatKHRUseValid(false),
+                            arraySizes(nullptr), structure(nullptr), fieldName(nullptr), typeName(nullptr), typeParameters(nullptr),
+                            spirvType(nullptr)
                             {
+                                assert(vs >= 0);
+                                assert(mc >= 0);
+                                assert(mr >= 0);
+
                                 sampler.clear();
                                 qualifier.clear();
                                 qualifier.storage = q;
@@ -1659,12 +1560,14 @@
     // for explicit precision qualifier
     TType(TBasicType t, TStorageQualifier q, TPrecisionQualifier p, int vs = 1, int mc = 0, int mr = 0,
           bool isVector = false) :
-                            basicType(t), vectorSize(vs), matrixCols(mc), matrixRows(mr), vector1(isVector && vs == 1), coopmat(false),
-                            arraySizes(nullptr), structure(nullptr), fieldName(nullptr), typeName(nullptr), typeParameters(nullptr)
-#ifndef GLSLANG_WEB
-                            , spirvType(nullptr)
-#endif
+                            basicType(t), vectorSize(static_cast<uint32_t>(vs) & 0b1111), matrixCols(static_cast<uint32_t>(mc) & 0b1111), matrixRows(static_cast<uint32_t>(mr) & 0b1111), vector1(isVector && vs == 1), coopmatNV(false), coopmatKHR(false), coopmatKHRuse(0), coopmatKHRUseValid(false),
+                            arraySizes(nullptr), structure(nullptr), fieldName(nullptr), typeName(nullptr), typeParameters(nullptr),
+                            spirvType(nullptr)
                             {
+                                assert(vs >= 0);
+                                assert(mc >= 0);
+                                assert(mr >= 0);
+
                                 sampler.clear();
                                 qualifier.clear();
                                 qualifier.storage = q;
@@ -1675,11 +1578,9 @@
     // for turning a TPublicType into a TType, using a shallow copy
     explicit TType(const TPublicType& p) :
                             basicType(p.basicType),
-                            vectorSize(p.vectorSize), matrixCols(p.matrixCols), matrixRows(p.matrixRows), vector1(false), coopmat(p.coopmat),
-                            arraySizes(p.arraySizes), structure(nullptr), fieldName(nullptr), typeName(nullptr), typeParameters(p.typeParameters)
-#ifndef GLSLANG_WEB
-                            , spirvType(p.spirvType)
-#endif
+                            vectorSize(p.vectorSize), matrixCols(p.matrixCols), matrixRows(p.matrixRows), vector1(false), coopmatNV(p.coopmatNV), coopmatKHR(p.coopmatKHR), coopmatKHRuse(0), coopmatKHRUseValid(false),
+                            arraySizes(p.arraySizes), structure(nullptr), fieldName(nullptr), typeName(nullptr), typeParameters(p.typeParameters),
+                            spirvType(p.spirvType)
                             {
                                 if (basicType == EbtSampler)
                                     sampler = p.sampler;
@@ -1695,28 +1596,42 @@
                                     }
                                     typeName = NewPoolTString(p.userDef->getTypeName().c_str());
                                 }
-                                if (p.isCoopmat() && p.typeParameters && p.typeParameters->getNumDims() > 0) {
-                                    int numBits = p.typeParameters->getDimSize(0);
+                                if (p.isCoopmatNV() && p.typeParameters && p.typeParameters->arraySizes->getNumDims() > 0) {
+                                    int numBits = p.typeParameters->arraySizes->getDimSize(0);
                                     if (p.basicType == EbtFloat && numBits == 16) {
                                         basicType = EbtFloat16;
                                         qualifier.precision = EpqNone;
                                     } else if (p.basicType == EbtUint && numBits == 8) {
                                         basicType = EbtUint8;
                                         qualifier.precision = EpqNone;
+                                    } else if (p.basicType == EbtUint && numBits == 16) {
+                                        basicType = EbtUint16;
+                                        qualifier.precision = EpqNone;
                                     } else if (p.basicType == EbtInt && numBits == 8) {
                                         basicType = EbtInt8;
                                         qualifier.precision = EpqNone;
+                                    } else if (p.basicType == EbtInt && numBits == 16) {
+                                        basicType = EbtInt16;
+                                        qualifier.precision = EpqNone;
+                                    }
+                                }
+                                if (p.isCoopmatKHR() && p.typeParameters && p.typeParameters->arraySizes->getNumDims() > 0) {
+                                    basicType = p.typeParameters->basicType;
+
+                                    if (p.typeParameters->arraySizes->getNumDims() == 4) {
+                                        const int dimSize = p.typeParameters->arraySizes->getDimSize(3);
+                                        assert(dimSize >= 0);
+                                        coopmatKHRuse = static_cast<uint32_t>(dimSize) & 0b111;
+                                        coopmatKHRUseValid = true;
+                                        p.typeParameters->arraySizes->removeLastSize();
                                     }
                                 }
                             }
     // for construction of sampler types
     TType(const TSampler& sampler, TStorageQualifier q = EvqUniform, TArraySizes* as = nullptr) :
-        basicType(EbtSampler), vectorSize(1), matrixCols(0), matrixRows(0), vector1(false), coopmat(false),
+        basicType(EbtSampler), vectorSize(1u), matrixCols(0u), matrixRows(0u), vector1(false), coopmatNV(false), coopmatKHR(false), coopmatKHRuse(0), coopmatKHRUseValid(false),
         arraySizes(as), structure(nullptr), fieldName(nullptr), typeName(nullptr),
-        sampler(sampler), typeParameters(nullptr)
-#ifndef GLSLANG_WEB
-        , spirvType(nullptr)
-#endif
+        sampler(sampler), typeParameters(nullptr), spirvType(nullptr)
     {
         qualifier.clear();
         qualifier.storage = q;
@@ -1758,18 +1673,19 @@
                                         vectorSize = 1;
                                         vector1 = false;
                                     } else if (isCoopMat()) {
-                                        coopmat = false;
+                                        coopmatNV = false;
+                                        coopmatKHR = false;
+                                        coopmatKHRuse = 0;
+                                        coopmatKHRUseValid = false;
                                         typeParameters = nullptr;
                                     }
                                 }
                             }
     // for making structures, ...
     TType(TTypeList* userDef, const TString& n) :
-                            basicType(EbtStruct), vectorSize(1), matrixCols(0), matrixRows(0), vector1(false), coopmat(false),
-                            arraySizes(nullptr), structure(userDef), fieldName(nullptr), typeParameters(nullptr)
-#ifndef GLSLANG_WEB
-                            , spirvType(nullptr)
-#endif
+                            basicType(EbtStruct), vectorSize(1), matrixCols(0), matrixRows(0), vector1(false), coopmatNV(false), coopmatKHR(false), coopmatKHRuse(0), coopmatKHRUseValid(false),
+                            arraySizes(nullptr), structure(userDef), fieldName(nullptr), typeParameters(nullptr),
+                            spirvType(nullptr)
                             {
                                 sampler.clear();
                                 qualifier.clear();
@@ -1777,22 +1693,18 @@
                             }
     // For interface blocks
     TType(TTypeList* userDef, const TString& n, const TQualifier& q) :
-                            basicType(EbtBlock), vectorSize(1), matrixCols(0), matrixRows(0), vector1(false), coopmat(false),
-                            qualifier(q), arraySizes(nullptr), structure(userDef), fieldName(nullptr), typeParameters(nullptr)
-#ifndef GLSLANG_WEB
-                            , spirvType(nullptr)
-#endif
+                            basicType(EbtBlock), vectorSize(1), matrixCols(0), matrixRows(0), vector1(false), coopmatNV(false), coopmatKHR(false), coopmatKHRuse(0), coopmatKHRUseValid(false),
+                            qualifier(q), arraySizes(nullptr), structure(userDef), fieldName(nullptr), typeParameters(nullptr),
+                            spirvType(nullptr)
                             {
                                 sampler.clear();
                                 typeName = NewPoolTString(n.c_str());
                             }
     // for block reference (first parameter must be EbtReference)
     explicit TType(TBasicType t, const TType &p, const TString& n) :
-                            basicType(t), vectorSize(1), matrixCols(0), matrixRows(0), vector1(false), coopmat(false),
-                            arraySizes(nullptr), structure(nullptr), fieldName(nullptr), typeName(nullptr), typeParameters(nullptr)
-#ifndef GLSLANG_WEB
-                            , spirvType(nullptr)
-#endif
+                            basicType(t), vectorSize(1), matrixCols(0), matrixRows(0), vector1(false), coopmatNV(false), coopmatKHR(false), coopmatKHRuse(0), coopmatKHRUseValid(false),
+                            arraySizes(nullptr), structure(nullptr), fieldName(nullptr), typeName(nullptr), typeParameters(nullptr),
+                            spirvType(nullptr)
                             {
                                 assert(t == EbtReference);
                                 typeName = NewPoolTString(n.c_str());
@@ -1824,10 +1736,11 @@
             referentType = copyOf.referentType;
         }
         typeParameters = copyOf.typeParameters;
-#ifndef GLSLANG_WEB
         spirvType = copyOf.spirvType;
-#endif
-        coopmat = copyOf.isCoopMat();
+        coopmatNV = copyOf.isCoopMatNV();
+        coopmatKHR = copyOf.isCoopMatKHR();
+        coopmatKHRuse = copyOf.coopmatKHRuse;
+        coopmatKHRUseValid = copyOf.coopmatKHRUseValid;
     }
 
     // Make complete copy of the whole type graph rooted at 'copyOf'.
@@ -1857,7 +1770,7 @@
 
     void makeVector() { vector1 = true; }
 
-    virtual void hideMember() { basicType = EbtVoid; vectorSize = 1; }
+    virtual void hideMember() { basicType = EbtVoid; vectorSize = 1u; }
     virtual bool hiddenMember() const { return basicType == EbtVoid; }
 
     virtual void setFieldName(const TString& n) { fieldName = NewPoolTString(n.c_str()); }
@@ -1897,28 +1810,24 @@
     virtual       TQualifier& getQualifier()       { return qualifier; }
     virtual const TQualifier& getQualifier() const { return qualifier; }
 
-    virtual int getVectorSize() const { return vectorSize; }  // returns 1 for either scalar or vector of size 1, valid for both
-    virtual int getMatrixCols() const { return matrixCols; }
-    virtual int getMatrixRows() const { return matrixRows; }
+    virtual int getVectorSize() const { return static_cast<int>(vectorSize); }  // returns 1 for either scalar or vector of size 1, valid for both
+    virtual int getMatrixCols() const { return static_cast<int>(matrixCols); }
+    virtual int getMatrixRows() const { return static_cast<int>(matrixRows); }
     virtual int getOuterArraySize()  const { return arraySizes->getOuterSize(); }
     virtual TIntermTyped*  getOuterArrayNode() const { return arraySizes->getOuterNode(); }
     virtual int getCumulativeArraySize()  const { return arraySizes->getCumulativeSize(); }
-#ifdef GLSLANG_WEB
-    bool isArrayOfArrays() const { return false; }
-#else
     bool isArrayOfArrays() const { return arraySizes != nullptr && arraySizes->getNumDims() > 1; }
-#endif
     virtual int getImplicitArraySize() const { return arraySizes->getImplicitSize(); }
     virtual const TArraySizes* getArraySizes() const { return arraySizes; }
     virtual       TArraySizes* getArraySizes()       { return arraySizes; }
     virtual TType* getReferentType() const { return referentType; }
-    virtual const TArraySizes* getTypeParameters() const { return typeParameters; }
-    virtual       TArraySizes* getTypeParameters()       { return typeParameters; }
+    virtual const TTypeParameters* getTypeParameters() const { return typeParameters; }
+    virtual       TTypeParameters* getTypeParameters()       { return typeParameters; }
 
     virtual bool isScalar() const { return ! isVector() && ! isMatrix() && ! isStruct() && ! isArray(); }
     virtual bool isScalarOrVec1() const { return isScalar() || vector1; }
     virtual bool isScalarOrVector() const { return !isMatrix() && !isStruct() && !isArray(); }
-    virtual bool isVector() const { return vectorSize > 1 || vector1; }
+    virtual bool isVector() const { return vectorSize > 1u || vector1; }
     virtual bool isMatrix() const { return matrixCols ? true : false; }
     virtual bool isArray()  const { return arraySizes != nullptr; }
     virtual bool isSizedArray() const { return isArray() && arraySizes->isSized(); }
@@ -1949,11 +1858,8 @@
         return false;
     }
     virtual bool isOpaque() const { return basicType == EbtSampler
-#ifndef GLSLANG_WEB
-            || basicType == EbtAtomicUint || basicType == EbtAccStruct || basicType == EbtRayQuery 
-            || basicType == EbtHitObjectNV
-#endif
-        ; }
+            || basicType == EbtAtomicUint || basicType == EbtAccStruct || basicType == EbtRayQuery
+            || basicType == EbtHitObjectNV; }
     virtual bool isBuiltIn() const { return getQualifier().builtIn != EbvNone; }
 
     virtual bool isAttachmentEXT() const { return basicType == EbtSampler && getSampler().isAttachmentEXT(); }
@@ -1965,17 +1871,13 @@
     // 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; }
-#ifdef GLSLANG_WEB
-    bool isAtomic() const { return false; }
-    bool isCoopMat() const { return false; }
-    bool isReference() const { return false; }
-    bool isSpirvType() const { return false; }
-#else
     bool isAtomic() const { return basicType == EbtAtomicUint; }
-    bool isCoopMat() const { return coopmat; }
+    bool isCoopMat() const { return coopmatNV || coopmatKHR; }
+    bool isCoopMatNV() const { return coopmatNV; }
+    bool isCoopMatKHR() const { return coopmatKHR; }
     bool isReference() const { return getBasicType() == EbtReference; }
     bool isSpirvType() const { return getBasicType() == EbtSpirvType; }
-#endif
+    int getCoopMatKHRuse() const { return static_cast<int>(coopmatKHRuse); }
 
     // return true if this type contains any subtype which satisfies the given predicate.
     template <typename P>
@@ -2061,15 +1963,6 @@
         return contains([](const TType* t) { return t->isArray() && t->arraySizes->isOuterSpecialization(); } );
     }
 
-#ifdef GLSLANG_WEB
-    bool containsDouble() const { return false; }
-    bool contains16BitFloat() const { return false; }
-    bool contains64BitInt() const { return false; }
-    bool contains16BitInt() const { return false; }
-    bool contains8BitInt() const { return false; }
-    bool containsCoopMat() const { return false; }
-    bool containsReference() const { return false; }
-#else
     bool containsDouble() const
     {
         return containsBasicType(EbtDouble);
@@ -2092,13 +1985,12 @@
     }
     bool containsCoopMat() const
     {
-        return contains([](const TType* t) { return t->coopmat; } );
+        return contains([](const TType* t) { return t->coopmatNV || t->coopmatKHR; } );
     }
     bool containsReference() const
     {
         return containsBasicType(EbtReference);
     }
-#endif
 
     // Array editing methods.  Array descriptors can be shared across
     // type instances.  This allows all uses of the same array
@@ -2174,43 +2066,12 @@
         }
     }
 
-
-    void updateTypeParameters(const TType& type)
-    {
-        // For when we may already be sharing existing array descriptors,
-        // keeping the pointers the same, just updating the contents.
-        assert(typeParameters != nullptr);
-        assert(type.typeParameters != nullptr);
-        *typeParameters = *type.typeParameters;
-    }
-    void copyTypeParameters(const TArraySizes& s)
+    void copyTypeParameters(const TTypeParameters& s)
     {
         // For setting a fresh new set of type parameters, not yet worrying about sharing.
-        typeParameters = new TArraySizes;
+        typeParameters = new TTypeParameters;
         *typeParameters = s;
     }
-    void transferTypeParameters(TArraySizes* s)
-    {
-        // For setting an already allocated set of sizes that this type can use
-        // (no copy made).
-        typeParameters = s;
-    }
-    void clearTypeParameters()
-    {
-        typeParameters = nullptr;
-    }
-
-    // Add inner array sizes, to any existing sizes, via copy; the
-    // sizes passed in can still be reused for other purposes.
-    void copyTypeParametersInnerSizes(const TArraySizes* s)
-    {
-        if (s != nullptr) {
-            if (typeParameters == nullptr)
-                copyTypeParameters(*s);
-            else
-                typeParameters->addInnerSizes(*s);
-        }
-    }
 
     const char* getBasicString() const
     {
@@ -2224,7 +2085,6 @@
         case EbtInt:               return "int";
         case EbtUint:              return "uint";
         case EbtSampler:           return "sampler/image";
-#ifndef GLSLANG_WEB
         case EbtVoid:              return "void";
         case EbtDouble:            return "double";
         case EbtFloat16:           return "float16_t";
@@ -2243,18 +2103,11 @@
         case EbtReference:         return "reference";
         case EbtString:            return "string";
         case EbtSpirvType:         return "spirv_type";
-#endif
+        case EbtCoopmat:           return "coopmat";
         default:                   return "unknown type";
         }
     }
 
-#ifdef GLSLANG_WEB
-    TString getCompleteString() const { return ""; }
-    const char* getStorageQualifierString() const { return ""; }
-    const char* getBuiltInVariableString() const { return ""; }
-    const char* getPrecisionQualifierString() const { return ""; }
-    TString getBasicTypeString() const { return ""; }
-#else
     TString getCompleteString(bool syntactic = false, bool getQualifiers = true, bool getPrecision = true,
                               bool getType = true, TString name = "", TString structName = "") const
     {
@@ -2265,7 +2118,7 @@
         const auto appendInt  = [&](int i)          { typeString.append(std::to_string(i).c_str()); };
 
         if (getQualifiers) {
-          if (qualifier.hasSprivDecorate())
+          if (qualifier.hasSpirvDecorate())
             appendStr(qualifier.getSpirvDecorateQualifierString().c_str());
 
           if (qualifier.hasLayout()) {
@@ -2359,6 +2212,10 @@
               
               if (qualifier.layoutShaderRecord)
                 appendStr(" shaderRecordNV");
+              if (qualifier.layoutFullQuads)
+                appendStr(" full_quads");
+              if (qualifier.layoutQuadDeriv)
+                appendStr(" quad_derivatives");
               if (qualifier.layoutHitObjectShaderRecordNV)
                 appendStr(" hitobjectshaderrecordnv");
 
@@ -2553,12 +2410,21 @@
               }
             }
             if (isParameterized()) {
+              if (isCoopMatKHR()) {
+                appendStr(" ");
+                appendStr("coopmat");
+              }
+
               appendStr("<");
-              for (int i = 0; i < (int)typeParameters->getNumDims(); ++i) {
-                appendInt(typeParameters->getDimSize(i));
-                if (i != (int)typeParameters->getNumDims() - 1)
+              for (int i = 0; i < (int)typeParameters->arraySizes->getNumDims(); ++i) {
+                appendInt(typeParameters->arraySizes->getDimSize(i));
+                if (i != (int)typeParameters->arraySizes->getNumDims() - 1)
                   appendStr(", ");
               }
+              if (coopmatKHRUseValid) {
+                  appendStr(", ");
+                  appendInt(coopmatKHRuse);
+              }
               appendStr(">");
             }
             if (getPrecision && qualifier.precision != EpqNone) {
@@ -2619,17 +2485,19 @@
     const char* getStorageQualifierString() const { return GetStorageQualifierString(qualifier.storage); }
     const char* getBuiltInVariableString() const { return GetBuiltInVariableString(qualifier.builtIn); }
     const char* getPrecisionQualifierString() const { return GetPrecisionQualifierString(qualifier.precision); }
-#endif
 
     const TTypeList* getStruct() const { assert(isStruct()); return structure; }
     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; }
+    void setVectorSize(int s) {
+        assert(s >= 0);
+        vectorSize = static_cast<uint32_t>(s) & 0b1111;
+    }
 
     int computeNumComponents() const
     {
-        int components = 0;
+        uint32_t components = 0;
 
         if (getBasicType() == EbtStruct || getBasicType() == EbtBlock) {
             for (TTypeList::const_iterator tl = getStruct()->begin(); tl != getStruct()->end(); tl++)
@@ -2643,7 +2511,7 @@
             components *= arraySizes->getCumulativeSize();
         }
 
-        return components;
+        return static_cast<int>(components);
     }
 
     // append this type's mangled name to the passed in 'name'
@@ -2813,14 +2681,12 @@
                 (typeParameters != nullptr && right.typeParameters != nullptr && *typeParameters == *right.typeParameters));
     }
 
-#ifndef GLSLANG_WEB
     // See if two type's SPIR-V type contents match
     bool sameSpirvType(const TType& right) const
     {
         return ((spirvType == nullptr && right.spirvType == nullptr) ||
                 (spirvType != nullptr && right.spirvType != nullptr && *spirvType == *right.spirvType));
     }
-#endif
 
     // See if two type's elements match in all ways except basic type
     // If mismatch in structure members, return member indices in lpidx and rpidx.
@@ -2835,7 +2701,8 @@
                matrixCols == right.matrixCols &&
                matrixRows == right.matrixRows &&
                   vector1 == right.vector1    &&
-              isCoopMat() == right.isCoopMat() &&
+              isCoopMatNV() == right.isCoopMatNV() &&
+              isCoopMatKHR() == right.isCoopMatKHR() &&
                sameStructType(right, lpidx, rpidx) &&
                sameReferenceType(right);
     }
@@ -2844,32 +2711,69 @@
     // an OK function parameter
     bool coopMatParameterOK(const TType& right) const
     {
-        return isCoopMat() && right.isCoopMat() && (getBasicType() == right.getBasicType()) &&
-               typeParameters == nullptr && right.typeParameters != nullptr;
+        if (isCoopMatNV()) {
+            return right.isCoopMatNV() && (getBasicType() == right.getBasicType()) && typeParameters == nullptr &&
+                   right.typeParameters != nullptr;
+        }
+        if (isCoopMatKHR() && right.isCoopMatKHR()) {
+            return ((getBasicType() == right.getBasicType()) || (getBasicType() == EbtCoopmat) ||
+                    (right.getBasicType() == EbtCoopmat)) &&
+                   typeParameters == nullptr && right.typeParameters != nullptr;
+        }
+        return false;
     }
 
     bool sameCoopMatBaseType(const TType &right) const {
-        bool rv = coopmat && right.coopmat;
-        if (getBasicType() == EbtFloat || getBasicType() == EbtFloat16)
-            rv = right.getBasicType() == EbtFloat || right.getBasicType() == EbtFloat16;
-        else if (getBasicType() == EbtUint || getBasicType() == EbtUint8)
-            rv = right.getBasicType() == EbtUint || right.getBasicType() == EbtUint8;
-        else if (getBasicType() == EbtInt || getBasicType() == EbtInt8)
-            rv = right.getBasicType() == EbtInt || right.getBasicType() == EbtInt8;
-        else
-            rv = false;
+        bool rv = false;
+
+        if (isCoopMatNV()) {
+            rv = isCoopMatNV() && right.isCoopMatNV();
+            if (getBasicType() == EbtFloat || getBasicType() == EbtFloat16)
+                rv = right.getBasicType() == EbtFloat || right.getBasicType() == EbtFloat16;
+            else if (getBasicType() == EbtUint || getBasicType() == EbtUint8 || getBasicType() == EbtUint16)
+                rv = right.getBasicType() == EbtUint || right.getBasicType() == EbtUint8 || right.getBasicType() == EbtUint16;
+            else if (getBasicType() == EbtInt || getBasicType() == EbtInt8 || getBasicType() == EbtInt16)
+                rv = right.getBasicType() == EbtInt || right.getBasicType() == EbtInt8 || right.getBasicType() == EbtInt16;
+            else
+                rv = false;
+        } else if (isCoopMatKHR() && right.isCoopMatKHR()) {
+            if (getBasicType() == EbtFloat || getBasicType() == EbtFloat16)
+                rv = right.getBasicType() == EbtFloat || right.getBasicType() == EbtFloat16 || right.getBasicType() == EbtCoopmat;
+            else if (getBasicType() == EbtUint || getBasicType() == EbtUint8 || getBasicType() == EbtUint16)
+                rv = right.getBasicType() == EbtUint || right.getBasicType() == EbtUint8 || right.getBasicType() == EbtUint16 || right.getBasicType() == EbtCoopmat;
+            else if (getBasicType() == EbtInt || getBasicType() == EbtInt8 || getBasicType() == EbtInt16)
+                rv = right.getBasicType() == EbtInt || right.getBasicType() == EbtInt8 || right.getBasicType() == EbtInt16 || right.getBasicType() == EbtCoopmat;
+            else
+                rv = false;
+        }
         return rv;
     }
 
+    bool sameCoopMatUse(const TType &right) const {
+        return coopmatKHRuse == right.coopmatKHRuse;
+    }
+
+    bool sameCoopMatShapeAndUse(const TType &right) const
+    {
+        if (!isCoopMat() || !right.isCoopMat() || isCoopMatKHR() != right.isCoopMatKHR())
+            return false;
+
+        if (coopmatKHRuse != right.coopmatKHRuse)
+            return false;
+
+        // Skip bit width type parameter (first array size) for coopmatNV
+        int firstArrayDimToCompare = isCoopMatNV() ? 1 : 0;
+        for (int i = firstArrayDimToCompare; i < typeParameters->arraySizes->getNumDims(); ++i) {
+            if (typeParameters->arraySizes->getDimSize(i) != right.typeParameters->arraySizes->getDimSize(i))
+                return false;
+        }
+        return true;
+    }
 
     // See if two types match in all ways (just the actual type, not qualification)
     bool operator==(const TType& right) const
     {
-#ifndef GLSLANG_WEB
-        return sameElementType(right) && sameArrayness(right) && sameTypeParameters(right) && sameSpirvType(right);
-#else
-        return sameElementType(right) && sameArrayness(right) && sameTypeParameters(right);
-#endif
+        return sameElementType(right) && sameArrayness(right) && sameTypeParameters(right) && sameCoopMatUse(right) && sameSpirvType(right);
     }
 
     bool operator!=(const TType& right) const
@@ -2879,18 +2783,14 @@
 
     unsigned int getBufferReferenceAlignment() const
     {
-#ifndef GLSLANG_WEB
         if (getBasicType() == glslang::EbtReference) {
             return getReferentType()->getQualifier().hasBufferReferenceAlign() ?
                         (1u << getReferentType()->getQualifier().layoutBufferReferenceAlign) : 16u;
         }
-#endif
         return 0;
     }
 
-#ifndef GLSLANG_WEB
     const TSpirvType& getSpirvType() const { assert(spirvType); return *spirvType; }
-#endif
 
 protected:
     // Require consumer to pick between deep copy and shallow copy.
@@ -2904,7 +2804,6 @@
     {
         shallowCopy(copyOf);
 
-#ifndef GLSLANG_WEB
         // GL_EXT_spirv_intrinsics
         if (copyOf.qualifier.spirvDecorate) {
             qualifier.spirvDecorate = new TSpirvDecorate;
@@ -2915,7 +2814,6 @@
             spirvType = new TSpirvType;
             *spirvType = *copyOf.spirvType;
         }
-#endif
 
         if (copyOf.arraySizes) {
             arraySizes = new TArraySizes;
@@ -2923,8 +2821,10 @@
         }
 
         if (copyOf.typeParameters) {
-            typeParameters = new TArraySizes;
-            *typeParameters = *copyOf.typeParameters;
+            typeParameters = new TTypeParameters;
+            typeParameters->arraySizes = new TArraySizes;
+            *typeParameters->arraySizes = *copyOf.typeParameters->arraySizes;
+            typeParameters->basicType = copyOf.basicType;
         }
 
         if (copyOf.isStruct() && copyOf.structure) {
@@ -2954,15 +2854,18 @@
     void buildMangledName(TString&) const;
 
     TBasicType basicType : 8;
-    int vectorSize       : 4;  // 1 means either scalar or 1-component vector; see vector1 to disambiguate.
-    int matrixCols       : 4;
-    int matrixRows       : 4;
+    uint32_t vectorSize       : 4;  // 1 means either scalar or 1-component vector; see vector1 to disambiguate.
+    uint32_t matrixCols       : 4;
+    uint32_t matrixRows       : 4;
     bool vector1         : 1;  // Backward-compatible tracking of a 1-component vector distinguished from a scalar.
                                // GLSL 4.5 never has a 1-component vector; so this will always be false until such
                                // functionality is added.
                                // HLSL does have a 1-component vectors, so this will be true to disambiguate
                                // from a scalar.
-    bool coopmat         : 1;
+    bool coopmatNV       : 1;
+    bool coopmatKHR      : 1;
+    uint32_t coopmatKHRuse    : 3;  // Accepts one of three values: 0, 1, 2 (gl_MatrixUseA, gl_MatrixUseB, gl_MatrixUseAccumulator)
+    bool coopmatKHRUseValid   : 1;  // True if coopmatKHRuse has been set
     TQualifier qualifier;
 
     TArraySizes* arraySizes;    // nullptr unless an array; can be shared across types
@@ -2975,10 +2878,8 @@
     TString *fieldName;         // for structure field names
     TString *typeName;          // for structure type name
     TSampler sampler;
-    TArraySizes* typeParameters;// nullptr unless a parameterized type; can be shared across types
-#ifndef GLSLANG_WEB
+    TTypeParameters *typeParameters;// nullptr unless a parameterized type; can be shared across types
     TSpirvType* spirvType;  // SPIR-V type defined by spirv_type directive
-#endif
 };
 
 } // end namespace glslang
diff --git a/glslang/Include/arrays.h b/glslang/Include/arrays.h
index 1da14d0..91e1908 100644
--- a/glslang/Include/arrays.h
+++ b/glslang/Include/arrays.h
@@ -147,6 +147,15 @@
             sizes->erase(sizes->begin());
     }
 
+    void pop_back()
+    {
+        assert(sizes != nullptr && sizes->size() > 0);
+        if (sizes->size() == 1)
+            dealloc();
+        else
+            sizes->resize(sizes->size() - 1);
+    }
+
     // 'this' should currently not be holding anything, and copyNonFront
     // will make it hold a copy of all but the first element of rhs.
     // (This would be useful for making a type that is dereferenced by
@@ -306,6 +315,7 @@
     bool isDefaultImplicitlySized() const { return implicitlySized && implicitArraySize == 0; }
     void setImplicitlySized(bool isImplicitSizing) { implicitlySized = isImplicitSizing; }
     void dereference() { sizes.pop_front(); }
+    void removeLastSize() { sizes.pop_back(); }
     void copyDereferenced(const TArraySizes& rhs)
     {
         assert(sizes.size() == 0);
diff --git a/glslang/Include/glslang_c_interface.h b/glslang/Include/glslang_c_interface.h
index fd636cf..7fa1a05 100644
--- a/glslang/Include/glslang_c_interface.h
+++ b/glslang/Include/glslang_c_interface.h
@@ -226,6 +226,7 @@
     bool validate;
     bool emit_nonsemantic_shader_debug_info;
     bool emit_nonsemantic_shader_debug_source;
+    bool compile_only;
 } glslang_spv_options_t;
 
 #ifdef __cplusplus
diff --git a/glslang/Include/intermediate.h b/glslang/Include/intermediate.h
index e6b4df4..6b190d4 100644
--- a/glslang/Include/intermediate.h
+++ b/glslang/Include/intermediate.h
@@ -1,7 +1,7 @@
 //
 // Copyright (C) 2002-2005  3Dlabs Inc. Ltd.
 // Copyright (C) 2012-2016 LunarG, Inc.
-// Copyright (C) 2017 ARM Limited.
+// Copyright (C) 2017, 2022-2024 Arm Limited.
 // Modifications Copyright (C) 2020 Advanced Micro Devices, Inc. All rights reserved.
 //
 // All rights reserved.
@@ -48,14 +48,9 @@
 #ifndef __INTERMEDIATE_H
 #define __INTERMEDIATE_H
 
-#if defined(_MSC_VER) && _MSC_VER >= 1900
-    #pragma warning(disable : 4464) // relative include path contains '..'
-    #pragma warning(disable : 5026) // 'glslang::TIntermUnary': move constructor was implicitly defined as deleted
-#endif
-
-#include "../Include/Common.h"
-#include "../Include/Types.h"
-#include "../Include/ConstantUnion.h"
+#include "Common.h"
+#include "Types.h"
+#include "ConstantUnion.h"
 
 namespace glslang {
 
@@ -72,9 +67,7 @@
     EOpFunctionCall,
     EOpFunction,        // For function definition
     EOpParameters,      // an aggregate listing the parameters to a function
-#ifndef GLSLANG_WEB
     EOpSpirvInst,
-#endif
 
     //
     // Unary operators
@@ -513,6 +506,8 @@
     EOpSubgroupShuffleXor,
     EOpSubgroupShuffleUp,
     EOpSubgroupShuffleDown,
+    EOpSubgroupRotate,
+    EOpSubgroupClusteredRotate,
     EOpSubgroupAdd,
     EOpSubgroupMul,
     EOpSubgroupMin,
@@ -545,6 +540,8 @@
     EOpSubgroupQuadSwapHorizontal,
     EOpSubgroupQuadSwapVertical,
     EOpSubgroupQuadSwapDiagonal,
+    EOpSubgroupQuadAll,
+    EOpSubgroupQuadAny,
 
     EOpSubgroupPartition,
     EOpSubgroupPartitionedAdd,
@@ -629,6 +626,9 @@
     EOpCooperativeMatrixLoad,
     EOpCooperativeMatrixStore,
     EOpCooperativeMatrixMulAdd,
+    EOpCooperativeMatrixLoadNV,
+    EOpCooperativeMatrixStoreNV,
+    EOpCooperativeMatrixMulAddNV,
 
     EOpBeginInvocationInterlock, // Fragment only
     EOpEndInvocationInterlock, // Fragment only
@@ -766,7 +766,8 @@
     EOpConstructTextureSampler,
     EOpConstructNonuniform,     // expected to be transformed away, not present in final AST
     EOpConstructReference,
-    EOpConstructCooperativeMatrix,
+    EOpConstructCooperativeMatrixNV,
+    EOpConstructCooperativeMatrixKHR,
     EOpConstructAccStruct,
     EOpConstructGuardEnd,
 
@@ -1004,6 +1005,8 @@
     EOpHitObjectGetAttributesNV,
     EOpHitObjectGetCurrentTimeNV,
     EOpReorderThreadNV,
+    EOpFetchMicroTriangleVertexPositionNV,
+    EOpFetchMicroTriangleVertexBarycentricNV,
 
     // HLSL operations
     //
@@ -1098,6 +1101,17 @@
     // Shader tile image ops
     EOpStencilAttachmentReadEXT, // Fragment only
     EOpDepthAttachmentReadEXT, // Fragment only
+
+    // Image processing
+    EOpImageSampleWeightedQCOM,
+    EOpImageBoxFilterQCOM,
+    EOpImageBlockMatchSADQCOM,
+    EOpImageBlockMatchSSDQCOM,
+};
+
+enum TLinkType {
+    ELinkNone,
+    ELinkExport,
 };
 
 class TIntermTraverser;
@@ -1317,9 +1331,11 @@
     virtual const TString& getMethodName() const { return method; }
     virtual TIntermTyped* getObject() const { return object; }
     virtual void traverse(TIntermTraverser*);
+    void setExport() { linkType = ELinkExport; }
 protected:
     TIntermTyped* object;
     TString method;
+    TLinkType linkType;
 };
 
 //
@@ -1331,12 +1347,7 @@
     // per process threadPoolAllocator, then it causes increased memory usage per compile
     // it is essential to use "symbol = sym" to assign to symbol
     TIntermSymbol(long long i, const TString& n, const TType& t)
-        : TIntermTyped(t), id(i),
-#ifndef GLSLANG_WEB
-        flattenSubset(-1),
-#endif
-        constSubtree(nullptr)
-          { name = n; }
+        : TIntermTyped(t), id(i), flattenSubset(-1), constSubtree(nullptr) { name = n; }
     virtual long long getId() const { return id; }
     virtual void changeId(long long i) { id = i; }
     virtual const TString& getName() const { return name; }
@@ -1347,12 +1358,10 @@
     const TConstUnionArray& getConstArray() const { return constArray; }
     void setConstSubtree(TIntermTyped* subtree) { constSubtree = subtree; }
     TIntermTyped* getConstSubtree() const { return constSubtree; }
-#ifndef GLSLANG_WEB
     void setFlattenSubset(int subset) { flattenSubset = subset; }
     virtual const TString& getAccessName() const;
 
     int getFlattenSubset() const { return flattenSubset; } // -1 means full object
-#endif
 
     // This is meant for cases where a node has already been constructed, and
     // later on, it becomes necessary to switch to a different symbol.
@@ -1360,9 +1369,7 @@
 
 protected:
     long long id;                // the unique id of the symbol this node represents
-#ifndef GLSLANG_WEB
     int flattenSubset;           // how deeply the flattened object rooted at id has been dereferenced
-#endif
     TString name;                // the name of the symbol this node represents
     TConstUnionArray constArray; // if the symbol is a front-end compile-time constant, this is its value
     TIntermTyped* constSubtree;
@@ -1417,19 +1424,11 @@
     bool isConstructor() const;
     bool isTexture()  const { return op > EOpTextureGuardBegin  && op < EOpTextureGuardEnd; }
     bool isSampling() const { return op > EOpSamplingGuardBegin && op < EOpSamplingGuardEnd; }
-#ifdef GLSLANG_WEB
-    bool isImage()          const { return false; }
-    bool isSparseTexture()  const { return false; }
-    bool isImageFootprint() const { return false; }
-    bool isSparseImage()    const { return false; }
-    bool isSubgroup()       const { return false; }
-#else
     bool isImage()    const { return op > EOpImageGuardBegin    && op < EOpImageGuardEnd; }
     bool isSparseTexture() const { return op > EOpSparseTextureGuardBegin && op < EOpSparseTextureGuardEnd; }
     bool isImageFootprint() const { return op > EOpImageFootprintGuardBegin && op < EOpImageFootprintGuardEnd; }
     bool isSparseImage()   const { return op == EOpSparseImageLoad; }
     bool isSubgroup() const { return op > EOpSubgroupGuardStart && op < EOpSubgroupGuardStop; }
-#endif
 
     void setOperationPrecision(TPrecisionQualifier p) { operationPrecision = p; }
     TPrecisionQualifier getOperationPrecision() const { return operationPrecision != EpqNone ?
@@ -1535,7 +1534,6 @@
             cracked.offset = true;
             cracked.proj = true;
             break;
-#ifndef GLSLANG_WEB
         case EOpTextureClamp:
         case EOpSparseTextureClamp:
             cracked.lodClamp = true;
@@ -1622,7 +1620,6 @@
         case EOpColorAttachmentReadEXT:
             cracked.attachmentEXT = true;
             break;
-#endif
         default:
             break;
         }
@@ -1673,15 +1670,11 @@
     virtual       TIntermUnary* getAsUnaryNode()       { return this; }
     virtual const TIntermUnary* getAsUnaryNode() const { return this; }
     virtual void updatePrecision();
-#ifndef GLSLANG_WEB
     void setSpirvInstruction(const TSpirvInstruction& inst) { spirvInst = inst; }
     const TSpirvInstruction& getSpirvInstruction() const { return spirvInst; }
-#endif
 protected:
     TIntermTyped* operand;
-#ifndef GLSLANG_WEB
     TSpirvInstruction spirvInst;
-#endif
 };
 
 typedef TVector<TIntermNode*> TIntermSequence;
@@ -1713,10 +1706,11 @@
     bool getDebug() const { return debug; }
     void setPragmaTable(const TPragmaTable& pTable);
     const TPragmaTable& getPragmaTable() const { return *pragmaTable; }
-#ifndef GLSLANG_WEB
     void setSpirvInstruction(const TSpirvInstruction& inst) { spirvInst = inst; }
     const TSpirvInstruction& getSpirvInstruction() const { return spirvInst; }
-#endif
+
+    void setLinkType(TLinkType l) { linkType = l; }
+    TLinkType getLinkType() const { return linkType; }
 protected:
     TIntermAggregate(const TIntermAggregate&); // disallow copy constructor
     TIntermAggregate& operator=(const TIntermAggregate&); // disallow assignment operator
@@ -1727,9 +1721,8 @@
     bool optimize;
     bool debug;
     TPragmaTable* pragmaTable;
-#ifndef GLSLANG_WEB
     TSpirvInstruction spirvInst;
-#endif
+    TLinkType linkType = ELinkNone;
 };
 
 //
diff --git a/glslang/MachineIndependent/Constant.cpp b/glslang/MachineIndependent/Constant.cpp
index f6916cb..ac7fc8c 100644
--- a/glslang/MachineIndependent/Constant.cpp
+++ b/glslang/MachineIndependent/Constant.cpp
@@ -177,7 +177,6 @@
                     newConstArray[i].setUConst(leftUnionArray[i].getUConst() / rightUnionArray[i].getUConst());
                 break;
 
-#ifndef GLSLANG_WEB
             case EbtInt8:
                 if (rightUnionArray[i] == (signed char)0)
                     newConstArray[i].setI8Const((signed char)0x7F);
@@ -227,7 +226,6 @@
                 break;
             default:
                 return nullptr;
-#endif
             }
         }
         break;
@@ -266,7 +264,6 @@
                         newConstArray[i].setIConst(0);
                         break;
                     } else goto modulo_default;
-#ifndef GLSLANG_WEB
                 case EbtInt64:
                     if (rightUnionArray[i].getI64Const() == -1 && leftUnionArray[i].getI64Const() == LLONG_MIN) {
                         newConstArray[i].setI64Const(0);
@@ -277,7 +274,6 @@
                         newConstArray[i].setIConst(0);
                         break;
                     } else goto modulo_default;
-#endif
                 default:
                 modulo_default:
                     newConstArray[i] = leftUnionArray[i] % rightUnionArray[i];
@@ -507,14 +503,12 @@
                                     : -unionArray[i].getIConst());
                            break;
             case EbtUint:  newConstArray[i].setUConst(static_cast<unsigned int>(-static_cast<int>(unionArray[i].getUConst())));  break;
-#ifndef GLSLANG_WEB
             case EbtInt8:  newConstArray[i].setI8Const(-unionArray[i].getI8Const()); break;
             case EbtUint8: newConstArray[i].setU8Const(static_cast<unsigned int>(-static_cast<signed int>(unionArray[i].getU8Const())));  break;
             case EbtInt16: newConstArray[i].setI16Const(-unionArray[i].getI16Const()); break;
             case EbtUint16:newConstArray[i].setU16Const(static_cast<unsigned int>(-static_cast<signed int>(unionArray[i].getU16Const())));  break;
             case EbtInt64: newConstArray[i].setI64Const(-unionArray[i].getI64Const()); break;
             case EbtUint64: newConstArray[i].setU64Const(static_cast<unsigned long long>(-static_cast<long long>(unionArray[i].getU64Const())));  break;
-#endif
             default:
                 return nullptr;
             }
@@ -634,12 +628,12 @@
 
         case EOpIsNan:
         {
-            newConstArray[i].setBConst(IsNan(unionArray[i].getDConst()));
+            newConstArray[i].setBConst(std::isnan(unionArray[i].getDConst()));
             break;
         }
         case EOpIsInf:
         {
-            newConstArray[i].setBConst(IsInfinity(unionArray[i].getDConst()));
+            newConstArray[i].setBConst(std::isinf(unionArray[i].getDConst()));
             break;
         }
 
@@ -684,7 +678,6 @@
         case EOpConvDoubleToInt:
             newConstArray[i].setIConst(static_cast<int>(unionArray[i].getDConst())); break;
 
-#ifndef GLSLANG_WEB
         case EOpConvInt8ToBool:
             newConstArray[i].setBConst(unionArray[i].getI8Const() != 0); break;
         case EOpConvUint8ToBool:
@@ -696,7 +689,7 @@
         case EOpConvInt64ToBool:
             newConstArray[i].setBConst(unionArray[i].getI64Const() != 0); break;
         case EOpConvUint64ToBool:
-            newConstArray[i].setBConst(unionArray[i].getI64Const() != 0); break;
+            newConstArray[i].setBConst(unionArray[i].getU64Const() != 0); break;
         case EOpConvFloat16ToBool:
             newConstArray[i].setBConst(unionArray[i].getDConst() != 0); break;
 
@@ -919,7 +912,6 @@
         case EOpConvUint64ToPtr:
         case EOpConstructReference:
             newConstArray[i].setU64Const(unionArray[i].getU64Const()); break;
-#endif
 
         // TODO: 3.0 Functionality: unary constant folding: the rest of the ops have to be fleshed out
 
@@ -1066,7 +1058,6 @@
                 case EbtUint:
                     newConstArray[comp].setUConst(std::min(childConstUnions[0][arg0comp].getUConst(), childConstUnions[1][arg1comp].getUConst()));
                     break;
-#ifndef GLSLANG_WEB
                 case EbtInt8:
                     newConstArray[comp].setI8Const(std::min(childConstUnions[0][arg0comp].getI8Const(), childConstUnions[1][arg1comp].getI8Const()));
                     break;
@@ -1085,7 +1076,6 @@
                 case EbtUint64:
                     newConstArray[comp].setU64Const(std::min(childConstUnions[0][arg0comp].getU64Const(), childConstUnions[1][arg1comp].getU64Const()));
                     break;
-#endif
                 default: assert(false && "Default missing");
                 }
                 break;
@@ -1102,7 +1092,6 @@
                 case EbtUint:
                     newConstArray[comp].setUConst(std::max(childConstUnions[0][arg0comp].getUConst(), childConstUnions[1][arg1comp].getUConst()));
                     break;
-#ifndef GLSLANG_WEB
                 case EbtInt8:
                     newConstArray[comp].setI8Const(std::max(childConstUnions[0][arg0comp].getI8Const(), childConstUnions[1][arg1comp].getI8Const()));
                     break;
@@ -1121,7 +1110,6 @@
                 case EbtUint64:
                     newConstArray[comp].setU64Const(std::max(childConstUnions[0][arg0comp].getU64Const(), childConstUnions[1][arg1comp].getU64Const()));
                     break;
-#endif
                 default: assert(false && "Default missing");
                 }
                 break;
@@ -1137,7 +1125,6 @@
                     newConstArray[comp].setUConst(std::min(std::max(childConstUnions[0][arg0comp].getUConst(), childConstUnions[1][arg1comp].getUConst()),
                                                                                                                    childConstUnions[2][arg2comp].getUConst()));
                     break;
-#ifndef GLSLANG_WEB
                 case EbtInt8:
                     newConstArray[comp].setI8Const(std::min(std::max(childConstUnions[0][arg0comp].getI8Const(), childConstUnions[1][arg1comp].getI8Const()),
                                                                                                                    childConstUnions[2][arg2comp].getI8Const()));
@@ -1166,7 +1153,6 @@
                     newConstArray[comp].setU64Const(std::min(std::max(childConstUnions[0][arg0comp].getU64Const(), childConstUnions[1][arg1comp].getU64Const()),
                                                                                                                        childConstUnions[2][arg2comp].getU64Const()));
                     break;
-#endif
                 default: assert(false && "Default missing");
                 }
                 break;
diff --git a/glslang/MachineIndependent/Initialize.cpp b/glslang/MachineIndependent/Initialize.cpp
index 39f42b6..8ae4346 100755
--- a/glslang/MachineIndependent/Initialize.cpp
+++ b/glslang/MachineIndependent/Initialize.cpp
@@ -2,7 +2,7 @@
 // Copyright (C) 2002-2005  3Dlabs Inc. Ltd.
 // Copyright (C) 2012-2016 LunarG, Inc.
 // Copyright (C) 2015-2020 Google, Inc.
-// Copyright (C) 2017 ARM Limited.
+// Copyright (C) 2017, 2022-2024 Arm Limited.
 // Modifications Copyright (C) 2020-2021 Advanced Micro Devices, Inc. All rights reserved.
 //
 // All rights reserved.
@@ -51,8 +51,9 @@
 //                                                including identifying what extensions are needed if a version does not allow a symbol
 //
 
-#include "../Include/intermediate.h"
+#include <array>
 #include "Initialize.h"
+#include "span.h"
 
 namespace glslang {
 
@@ -61,10 +62,6 @@
 
 const bool ForwardCompatibility = false;
 
-// change this back to false if depending on textual spellings of texturing calls when consuming the AST
-// Using PureOperatorBuiltins=false is deprecated.
-bool PureOperatorBuiltins = true;
-
 namespace {
 
 //
@@ -144,25 +141,17 @@
 EProfile EDesktopProfile = static_cast<EProfile>(ENoProfile | ECoreProfile | ECompatibilityProfile);
 
 // Declare pointers to put into the table for versioning.
-#ifdef GLSLANG_WEB
-    const Versioning* Es300Desktop130 = nullptr;
-    const Versioning* Es310Desktop420 = nullptr;
-#else
-    const Versioning Es300Desktop130Version[] = { { EEsProfile,      0, 300, 0, nullptr },
-                                                  { EDesktopProfile, 0, 130, 0, nullptr },
-                                                  { EBadProfile } };
-    const Versioning* Es300Desktop130 = &Es300Desktop130Version[0];
+    const std::array Es300Desktop130Version = { Versioning{ EEsProfile,      0, 300, 0, nullptr },
+                                                Versioning{ EDesktopProfile, 0, 130, 0, nullptr },
+                                              };
 
-    const Versioning Es310Desktop420Version[] = { { EEsProfile,      0, 310, 0, nullptr },
-                                                  { EDesktopProfile, 0, 420, 0, nullptr },
-                                                  { EBadProfile } };
-    const Versioning* Es310Desktop420 = &Es310Desktop420Version[0];
+    const std::array Es310Desktop400Version = { Versioning{ EEsProfile,      0, 310, 0, nullptr },
+                                                Versioning{ EDesktopProfile, 0, 400, 0, nullptr },
+                                              };
 
-    const Versioning Es310Desktop450Version[] = { { EEsProfile,      0, 310, 0, nullptr },
-                                                  { EDesktopProfile, 0, 450, 0, nullptr },
-                                                  { EBadProfile } };
-    const Versioning* Es310Desktop450 = &Es310Desktop450Version[0];
-#endif
+    const std::array Es310Desktop450Version = { Versioning{ EEsProfile,      0, 310, 0, nullptr },
+                                                Versioning{ EDesktopProfile, 0, 450, 0, nullptr },
+                                              };
 
 // The main descriptor of what a set of function prototypes can look like, and
 // a pointer to extra versioning information, when needed.
@@ -172,7 +161,7 @@
     int numArguments;             // number of arguments (overloads with varying arguments need different entries)
     ArgType types;                // ArgType mask
     ArgClass classes;             // the ways this particular function entry manifests
-    const Versioning* versioning; // nullptr means always a valid version
+    const span<const Versioning> versioning; // An empty span means always a valid version
 };
 
 // The tables can have the same built-in function name more than one time,
@@ -184,153 +173,146 @@
 //
 // Table is terminated by an OpNull TOperator.
 
-const BuiltInFunction BaseFunctions[] = {
+const std::array BaseFunctions = {
 //    TOperator,           name,       arg-count,   ArgType,   ArgClass,     versioning
 //    ---------            ----        ---------    -------    --------      ----------
-    { EOpRadians,          "radians",          1,   TypeF,     ClassRegular, nullptr },
-    { EOpDegrees,          "degrees",          1,   TypeF,     ClassRegular, nullptr },
-    { EOpSin,              "sin",              1,   TypeF,     ClassRegular, nullptr },
-    { EOpCos,              "cos",              1,   TypeF,     ClassRegular, nullptr },
-    { EOpTan,              "tan",              1,   TypeF,     ClassRegular, nullptr },
-    { EOpAsin,             "asin",             1,   TypeF,     ClassRegular, nullptr },
-    { EOpAcos,             "acos",             1,   TypeF,     ClassRegular, nullptr },
-    { EOpAtan,             "atan",             2,   TypeF,     ClassRegular, nullptr },
-    { EOpAtan,             "atan",             1,   TypeF,     ClassRegular, nullptr },
-    { EOpPow,              "pow",              2,   TypeF,     ClassRegular, nullptr },
-    { EOpExp,              "exp",              1,   TypeF,     ClassRegular, nullptr },
-    { EOpLog,              "log",              1,   TypeF,     ClassRegular, nullptr },
-    { EOpExp2,             "exp2",             1,   TypeF,     ClassRegular, nullptr },
-    { EOpLog2,             "log2",             1,   TypeF,     ClassRegular, nullptr },
-    { EOpSqrt,             "sqrt",             1,   TypeF,     ClassRegular, nullptr },
-    { EOpInverseSqrt,      "inversesqrt",      1,   TypeF,     ClassRegular, nullptr },
-    { EOpAbs,              "abs",              1,   TypeF,     ClassRegular, nullptr },
-    { EOpSign,             "sign",             1,   TypeF,     ClassRegular, nullptr },
-    { EOpFloor,            "floor",            1,   TypeF,     ClassRegular, nullptr },
-    { EOpCeil,             "ceil",             1,   TypeF,     ClassRegular, nullptr },
-    { EOpFract,            "fract",            1,   TypeF,     ClassRegular, nullptr },
-    { EOpMod,              "mod",              2,   TypeF,     ClassLS,      nullptr },
-    { EOpMin,              "min",              2,   TypeF,     ClassLS,      nullptr },
-    { EOpMax,              "max",              2,   TypeF,     ClassLS,      nullptr },
-    { EOpClamp,            "clamp",            3,   TypeF,     ClassLS2,     nullptr },
-    { EOpMix,              "mix",              3,   TypeF,     ClassLS,      nullptr },
-    { EOpStep,             "step",             2,   TypeF,     ClassFS,      nullptr },
-    { EOpSmoothStep,       "smoothstep",       3,   TypeF,     ClassFS2,     nullptr },
-    { EOpNormalize,        "normalize",        1,   TypeF,     ClassRegular, nullptr },
-    { EOpFaceForward,      "faceforward",      3,   TypeF,     ClassRegular, nullptr },
-    { EOpReflect,          "reflect",          2,   TypeF,     ClassRegular, nullptr },
-    { EOpRefract,          "refract",          3,   TypeF,     ClassXLS,     nullptr },
-    { EOpLength,           "length",           1,   TypeF,     ClassRS,      nullptr },
-    { EOpDistance,         "distance",         2,   TypeF,     ClassRS,      nullptr },
-    { EOpDot,              "dot",              2,   TypeF,     ClassRS,      nullptr },
-    { EOpCross,            "cross",            2,   TypeF,     ClassV3,      nullptr },
-    { EOpLessThan,         "lessThan",         2,   TypeFI,    ClassBNS,     nullptr },
-    { EOpLessThanEqual,    "lessThanEqual",    2,   TypeFI,    ClassBNS,     nullptr },
-    { EOpGreaterThan,      "greaterThan",      2,   TypeFI,    ClassBNS,     nullptr },
-    { EOpGreaterThanEqual, "greaterThanEqual", 2,   TypeFI,    ClassBNS,     nullptr },
-    { EOpVectorEqual,      "equal",            2,   TypeFIB,   ClassBNS,     nullptr },
-    { EOpVectorNotEqual,   "notEqual",         2,   TypeFIB,   ClassBNS,     nullptr },
-    { EOpAny,              "any",              1,   TypeB,     ClassRSNS,    nullptr },
-    { EOpAll,              "all",              1,   TypeB,     ClassRSNS,    nullptr },
-    { EOpVectorLogicalNot, "not",              1,   TypeB,     ClassNS,      nullptr },
-    { EOpSinh,             "sinh",             1,   TypeF,     ClassRegular, Es300Desktop130 },
-    { EOpCosh,             "cosh",             1,   TypeF,     ClassRegular, Es300Desktop130 },
-    { EOpTanh,             "tanh",             1,   TypeF,     ClassRegular, Es300Desktop130 },
-    { EOpAsinh,            "asinh",            1,   TypeF,     ClassRegular, Es300Desktop130 },
-    { EOpAcosh,            "acosh",            1,   TypeF,     ClassRegular, Es300Desktop130 },
-    { EOpAtanh,            "atanh",            1,   TypeF,     ClassRegular, Es300Desktop130 },
-    { EOpAbs,              "abs",              1,   TypeI,     ClassRegular, Es300Desktop130 },
-    { EOpSign,             "sign",             1,   TypeI,     ClassRegular, Es300Desktop130 },
-    { EOpTrunc,            "trunc",            1,   TypeF,     ClassRegular, Es300Desktop130 },
-    { EOpRound,            "round",            1,   TypeF,     ClassRegular, Es300Desktop130 },
-    { EOpRoundEven,        "roundEven",        1,   TypeF,     ClassRegular, Es300Desktop130 },
-    { EOpModf,             "modf",             2,   TypeF,     ClassLO,      Es300Desktop130 },
-    { EOpMin,              "min",              2,   TypeIU,    ClassLS,      Es300Desktop130 },
-    { EOpMax,              "max",              2,   TypeIU,    ClassLS,      Es300Desktop130 },
-    { EOpClamp,            "clamp",            3,   TypeIU,    ClassLS2,     Es300Desktop130 },
-    { EOpMix,              "mix",              3,   TypeF,     ClassLB,      Es300Desktop130 },
-    { EOpIsInf,            "isinf",            1,   TypeF,     ClassB,       Es300Desktop130 },
-    { EOpIsNan,            "isnan",            1,   TypeF,     ClassB,       Es300Desktop130 },
-    { EOpLessThan,         "lessThan",         2,   TypeU,     ClassBNS,     Es300Desktop130 },
-    { EOpLessThanEqual,    "lessThanEqual",    2,   TypeU,     ClassBNS,     Es300Desktop130 },
-    { EOpGreaterThan,      "greaterThan",      2,   TypeU,     ClassBNS,     Es300Desktop130 },
-    { EOpGreaterThanEqual, "greaterThanEqual", 2,   TypeU,     ClassBNS,     Es300Desktop130 },
-    { EOpVectorEqual,      "equal",            2,   TypeU,     ClassBNS,     Es300Desktop130 },
-    { EOpVectorNotEqual,   "notEqual",         2,   TypeU,     ClassBNS,     Es300Desktop130 },
-    { EOpAtomicAdd,        "atomicAdd",        2,   TypeIU,    ClassV1FIOCV, Es310Desktop420 },
-    { EOpAtomicMin,        "atomicMin",        2,   TypeIU,    ClassV1FIOCV, Es310Desktop420 },
-    { EOpAtomicMax,        "atomicMax",        2,   TypeIU,    ClassV1FIOCV, Es310Desktop420 },
-    { EOpAtomicAnd,        "atomicAnd",        2,   TypeIU,    ClassV1FIOCV, Es310Desktop420 },
-    { EOpAtomicOr,         "atomicOr",         2,   TypeIU,    ClassV1FIOCV, Es310Desktop420 },
-    { EOpAtomicXor,        "atomicXor",        2,   TypeIU,    ClassV1FIOCV, Es310Desktop420 },
-    { EOpAtomicExchange,   "atomicExchange",   2,   TypeIU,    ClassV1FIOCV, Es310Desktop420 },
-    { EOpAtomicCompSwap,   "atomicCompSwap",   3,   TypeIU,    ClassV1FIOCV, Es310Desktop420 },
-#ifndef GLSLANG_WEB
-    { EOpMix,              "mix",              3,   TypeB,     ClassRegular, Es310Desktop450 },
-    { EOpMix,              "mix",              3,   TypeIU,    ClassLB,      Es310Desktop450 },
-#endif
-
-    { EOpNull }
+    BuiltInFunction{ EOpRadians,          "radians",          1,   TypeF,     ClassRegular, {} },
+    BuiltInFunction{ EOpDegrees,          "degrees",          1,   TypeF,     ClassRegular, {} },
+    BuiltInFunction{ EOpSin,              "sin",              1,   TypeF,     ClassRegular, {} },
+    BuiltInFunction{ EOpCos,              "cos",              1,   TypeF,     ClassRegular, {} },
+    BuiltInFunction{ EOpTan,              "tan",              1,   TypeF,     ClassRegular, {} },
+    BuiltInFunction{ EOpAsin,             "asin",             1,   TypeF,     ClassRegular, {} },
+    BuiltInFunction{ EOpAcos,             "acos",             1,   TypeF,     ClassRegular, {} },
+    BuiltInFunction{ EOpAtan,             "atan",             2,   TypeF,     ClassRegular, {} },
+    BuiltInFunction{ EOpAtan,             "atan",             1,   TypeF,     ClassRegular, {} },
+    BuiltInFunction{ EOpPow,              "pow",              2,   TypeF,     ClassRegular, {} },
+    BuiltInFunction{ EOpExp,              "exp",              1,   TypeF,     ClassRegular, {} },
+    BuiltInFunction{ EOpLog,              "log",              1,   TypeF,     ClassRegular, {} },
+    BuiltInFunction{ EOpExp2,             "exp2",             1,   TypeF,     ClassRegular, {} },
+    BuiltInFunction{ EOpLog2,             "log2",             1,   TypeF,     ClassRegular, {} },
+    BuiltInFunction{ EOpSqrt,             "sqrt",             1,   TypeF,     ClassRegular, {} },
+    BuiltInFunction{ EOpInverseSqrt,      "inversesqrt",      1,   TypeF,     ClassRegular, {} },
+    BuiltInFunction{ EOpAbs,              "abs",              1,   TypeF,     ClassRegular, {} },
+    BuiltInFunction{ EOpSign,             "sign",             1,   TypeF,     ClassRegular, {} },
+    BuiltInFunction{ EOpFloor,            "floor",            1,   TypeF,     ClassRegular, {} },
+    BuiltInFunction{ EOpCeil,             "ceil",             1,   TypeF,     ClassRegular, {} },
+    BuiltInFunction{ EOpFract,            "fract",            1,   TypeF,     ClassRegular, {} },
+    BuiltInFunction{ EOpMod,              "mod",              2,   TypeF,     ClassLS,      {} },
+    BuiltInFunction{ EOpMin,              "min",              2,   TypeF,     ClassLS,      {} },
+    BuiltInFunction{ EOpMax,              "max",              2,   TypeF,     ClassLS,      {} },
+    BuiltInFunction{ EOpClamp,            "clamp",            3,   TypeF,     ClassLS2,     {} },
+    BuiltInFunction{ EOpMix,              "mix",              3,   TypeF,     ClassLS,      {} },
+    BuiltInFunction{ EOpStep,             "step",             2,   TypeF,     ClassFS,      {} },
+    BuiltInFunction{ EOpSmoothStep,       "smoothstep",       3,   TypeF,     ClassFS2,     {} },
+    BuiltInFunction{ EOpNormalize,        "normalize",        1,   TypeF,     ClassRegular, {} },
+    BuiltInFunction{ EOpFaceForward,      "faceforward",      3,   TypeF,     ClassRegular, {} },
+    BuiltInFunction{ EOpReflect,          "reflect",          2,   TypeF,     ClassRegular, {} },
+    BuiltInFunction{ EOpRefract,          "refract",          3,   TypeF,     ClassXLS,     {} },
+    BuiltInFunction{ EOpLength,           "length",           1,   TypeF,     ClassRS,      {} },
+    BuiltInFunction{ EOpDistance,         "distance",         2,   TypeF,     ClassRS,      {} },
+    BuiltInFunction{ EOpDot,              "dot",              2,   TypeF,     ClassRS,      {} },
+    BuiltInFunction{ EOpCross,            "cross",            2,   TypeF,     ClassV3,      {} },
+    BuiltInFunction{ EOpLessThan,         "lessThan",         2,   TypeFI,    ClassBNS,     {} },
+    BuiltInFunction{ EOpLessThanEqual,    "lessThanEqual",    2,   TypeFI,    ClassBNS,     {} },
+    BuiltInFunction{ EOpGreaterThan,      "greaterThan",      2,   TypeFI,    ClassBNS,     {} },
+    BuiltInFunction{ EOpGreaterThanEqual, "greaterThanEqual", 2,   TypeFI,    ClassBNS,     {} },
+    BuiltInFunction{ EOpVectorEqual,      "equal",            2,   TypeFIB,   ClassBNS,     {} },
+    BuiltInFunction{ EOpVectorNotEqual,   "notEqual",         2,   TypeFIB,   ClassBNS,     {} },
+    BuiltInFunction{ EOpAny,              "any",              1,   TypeB,     ClassRSNS,    {} },
+    BuiltInFunction{ EOpAll,              "all",              1,   TypeB,     ClassRSNS,    {} },
+    BuiltInFunction{ EOpVectorLogicalNot, "not",              1,   TypeB,     ClassNS,      {} },
+    BuiltInFunction{ EOpSinh,             "sinh",             1,   TypeF,     ClassRegular, {Es300Desktop130Version} },
+    BuiltInFunction{ EOpCosh,             "cosh",             1,   TypeF,     ClassRegular, {Es300Desktop130Version} },
+    BuiltInFunction{ EOpTanh,             "tanh",             1,   TypeF,     ClassRegular, {Es300Desktop130Version} },
+    BuiltInFunction{ EOpAsinh,            "asinh",            1,   TypeF,     ClassRegular, {Es300Desktop130Version} },
+    BuiltInFunction{ EOpAcosh,            "acosh",            1,   TypeF,     ClassRegular, {Es300Desktop130Version} },
+    BuiltInFunction{ EOpAtanh,            "atanh",            1,   TypeF,     ClassRegular, {Es300Desktop130Version} },
+    BuiltInFunction{ EOpAbs,              "abs",              1,   TypeI,     ClassRegular, {Es300Desktop130Version} },
+    BuiltInFunction{ EOpSign,             "sign",             1,   TypeI,     ClassRegular, {Es300Desktop130Version} },
+    BuiltInFunction{ EOpTrunc,            "trunc",            1,   TypeF,     ClassRegular, {Es300Desktop130Version} },
+    BuiltInFunction{ EOpRound,            "round",            1,   TypeF,     ClassRegular, {Es300Desktop130Version} },
+    BuiltInFunction{ EOpRoundEven,        "roundEven",        1,   TypeF,     ClassRegular, {Es300Desktop130Version} },
+    BuiltInFunction{ EOpModf,             "modf",             2,   TypeF,     ClassLO,      {Es300Desktop130Version} },
+    BuiltInFunction{ EOpMin,              "min",              2,   TypeIU,    ClassLS,      {Es300Desktop130Version} },
+    BuiltInFunction{ EOpMax,              "max",              2,   TypeIU,    ClassLS,      {Es300Desktop130Version} },
+    BuiltInFunction{ EOpClamp,            "clamp",            3,   TypeIU,    ClassLS2,     {Es300Desktop130Version} },
+    BuiltInFunction{ EOpMix,              "mix",              3,   TypeF,     ClassLB,      {Es300Desktop130Version} },
+    BuiltInFunction{ EOpIsInf,            "isinf",            1,   TypeF,     ClassB,       {Es300Desktop130Version} },
+    BuiltInFunction{ EOpIsNan,            "isnan",            1,   TypeF,     ClassB,       {Es300Desktop130Version} },
+    BuiltInFunction{ EOpLessThan,         "lessThan",         2,   TypeU,     ClassBNS,     {Es300Desktop130Version} },
+    BuiltInFunction{ EOpLessThanEqual,    "lessThanEqual",    2,   TypeU,     ClassBNS,     {Es300Desktop130Version} },
+    BuiltInFunction{ EOpGreaterThan,      "greaterThan",      2,   TypeU,     ClassBNS,     {Es300Desktop130Version} },
+    BuiltInFunction{ EOpGreaterThanEqual, "greaterThanEqual", 2,   TypeU,     ClassBNS,     {Es300Desktop130Version} },
+    BuiltInFunction{ EOpVectorEqual,      "equal",            2,   TypeU,     ClassBNS,     {Es300Desktop130Version} },
+    BuiltInFunction{ EOpVectorNotEqual,   "notEqual",         2,   TypeU,     ClassBNS,     {Es300Desktop130Version} },
+    BuiltInFunction{ EOpAtomicAdd,        "atomicAdd",        2,   TypeIU,    ClassV1FIOCV, {Es310Desktop400Version} },
+    BuiltInFunction{ EOpAtomicMin,        "atomicMin",        2,   TypeIU,    ClassV1FIOCV, {Es310Desktop400Version} },
+    BuiltInFunction{ EOpAtomicMax,        "atomicMax",        2,   TypeIU,    ClassV1FIOCV, {Es310Desktop400Version} },
+    BuiltInFunction{ EOpAtomicAnd,        "atomicAnd",        2,   TypeIU,    ClassV1FIOCV, {Es310Desktop400Version} },
+    BuiltInFunction{ EOpAtomicOr,         "atomicOr",         2,   TypeIU,    ClassV1FIOCV, {Es310Desktop400Version} },
+    BuiltInFunction{ EOpAtomicXor,        "atomicXor",        2,   TypeIU,    ClassV1FIOCV, {Es310Desktop400Version} },
+    BuiltInFunction{ EOpAtomicExchange,   "atomicExchange",   2,   TypeIU,    ClassV1FIOCV, {Es310Desktop400Version} },
+    BuiltInFunction{ EOpAtomicCompSwap,   "atomicCompSwap",   3,   TypeIU,    ClassV1FIOCV, {Es310Desktop400Version} },
+    BuiltInFunction{ EOpMix,              "mix",              3,   TypeB,     ClassRegular, {Es310Desktop450Version} },
+    BuiltInFunction{ EOpMix,              "mix",              3,   TypeIU,    ClassLB,      {Es310Desktop450Version} },
 };
 
-const BuiltInFunction DerivativeFunctions[] = {
-    { EOpDPdx,             "dFdx",             1,   TypeF,     ClassRegular, nullptr },
-    { EOpDPdy,             "dFdy",             1,   TypeF,     ClassRegular, nullptr },
-    { EOpFwidth,           "fwidth",           1,   TypeF,     ClassRegular, nullptr },
-    { EOpNull }
+const std::array DerivativeFunctions = {
+    BuiltInFunction{ EOpDPdx,             "dFdx",             1,   TypeF,     ClassRegular, {} },
+    BuiltInFunction{ EOpDPdy,             "dFdy",             1,   TypeF,     ClassRegular, {} },
+    BuiltInFunction{ EOpFwidth,           "fwidth",           1,   TypeF,     ClassRegular, {} },
 };
 
 // For functions declared some other way, but still use the table to relate to operator.
 struct CustomFunction {
     TOperator op;                 // operator to map the name to
     const char* name;             // function name
-    const Versioning* versioning; // nullptr means always a valid version
+    const span<const Versioning> versioning; // An empty span means always a valid version
 };
 
 const CustomFunction CustomFunctions[] = {
-    { EOpBarrier,             "barrier",             nullptr },
-    { EOpMemoryBarrierShared, "memoryBarrierShared", nullptr },
-    { EOpGroupMemoryBarrier,  "groupMemoryBarrier",  nullptr },
-    { EOpMemoryBarrier,       "memoryBarrier",       nullptr },
-    { EOpMemoryBarrierBuffer, "memoryBarrierBuffer", nullptr },
+    { EOpBarrier,             "barrier",             {} },
+    { EOpMemoryBarrierShared, "memoryBarrierShared", {} },
+    { EOpGroupMemoryBarrier,  "groupMemoryBarrier",  {} },
+    { EOpMemoryBarrier,       "memoryBarrier",       {} },
+    { EOpMemoryBarrierBuffer, "memoryBarrierBuffer", {} },
 
-    { EOpPackSnorm2x16,       "packSnorm2x16",       nullptr },
-    { EOpUnpackSnorm2x16,     "unpackSnorm2x16",     nullptr },
-    { EOpPackUnorm2x16,       "packUnorm2x16",       nullptr },
-    { EOpUnpackUnorm2x16,     "unpackUnorm2x16",     nullptr },
-    { EOpPackHalf2x16,        "packHalf2x16",        nullptr },
-    { EOpUnpackHalf2x16,      "unpackHalf2x16",      nullptr },
+    { EOpPackSnorm2x16,       "packSnorm2x16",       {} },
+    { EOpUnpackSnorm2x16,     "unpackSnorm2x16",     {} },
+    { EOpPackUnorm2x16,       "packUnorm2x16",       {} },
+    { EOpUnpackUnorm2x16,     "unpackUnorm2x16",     {} },
+    { EOpPackHalf2x16,        "packHalf2x16",        {} },
+    { EOpUnpackHalf2x16,      "unpackHalf2x16",      {} },
 
-    { EOpMul,                 "matrixCompMult",      nullptr },
-    { EOpOuterProduct,        "outerProduct",        nullptr },
-    { EOpTranspose,           "transpose",           nullptr },
-    { EOpDeterminant,         "determinant",         nullptr },
-    { EOpMatrixInverse,       "inverse",             nullptr },
-    { EOpFloatBitsToInt,      "floatBitsToInt",      nullptr },
-    { EOpFloatBitsToUint,     "floatBitsToUint",     nullptr },
-    { EOpIntBitsToFloat,      "intBitsToFloat",      nullptr },
-    { EOpUintBitsToFloat,     "uintBitsToFloat",     nullptr },
+    { EOpMul,                 "matrixCompMult",      {} },
+    { EOpOuterProduct,        "outerProduct",        {} },
+    { EOpTranspose,           "transpose",           {} },
+    { EOpDeterminant,         "determinant",         {} },
+    { EOpMatrixInverse,       "inverse",             {} },
+    { EOpFloatBitsToInt,      "floatBitsToInt",      {} },
+    { EOpFloatBitsToUint,     "floatBitsToUint",     {} },
+    { EOpIntBitsToFloat,      "intBitsToFloat",      {} },
+    { EOpUintBitsToFloat,     "uintBitsToFloat",     {} },
 
-    { EOpTextureQuerySize,      "textureSize",           nullptr },
-    { EOpTextureQueryLod,       "textureQueryLod",       nullptr },
-    { EOpTextureQueryLod,       "textureQueryLOD",       nullptr }, // extension GL_ARB_texture_query_lod
-    { EOpTextureQueryLevels,    "textureQueryLevels",    nullptr },
-    { EOpTextureQuerySamples,   "textureSamples",        nullptr },
-    { EOpTexture,               "texture",               nullptr },
-    { EOpTextureProj,           "textureProj",           nullptr },
-    { EOpTextureLod,            "textureLod",            nullptr },
-    { EOpTextureOffset,         "textureOffset",         nullptr },
-    { EOpTextureFetch,          "texelFetch",            nullptr },
-    { EOpTextureFetchOffset,    "texelFetchOffset",      nullptr },
-    { EOpTextureProjOffset,     "textureProjOffset",     nullptr },
-    { EOpTextureLodOffset,      "textureLodOffset",      nullptr },
-    { EOpTextureProjLod,        "textureProjLod",        nullptr },
-    { EOpTextureProjLodOffset,  "textureProjLodOffset",  nullptr },
-    { EOpTextureGrad,           "textureGrad",           nullptr },
-    { EOpTextureGradOffset,     "textureGradOffset",     nullptr },
-    { EOpTextureProjGrad,       "textureProjGrad",       nullptr },
-    { EOpTextureProjGradOffset, "textureProjGradOffset", nullptr },
-
-    { EOpNull }
+    { EOpTextureQuerySize,      "textureSize",           {} },
+    { EOpTextureQueryLod,       "textureQueryLod",       {} },
+    { EOpTextureQueryLod,       "textureQueryLOD",       {} }, // extension GL_ARB_texture_query_lod
+    { EOpTextureQueryLevels,    "textureQueryLevels",    {} },
+    { EOpTextureQuerySamples,   "textureSamples",        {} },
+    { EOpTexture,               "texture",               {} },
+    { EOpTextureProj,           "textureProj",           {} },
+    { EOpTextureLod,            "textureLod",            {} },
+    { EOpTextureOffset,         "textureOffset",         {} },
+    { EOpTextureFetch,          "texelFetch",            {} },
+    { EOpTextureFetchOffset,    "texelFetchOffset",      {} },
+    { EOpTextureProjOffset,     "textureProjOffset",     {} },
+    { EOpTextureLodOffset,      "textureLodOffset",      {} },
+    { EOpTextureProjLod,        "textureProjLod",        {} },
+    { EOpTextureProjLodOffset,  "textureProjLodOffset",  {} },
+    { EOpTextureGrad,           "textureGrad",           {} },
+    { EOpTextureGradOffset,     "textureGradOffset",     {} },
+    { EOpTextureProjGrad,       "textureProjGrad",       {} },
+    { EOpTextureProjGradOffset, "textureProjGradOffset", {} },
 };
 
 // For the given table of functions, add all the indicated prototypes for each
@@ -386,10 +368,8 @@
                 if (arg == function.numArguments - 1 && (function.classes & ClassLO))
                     decls.append("out ");
                 if (arg == 0) {
-#ifndef GLSLANG_WEB
                     if (function.classes & ClassCV)
                         decls.append("coherent volatile ");
-#endif
                     if (function.classes & ClassFIO)
                         decls.append("inout ");
                     if (function.classes & ClassFO)
@@ -416,19 +396,14 @@
 // 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)
-    // all entries in table are valid
-    return true;
-#endif
-
     // nullptr means always valid
-    if (function.versioning == nullptr)
+    if (function.versioning.empty())
         return true;
 
     // check for what is said about our current profile
-    for (const Versioning* v = function.versioning; v->profiles != EBadProfile; ++v) {
-        if ((v->profiles & profile) != 0) {
-            if (v->minCoreVersion <= version || (v->numExtensions > 0 && v->minExtendedVersion <= version))
+    for (const auto& v : function.versioning) {
+        if ((v.profiles & profile) != 0) {
+            if (v.minCoreVersion <= version || (v.numExtensions > 0 && v.minExtendedVersion <= version))
                 return true;
         }
     }
@@ -441,12 +416,11 @@
 // called once per stage). This is a performance issue only, not a correctness
 // concern.  It is done for quality arising from simplicity, as there are subtleties
 // to get correct if instead trying to do it surgically.
-template<class FunctionT>
-void RelateTabledBuiltins(const FunctionT* functions, TSymbolTable& symbolTable)
+template<class FunctionContainer>
+void RelateTabledBuiltins(const FunctionContainer& functions, TSymbolTable& symbolTable)
 {
-    while (functions->op != EOpNull) {
-        symbolTable.relateToOperator(functions->name, functions->op);
-        ++functions;
+    for (const auto& fn : functions) {
+        symbolTable.relateToOperator(fn.name, fn.op);
     }
 }
 
@@ -455,11 +429,10 @@
 // Add declarations for all tables of built-in functions.
 void TBuiltIns::addTabledBuiltins(int version, EProfile profile, const SpvVersion& spvVersion)
 {
-    const auto forEachFunction = [&](TString& decls, const BuiltInFunction* function) {
-        while (function->op != EOpNull) {
-            if (ValidVersion(*function, version, profile, spvVersion))
-                AddTabledBuiltin(decls, *function);
-            ++function;
+    const auto forEachFunction = [&](TString& decls, const span<const BuiltInFunction>& functions) {
+        for (const auto& fn : functions) {
+            if (ValidVersion(fn, version, profile, spvVersion))
+                AddTabledBuiltin(decls, fn);
         }
     };
 
@@ -501,7 +474,6 @@
     prefixes[EbtFloat] =  "";
     prefixes[EbtInt]   = "i";
     prefixes[EbtUint]  = "u";
-#if !defined(GLSLANG_WEB)
     prefixes[EbtFloat16] = "f16";
     prefixes[EbtInt8]  = "i8";
     prefixes[EbtUint8] = "u8";
@@ -509,7 +481,6 @@
     prefixes[EbtUint16] = "u16";
     prefixes[EbtInt64]  = "i64";
     prefixes[EbtUint64] = "u64";
-#endif
 
     postfixes[2] = "2";
     postfixes[3] = "3";
@@ -519,13 +490,11 @@
     dimMap[Esd2D] = 2;
     dimMap[Esd3D] = 3;
     dimMap[EsdCube] = 3;
-#ifndef GLSLANG_WEB
     dimMap[Esd1D] = 1;
     dimMap[EsdRect] = 2;
     dimMap[EsdBuffer] = 1;
     dimMap[EsdSubpass] = 2;  // potentially unused for now
     dimMap[EsdAttachmentEXT] = 2;  // potentially unused for now
-#endif
 }
 
 TBuiltIns::~TBuiltIns()
@@ -543,10 +512,6 @@
 //
 void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvVersion)
 {
-#ifdef GLSLANG_WEB
-    version = 310;
-    profile = EEsProfile;
-#endif
     addTabledBuiltins(version, profile, spvVersion);
 
     //============================================================================
@@ -555,7 +520,6 @@
     //
     //============================================================================
 
-#ifndef GLSLANG_WEB
     //
     // Derivatives Functions.
     //
@@ -1500,7 +1464,6 @@
             "void atomicStore(coherent volatile out double, double, int, int, int);"
             "\n");
     }
-#endif // !GLSLANG_WEB
 
     if ((profile == EEsProfile && version >= 300) ||
         (profile != EEsProfile && version >= 150)) { // GL_ARB_shader_bit_encoding
@@ -1528,7 +1491,6 @@
             "\n");
     }
 
-#ifndef GLSLANG_WEB
     if ((profile != EEsProfile && version >= 400) ||
         (profile == EEsProfile && version >= 310)) {    // GL_OES_gpu_shader5
 
@@ -1606,7 +1568,6 @@
 
             "\n");
     }
-#endif
 
     if ((profile == EEsProfile && version >= 300) ||
         (profile != EEsProfile && version >= 150)) {
@@ -1635,7 +1596,6 @@
             "\n");
     }
 
-#ifndef GLSLANG_WEB
     if ((profile == EEsProfile && version >= 310) ||
         (profile != EEsProfile && version >= 150)) {
         commonBuiltins.append(
@@ -1655,7 +1615,6 @@
                     "vec4 unpackUnorm4x8(highp uint);"
             "\n");
     }
-#endif
 
     //
     // Matrix Functions.
@@ -1714,7 +1673,6 @@
         }
     }
 
-#ifndef GLSLANG_WEB
     //
     // Original-style texture functions existing in all stages.
     // (Per-stage functions below.)
@@ -1760,6 +1718,16 @@
                 "vec4 shadow2DRect(sampler2DRectShadow, vec3);"     // GL_ARB_texture_rectangle, caught by keyword check
                 "vec4 shadow2DRectProj(sampler2DRectShadow, vec4);" // GL_ARB_texture_rectangle, caught by keyword check
 
+                "vec4 texture1DArray(sampler1DArray, vec2);"      // GL_EXT_texture_array
+                "vec4 texture2DArray(sampler2DArray, vec3);"      // GL_EXT_texture_array
+                "vec4 shadow1DArray(sampler1DArrayShadow, vec3);" // GL_EXT_texture_array
+                "vec4 shadow2DArray(sampler2DArrayShadow, vec4);" // GL_EXT_texture_array
+                "vec4 texture1DArray(sampler1DArray, vec2, float);"                // GL_EXT_texture_array
+                "vec4 texture2DArray(sampler2DArray, vec3, float);"                // GL_EXT_texture_array
+                "vec4 shadow1DArray(sampler1DArrayShadow, vec3, float);"           // GL_EXT_texture_array
+                "vec4 texture1DArrayLod(sampler1DArray, vec2, float);"      // GL_EXT_texture_array
+                "vec4 texture2DArrayLod(sampler2DArray, vec3, float);"      // GL_EXT_texture_array
+                "vec4 shadow1DArrayLod(sampler1DArrayShadow, vec3, float);" // GL_EXT_texture_array
                 "\n");
         }
     }
@@ -2131,6 +2099,8 @@
             "%s     subgroupShuffleXor(%s, uint);\n",
             "%s     subgroupShuffleUp(%s, uint delta);\n",
             "%s     subgroupShuffleDown(%s, uint delta);\n",
+            "%s     subgroupRotate(%s, uint);\n",
+            "%s     subgroupClusteredRotate(%s, uint, uint);\n",
             "%s     subgroupAdd(%s);\n",
             "%s     subgroupMul(%s);\n",
             "%s     subgroupMin(%s);\n",
@@ -2259,6 +2229,15 @@
             );
     }
 
+    // GL_EXT_shader_quad_control
+    if ((profile == EEsProfile && version >= 310) ||
+        (profile != EEsProfile && version >= 140)) {
+        commonBuiltins.append(
+            "bool subgroupQuadAll(bool);\n"
+            "bool subgroupQuadAny(bool);\n"
+            );
+    }
+
     if (profile != EEsProfile && version >= 460) {
         commonBuiltins.append(
             "bool anyInvocation(bool);"
@@ -4142,6 +4121,19 @@
             "\n");
     }
 
+    // Builtins for GL_EXT_texture_shadow_lod
+    if ((profile == EEsProfile && version >= 300) || ((profile != EEsProfile && version >= 130))) { 
+        commonBuiltins.append(
+            "float texture(sampler2DArrayShadow, vec4, float);"
+            "float texture(samplerCubeArrayShadow, vec4, float, float);"
+            "float textureLod(sampler2DArrayShadow, vec4, float);"
+            "float textureLod(samplerCubeShadow, vec4, float);"
+            "float textureLod(samplerCubeArrayShadow, vec4, float, float);"
+            "float textureLodOffset(sampler2DArrayShadow, vec4, float, ivec2);"
+            "float textureOffset(sampler2DArrayShadow, vec4 , ivec2, float);"
+            "\n");
+    }
+
     if (profile != EEsProfile && version >= 450) {
         stageBuiltins[EShLangFragment].append(derivativesAndControl64bits);
         stageBuiltins[EShLangFragment].append(
@@ -4164,6 +4156,18 @@
 
     }
 
+    // QCOM_image_processing
+    if ((profile == EEsProfile && version >= 310) ||
+         (profile != EEsProfile && version >= 140)) {
+        commonBuiltins.append(
+           "vec4 textureWeightedQCOM(sampler2D, vec2, sampler2DArray);"
+           "vec4 textureWeightedQCOM(sampler2D, vec2, sampler1DArray);"
+           "vec4 textureBoxFilterQCOM(sampler2D, vec2, vec2);"
+           "vec4 textureBlockMatchSADQCOM(sampler2D, uvec2, sampler2D, uvec2, uvec2);"
+           "vec4 textureBlockMatchSSDQCOM(sampler2D, uvec2, sampler2D, uvec2, uvec2);"
+           "\n");
+    }
+
     //============================================================================
     //
     // Prototypes for built-in functions seen by vertex shaders only.
@@ -4257,7 +4261,6 @@
             "void EndPrimitive();"
             "\n");
     }
-#endif // !GLSLANG_WEB
 
     //============================================================================
     //
@@ -4294,7 +4297,6 @@
             "void groupMemoryBarrier();"
             );
     }
-#ifndef GLSLANG_WEB
     if ((profile != EEsProfile && version >= 420) || esBarrier) {
         if (spvVersion.vulkan == 0 || spvVersion.vulkanRelaxed) {
             commonBuiltins.append("void memoryBarrierAtomicCounter();");
@@ -4397,6 +4399,94 @@
             "icoopmatNV coopMatMulAddNV(icoopmatNV A, icoopmatNV B, icoopmatNV C);\n"
             "ucoopmatNV coopMatMulAddNV(ucoopmatNV A, ucoopmatNV B, ucoopmatNV C);\n"
             );
+
+        std::string cooperativeMatrixFuncs =
+            "void coopMatLoad(out coopmat m, volatile coherent int8_t[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatLoad(out coopmat m, volatile coherent int16_t[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatLoad(out coopmat m, volatile coherent int32_t[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatLoad(out coopmat m, volatile coherent int64_t[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatLoad(out coopmat m, volatile coherent uint8_t[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatLoad(out coopmat m, volatile coherent uint16_t[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatLoad(out coopmat m, volatile coherent uint32_t[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatLoad(out coopmat m, volatile coherent uint64_t[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatLoad(out coopmat m, volatile coherent float16_t[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatLoad(out coopmat m, volatile coherent float[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatLoad(out coopmat m, volatile coherent float64_t[] buf, uint element, uint stride, int matrixLayout);\n"
+
+            "void coopMatLoad(out coopmat m, volatile coherent i8vec2[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatLoad(out coopmat m, volatile coherent i16vec2[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatLoad(out coopmat m, volatile coherent i32vec2[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatLoad(out coopmat m, volatile coherent i64vec2[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatLoad(out coopmat m, volatile coherent u8vec2[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatLoad(out coopmat m, volatile coherent u16vec2[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatLoad(out coopmat m, volatile coherent u32vec2[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatLoad(out coopmat m, volatile coherent u64vec2[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatLoad(out coopmat m, volatile coherent f16vec2[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatLoad(out coopmat m, volatile coherent f32vec2[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatLoad(out coopmat m, volatile coherent f64vec2[] buf, uint element, uint stride, int matrixLayout);\n"
+
+            "void coopMatLoad(out coopmat m, volatile coherent i8vec4[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatLoad(out coopmat m, volatile coherent i16vec4[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatLoad(out coopmat m, volatile coherent i32vec4[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatLoad(out coopmat m, volatile coherent i64vec4[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatLoad(out coopmat m, volatile coherent u8vec4[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatLoad(out coopmat m, volatile coherent u16vec4[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatLoad(out coopmat m, volatile coherent u32vec4[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatLoad(out coopmat m, volatile coherent u64vec4[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatLoad(out coopmat m, volatile coherent f16vec4[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatLoad(out coopmat m, volatile coherent f32vec4[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatLoad(out coopmat m, volatile coherent f64vec4[] buf, uint element, uint stride, int matrixLayout);\n"
+
+            "void coopMatStore(coopmat m, volatile coherent int8_t[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatStore(coopmat m, volatile coherent int16_t[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatStore(coopmat m, volatile coherent int32_t[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatStore(coopmat m, volatile coherent int64_t[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatStore(coopmat m, volatile coherent uint8_t[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatStore(coopmat m, volatile coherent uint16_t[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatStore(coopmat m, volatile coherent uint32_t[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatStore(coopmat m, volatile coherent uint64_t[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatStore(coopmat m, volatile coherent float16_t[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatStore(coopmat m, volatile coherent float[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatStore(coopmat m, volatile coherent float64_t[] buf, uint element, uint stride, int matrixLayout);\n"
+
+            "void coopMatStore(coopmat m, volatile coherent i8vec2[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatStore(coopmat m, volatile coherent i16vec2[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatStore(coopmat m, volatile coherent i32vec2[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatStore(coopmat m, volatile coherent i64vec2[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatStore(coopmat m, volatile coherent u8vec2[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatStore(coopmat m, volatile coherent u16vec2[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatStore(coopmat m, volatile coherent u32vec2[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatStore(coopmat m, volatile coherent u64vec2[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatStore(coopmat m, volatile coherent f16vec2[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatStore(coopmat m, volatile coherent f32vec2[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatStore(coopmat m, volatile coherent f64vec2[] buf, uint element, uint stride, int matrixLayout);\n"
+
+            "void coopMatStore(coopmat m, volatile coherent i8vec4[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatStore(coopmat m, volatile coherent i16vec4[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatStore(coopmat m, volatile coherent i32vec4[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatStore(coopmat m, volatile coherent i64vec4[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatStore(coopmat m, volatile coherent u8vec4[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatStore(coopmat m, volatile coherent u16vec4[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatStore(coopmat m, volatile coherent u32vec4[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatStore(coopmat m, volatile coherent u64vec4[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatStore(coopmat m, volatile coherent f16vec4[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatStore(coopmat m, volatile coherent f32vec4[] buf, uint element, uint stride, int matrixLayout);\n"
+            "void coopMatStore(coopmat m, volatile coherent f64vec4[] buf, uint element, uint stride, int matrixLayout);\n"
+
+            "coopmat coopMatMulAdd(coopmat A, coopmat B, coopmat C);\n"
+            "coopmat coopMatMulAdd(coopmat A, coopmat B, coopmat C, int matrixOperands);\n";
+
+        commonBuiltins.append(cooperativeMatrixFuncs.c_str());
+
+        commonBuiltins.append(
+            "const int gl_MatrixUseA = 0;\n"
+            "const int gl_MatrixUseB = 1;\n"
+            "const int gl_MatrixUseAccumulator = 2;\n"
+            "const int gl_MatrixOperandsSaturatingAccumulation = 0x10;\n"
+            "const int gl_CooperativeMatrixLayoutRowMajor = 0;\n"
+            "const int gl_CooperativeMatrixLayoutColumnMajor = 1;\n"
+            "\n"
+            );
     }
 
     //============================================================================
@@ -4567,7 +4657,7 @@
             "uvec4 fragmentFetchAMD(usubpassInputMS, uint);"
 
             "\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/GL_KHR_ray_tracing_position_Fetch
@@ -4637,6 +4727,8 @@
             "void reorderThreadNV(uint, uint);"
             "void reorderThreadNV(hitObjectNV);"
             "void reorderThreadNV(hitObjectNV, uint, uint);"
+            "vec3 fetchMicroTriangleVertexPositionNV(accelerationStructureEXT, int, int, int, ivec2);"
+            "vec2 fetchMicroTriangleVertexBarycentricNV(accelerationStructureEXT, int, int, int, ivec2);"
             "\n");
         stageBuiltins[EShLangIntersect].append(
             "bool reportIntersectionNV(float, uint);"
@@ -4754,7 +4846,20 @@
             "void SetMeshOutputsEXT(uint, uint);"
             "\n");
     }
-#endif // !GLSLANG_WEB
+    // Builtins for GL_NV_displacement_micromap
+    if ((profile != EEsProfile && version >= 460) || (profile == EEsProfile && version >= 320)) {
+        stageBuiltins[EShLangMesh].append(
+            "vec3 fetchMicroTriangleVertexPositionNV(accelerationStructureEXT, int, int, int, ivec2);"
+            "vec2 fetchMicroTriangleVertexBarycentricNV(accelerationStructureEXT, int, int, int, ivec2);"
+            "\n");
+
+        stageBuiltins[EShLangCompute].append(
+            "vec3 fetchMicroTriangleVertexPositionNV(accelerationStructureEXT, int, int, int, ivec2);"
+            "vec2 fetchMicroTriangleVertexBarycentricNV(accelerationStructureEXT, int, int, int, ivec2);"
+            "\n");
+
+    }
+
 
     //============================================================================
     //
@@ -4776,13 +4881,11 @@
                 "highp float diff;"   // f - n
                 );
         } else {
-#ifndef GLSLANG_WEB
             commonBuiltins.append(
                 "float near;"  // n
                 "float far;"   // f
                 "float diff;"  // f - n
                 );
-#endif
         }
 
         commonBuiltins.append(
@@ -4791,7 +4894,6 @@
             "\n");
     }
 
-#if !defined(GLSLANG_WEB)
     if (spvVersion.spv == 0 && IncludeLegacy(version, profile, spvVersion)) {
         //
         // Matrix state. p. 31, 32, 37, 39, 40.
@@ -4909,7 +5011,6 @@
 
             "\n");
     }
-#endif // !GLSLANG_WEB
 
     //============================================================================
     //
@@ -4939,7 +5040,6 @@
             "\n");
     }
 
-#ifndef GLSLANG_WEB
     //============================================================================
     //
     // Define the interface to the mesh/task shader.
@@ -5159,7 +5259,7 @@
             stageBuiltins[EShLangVertex].append(
                 "int gl_VertexID;"            // needs qualifier fixed later
                 );
-        if (version >= 140 && spvVersion.vulkan == 0)
+        if (spvVersion.vulkan == 0)
             stageBuiltins[EShLangVertex].append(
                 "int gl_InstanceID;"          // needs qualifier fixed later
                 );
@@ -5214,6 +5314,7 @@
             stageBuiltins[EShLangVertex].append(
                 "highp   vec4  gl_Position;"  // needs qualifier fixed later
                 "mediump float gl_PointSize;" // needs qualifier fixed later
+                "highp int gl_InstanceID;" // needs qualifier fixed later
                 );
         } else {
             if (spvVersion.vulkan == 0 || spvVersion.vulkanRelaxed)
@@ -5222,19 +5323,15 @@
                     "in highp int gl_InstanceID;"    // needs qualifier fixed later
                     );
             if (spvVersion.vulkan > 0)
-#endif
                 stageBuiltins[EShLangVertex].append(
                     "in highp int gl_VertexIndex;"
                     "in highp int gl_InstanceIndex;"
                     );
-#ifndef GLSLANG_WEB
             if (version < 310)
-#endif
                 stageBuiltins[EShLangVertex].append(
                     "highp vec4  gl_Position;"    // needs qualifier fixed later
                     "highp float gl_PointSize;"   // needs qualifier fixed later
                     );
-#ifndef GLSLANG_WEB
             else
                 stageBuiltins[EShLangVertex].append(
                     "out gl_PerVertex {"
@@ -5712,7 +5809,6 @@
                 "mediump vec2 gl_PointCoord;"   // needs qualifier fixed later
                 );
         }
-#endif
         if (version >= 300) {
             stageBuiltins[EShLangFragment].append(
                 "highp   vec4  gl_FragCoord;"    // needs qualifier fixed later
@@ -5721,7 +5817,6 @@
                 "highp   float gl_FragDepth;"    // needs qualifier fixed later
                 );
         }
-#ifndef GLSLANG_WEB
         if (version >= 310) {
             stageBuiltins[EShLangFragment].append(
                 "bool gl_HelperInvocation;"          // needs qualifier fixed later
@@ -5766,15 +5861,12 @@
                 "flat in highp int gl_ShadingRateEXT;" // GL_EXT_fragment_shading_rate
             );
     }
-#endif
 
     stageBuiltins[EShLangFragment].append("\n");
 
     if (version >= 130)
         add2ndGenerationSamplingImaging(version, profile, spvVersion);
 
-#ifndef GLSLANG_WEB
-
     if ((profile != EEsProfile && version >= 140) ||
         (profile == EEsProfile && version >= 310)) {
         stageBuiltins[EShLangFragment].append(
@@ -5951,6 +6043,8 @@
             "const uint gl_RayFlagsForceOpacityMicromap2StateEXT = 1024U;"
             "const uint gl_HitKindFrontFacingTriangleEXT = 254U;"
             "const uint gl_HitKindBackFacingTriangleEXT = 255U;"
+            "in    uint gl_HitKindFrontFacingMicroTriangleNV;"
+            "in    uint gl_HitKindBackFacingMicroTriangleNV;"
             "\n";
 
         const char *constRayQueryIntersection =
@@ -6039,7 +6133,10 @@
             "in    float  gl_CurrentRayTimeNV;"
             "in    uint   gl_CullMaskEXT;"
             "in    vec3   gl_HitTriangleVertexPositionsEXT[3];"
+            "in    vec3   gl_HitMicroTriangleVertexPositionsNV[3];"
+            "in    vec2   gl_HitMicroTriangleVertexBarycentricsNV[3];"
             "\n";
+
         const char *missDecls =
             "in    uvec3  gl_LaunchIDNV;"
             "in    uvec3  gl_LaunchIDEXT;"
@@ -6166,7 +6263,6 @@
             }
         }
     }
-#endif // !GLSLANG_WEB
 
     // printf("%s\n", commonBuiltins.c_str());
     // printf("%s\n", stageBuiltins[EShLangFragment].c_str());
@@ -6185,30 +6281,18 @@
 
     // enumerate all the types
     const TBasicType bTypes[] = { EbtFloat, EbtInt, EbtUint,
-#if !defined(GLSLANG_WEB)
-        EbtFloat16
-#endif
+         EbtFloat16
     };
-#ifdef GLSLANG_WEB
-    bool skipBuffer = true;
-    bool skipCubeArrayed = true;
-    const int image = 0;
-#else
     bool skipBuffer = (profile == EEsProfile && version < 310) || (profile != EEsProfile && version < 140);
     bool skipCubeArrayed = (profile == EEsProfile && version < 310) || (profile != EEsProfile && version < 130);
     for (int image = 0; image <= 1; ++image) // loop over "bool" image vs sampler
-#endif
     {
         for (int shadow = 0; shadow <= 1; ++shadow) { // loop over "bool" shadow or not
-#ifdef GLSLANG_WEB
-            const int ms = 0;
-#else
             for (int ms = 0; ms <= 1; ++ms) // loop over "bool" multisample or not
-#endif
             {
                 if ((ms || image) && shadow)
                     continue;
-                if (ms && profile != EEsProfile && version < 150)
+                if (ms && profile != EEsProfile && version < 140)
                     continue;
                 if (ms && image && profile == EEsProfile)
                     continue;
@@ -6216,9 +6300,6 @@
                     continue;
 
                 for (int arrayed = 0; arrayed <= 1; ++arrayed) { // loop over "bool" arrayed or not
-#ifdef GLSLANG_WEB
-                    for (int dim = Esd2D; dim <= EsdCube; ++dim) { // 2D, 3D, and Cube
-#else
                     for (int dim = Esd1D; dim < EsdNumDims; ++dim) { // 1D, ..., buffer, subpass
                         if (dim == EsdAttachmentEXT)
                             continue;
@@ -6242,7 +6323,6 @@
                             continue;
                         if (ms && arrayed && profile == EEsProfile && version < 310)
                             continue;
-#endif
                         if (dim == Esd3D && shadow)
                             continue;
                         if (dim == EsdCube && arrayed && skipCubeArrayed)
@@ -6252,25 +6332,21 @@
 
                         // Loop over the bTypes
                         for (size_t bType = 0; bType < sizeof(bTypes)/sizeof(TBasicType); ++bType) {
-#ifndef GLSLANG_WEB
                             if (bTypes[bType] == EbtFloat16 && (profile == EEsProfile || version < 450))
                                 continue;
                             if (dim == EsdRect && version < 140 && bType > 0)
                                 continue;
-#endif
                             if (shadow && (bTypes[bType] == EbtInt || bTypes[bType] == EbtUint))
                                 continue;
                             //
                             // Now, make all the function prototypes for the type we just built...
                             //
                             TSampler sampler;
-#ifndef GLSLANG_WEB
                             if (dim == EsdSubpass) {
                                 sampler.setSubpass(bTypes[bType], ms ? true : false);
                             } else if (dim == EsdAttachmentEXT) {
                                 sampler.setAttachmentEXT(bTypes[bType]);
                             } else
-#endif
                             if (image) {
                                 sampler.setImage(bTypes[bType], (TSamplerDim)dim, arrayed ? true : false,
                                                                                   shadow  ? true : false,
@@ -6283,12 +6359,10 @@
 
                             TString typeName = sampler.getString();
 
-#ifndef GLSLANG_WEB
                             if (dim == EsdSubpass) {
                                 addSubpassSampling(sampler, typeName, version, profile);
                                 continue;
                             }
-#endif
 
                             addQueryFunctions(sampler, typeName, version, profile);
 
@@ -6296,7 +6370,6 @@
                                 addImageFunctions(sampler, typeName, version, profile);
                             else {
                                 addSamplingFunctions(sampler, typeName, version, profile);
-#ifndef GLSLANG_WEB
                                 addGatherFunctions(sampler, typeName, version, profile);
                                 if (spvVersion.vulkan > 0 && sampler.isCombined() && !sampler.shadow) {
                                     // Base Vulkan allows texelFetch() for
@@ -6312,7 +6385,6 @@
                                     addSamplingFunctions(sampler, textureTypeName, version, profile);
                                     addQueryFunctions(sampler, textureTypeName, version, profile);
                                 }
-#endif
                             }
                         }
                     }
@@ -6343,16 +6415,6 @@
 
     int sizeDims = dimMap[sampler.dim] + (sampler.arrayed ? 1 : 0) - (sampler.dim == EsdCube ? 1 : 0);
 
-#ifdef GLSLANG_WEB
-    commonBuiltins.append("highp ");
-    commonBuiltins.append("ivec");
-    commonBuiltins.append(postfixes[sizeDims]);
-    commonBuiltins.append(" textureSize(");
-    commonBuiltins.append(typeName);
-    commonBuiltins.append(",int);\n");
-    return;
-#endif
-
     if (sampler.isImage() && ((profile == EEsProfile && version < 310) || (profile != EEsProfile && version < 420)))
         return;
 
@@ -6672,11 +6734,6 @@
 //
 void TBuiltIns::addSamplingFunctions(TSampler sampler, const TString& typeName, int version, EProfile profile)
 {
-#ifdef GLSLANG_WEB
-    profile = EEsProfile;
-    version = 310;
-#endif
-
     //
     // texturing
     //
@@ -6751,11 +6808,7 @@
                                     continue;
 
                                 // loop over 16-bit floating-point texel addressing
-#if defined(GLSLANG_WEB)
-                                const int f16TexAddr = 0;
-#else
                                 for (int f16TexAddr = 0; f16TexAddr <= 1; ++f16TexAddr)
-#endif
                                 {
                                     if (f16TexAddr && sampler.type != EbtFloat16)
                                         continue;
@@ -6764,11 +6817,7 @@
                                         totalDims--;
                                     }
                                     // loop over "bool" lod clamp
-#if defined(GLSLANG_WEB)
-                                    const int lodClamp = 0;
-#else
                                     for (int lodClamp = 0; lodClamp <= 1 ;++lodClamp)
-#endif
                                     {
                                         if (lodClamp && (profile == EEsProfile || version < 450))
                                             continue;
@@ -6776,11 +6825,7 @@
                                             continue;
 
                                         // loop over "bool" sparse or not
-#if defined(GLSLANG_WEB)
-                                        const int sparse = 0;
-#else
                                         for (int sparse = 0; sparse <= 1; ++sparse)
-#endif
                                         {
                                             if (sparse && (profile == EEsProfile || version < 450))
                                                 continue;
@@ -6957,11 +7002,6 @@
 //
 void TBuiltIns::addGatherFunctions(TSampler sampler, const TString& typeName, int version, EProfile profile)
 {
-#ifdef GLSLANG_WEB
-    profile = EEsProfile;
-    version = 310;
-#endif
-
     switch (sampler.dim) {
     case Esd2D:
     case EsdRect:
@@ -7200,11 +7240,6 @@
 //
 void TBuiltIns::initialize(const TBuiltInResource &resources, int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language)
 {
-#ifdef GLSLANG_WEB
-    version = 310;
-    profile = EEsProfile;
-#endif
-
     //
     // Initialize the context-dependent (resource-dependent) built-in strings for parsing.
     //
@@ -7262,7 +7297,6 @@
             s.append(builtInConstant);
         }
 
-#ifndef GLSLANG_WEB
         if (version >= 310) {
             // geometry
 
@@ -7585,7 +7619,6 @@
             snprintf(builtInConstant, maxSize, "const int gl_MaxTransformFeedbackInterleavedComponents = %d;", resources.maxTransformFeedbackInterleavedComponents);
             s.append(builtInConstant);
         }
-#endif
     }
 
     // compute
@@ -7607,7 +7640,6 @@
         s.append("\n");
     }
 
-#ifndef GLSLANG_WEB
     // images (some in compute below)
     if ((profile == EEsProfile && version >= 310) ||
         (profile != EEsProfile && version >= 130)) {
@@ -7709,7 +7741,6 @@
 
         s.append("\n");
     }
-#endif
 
     s.append("\n");
 }
@@ -7812,11 +7843,6 @@
 //
 void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable)
 {
-#ifdef GLSLANG_WEB
-    version = 310;
-    profile = EEsProfile;
-#endif
-
     //
     // Tag built-in variables and functions with additional qualifier and extension information
     // that cannot be declared with the text strings.
@@ -7836,10 +7862,11 @@
             BuiltInVariable("gl_InstanceIndex", EbvInstanceIndex, symbolTable);
         }
 
-#ifndef GLSLANG_WEB
         if (spvVersion.vulkan == 0) {
             SpecialQualifier("gl_VertexID",   EvqVertexId,   EbvVertexId,   symbolTable);
             SpecialQualifier("gl_InstanceID", EvqInstanceId, EbvInstanceId, symbolTable);
+            if (version < 140)
+                symbolTable.setVariableExtensions("gl_InstanceID", 1, &E_GL_EXT_draw_instanced);
         }
 
         if (spvVersion.vulkan > 0 && spvVersion.vulkanRelaxed) {
@@ -7991,6 +8018,18 @@
             symbolTable.setFunctionExtensions("shadow2DEXT",        1, &E_GL_EXT_shadow_samplers);
             symbolTable.setFunctionExtensions("shadow2DProjEXT",    1, &E_GL_EXT_shadow_samplers);
         }
+
+        // E_GL_EXT_texture_array
+        if (profile != EEsProfile && spvVersion.spv == 0) {
+            symbolTable.setFunctionExtensions("texture1DArray", 1, &E_GL_EXT_texture_array);
+            symbolTable.setFunctionExtensions("texture2DArray", 1, &E_GL_EXT_texture_array);
+            symbolTable.setFunctionExtensions("shadow1DArray", 1, &E_GL_EXT_texture_array);
+            symbolTable.setFunctionExtensions("shadow2DArray", 1, &E_GL_EXT_texture_array);
+
+            symbolTable.setFunctionExtensions("texture1DArrayLod", 1, &E_GL_EXT_texture_array);
+            symbolTable.setFunctionExtensions("texture2DArrayLod", 1, &E_GL_EXT_texture_array);
+            symbolTable.setFunctionExtensions("shadow1DArrayLod", 1, &E_GL_EXT_texture_array);
+        }
         // Fall through
 
     case EShLangTessControl:
@@ -8010,7 +8049,6 @@
 
     case EShLangTessEvaluation:
     case EShLangGeometry:
-#endif // !GLSLANG_WEB
         SpecialQualifier("gl_Position",   EvqPosition,   EbvPosition,   symbolTable);
         SpecialQualifier("gl_PointSize",  EvqPointSize,  EbvPointSize,  symbolTable);
 
@@ -8020,7 +8058,6 @@
         BuiltInVariable("gl_out", "gl_Position",     EbvPosition,     symbolTable);
         BuiltInVariable("gl_out", "gl_PointSize",    EbvPointSize,    symbolTable);
 
-#ifndef GLSLANG_WEB
         SpecialQualifier("gl_ClipVertex", EvqClipVertex, EbvClipVertex, symbolTable);
 
         BuiltInVariable("gl_in",  "gl_ClipDistance", EbvClipDistance, symbolTable);
@@ -8127,7 +8164,7 @@
             BuiltInVariable("gl_ViewIndex", EbvViewIndex, symbolTable);
         }
 
-	if (profile != EEsProfile) {
+        if (profile != EEsProfile) {
             BuiltInVariable("gl_SubGroupInvocationARB", EbvSubGroupInvocation, symbolTable);
             BuiltInVariable("gl_SubGroupEqMaskARB",     EbvSubGroupEqMask,     symbolTable);
             BuiltInVariable("gl_SubGroupGeMaskARB",     EbvSubGroupGeMask,     symbolTable);
@@ -8200,8 +8237,6 @@
 				symbolTable.setVariableExtensions("gl_ShadingRateFlag4HorizontalPixelsEXT", 1, &E_GL_EXT_fragment_shading_rate);
 			}
 		}
-
-#endif // !GLSLANG_WEB
         break;
 
     case EShLangFragment:
@@ -8218,7 +8253,6 @@
             }
         }
         SpecialQualifier("gl_FragDepth",        EvqFragDepth,  EbvFragDepth,        symbolTable);
-#ifndef GLSLANG_WEB
         SpecialQualifier("gl_FragDepthEXT",     EvqFragDepth,  EbvFragDepth,        symbolTable);
         SpecialQualifier("gl_FragStencilRefARB", EvqFragStencil, EbvFragStencilRef, symbolTable);
         SpecialQualifier("gl_HelperInvocation", EvqVaryingIn,  EbvHelperInvocation, symbolTable);
@@ -8638,6 +8672,8 @@
             symbolTable.setFunctionExtensions("subgroupShuffleXor",              1, &E_GL_KHR_shader_subgroup_shuffle);
             symbolTable.setFunctionExtensions("subgroupShuffleUp",               1, &E_GL_KHR_shader_subgroup_shuffle_relative);
             symbolTable.setFunctionExtensions("subgroupShuffleDown",             1, &E_GL_KHR_shader_subgroup_shuffle_relative);
+            symbolTable.setFunctionExtensions("subgroupRotate",                  1, &E_GL_KHR_shader_subgroup_rotate);
+            symbolTable.setFunctionExtensions("subgroupClusteredRotate",         1, &E_GL_KHR_shader_subgroup_rotate);
             symbolTable.setFunctionExtensions("subgroupAdd",                     1, &E_GL_KHR_shader_subgroup_arithmetic);
             symbolTable.setFunctionExtensions("subgroupMul",                     1, &E_GL_KHR_shader_subgroup_arithmetic);
             symbolTable.setFunctionExtensions("subgroupMin",                     1, &E_GL_KHR_shader_subgroup_arithmetic);
@@ -8756,11 +8792,25 @@
             symbolTable.setVariableExtensions("gl_ShadingRateFlag4HorizontalPixelsEXT", 1, &E_GL_EXT_fragment_shading_rate);
         }
 
+        // GL_EXT_shader_quad_control
+        if ((profile != EEsProfile && version >= 140) ||
+            (profile == EEsProfile && version >= 310)) {
+            symbolTable.setFunctionExtensions("subgroupQuadAll",                     1,  &E_GL_KHR_shader_subgroup_vote);
+            symbolTable.setFunctionExtensions("subgroupQuadAny",                     1,  &E_GL_KHR_shader_subgroup_vote);
+        }
+
         // GL_EXT_shader_tile_image
         symbolTable.setFunctionExtensions("stencilAttachmentReadEXT", 1, &E_GL_EXT_shader_tile_image);
         symbolTable.setFunctionExtensions("depthAttachmentReadEXT", 1, &E_GL_EXT_shader_tile_image);
         symbolTable.setFunctionExtensions("colorAttachmentReadEXT", 1, &E_GL_EXT_shader_tile_image);
-#endif // !GLSLANG_WEB
+
+        if ((profile == EEsProfile && version >= 310) ||
+            (profile != EEsProfile && version >= 140)) {
+            symbolTable.setFunctionExtensions("textureWeightedQCOM",      1, &E_GL_QCOM_image_processing);
+            symbolTable.setFunctionExtensions("textureBoxFilterQCOM",     1, &E_GL_QCOM_image_processing);
+            symbolTable.setFunctionExtensions("textureBlockMatchSADQCOM", 1, &E_GL_QCOM_image_processing);
+            symbolTable.setFunctionExtensions("textureBlockMatchSSDQCOM", 1, &E_GL_QCOM_image_processing);
+        }
         break;
 
     case EShLangCompute:
@@ -8773,7 +8823,6 @@
         BuiltInVariable("gl_DeviceIndex",           EbvDeviceIndex,          symbolTable);
         BuiltInVariable("gl_ViewIndex",             EbvViewIndex,            symbolTable);
 
-#ifndef GLSLANG_WEB
         if ((profile != EEsProfile && version >= 140) ||
             (profile == EEsProfile && version >= 310)) {
             symbolTable.setVariableExtensions("gl_DeviceIndex",  1, &E_GL_EXT_device_group);
@@ -8897,6 +8946,12 @@
             symbolTable.setFunctionExtensions("coopMatMulAddNV", 2, coopExt);
         }
 
+        {
+            symbolTable.setFunctionExtensions("coopMatLoad",   1, &E_GL_KHR_cooperative_matrix);
+            symbolTable.setFunctionExtensions("coopMatStore",  1, &E_GL_KHR_cooperative_matrix);
+            symbolTable.setFunctionExtensions("coopMatMulAdd", 1, &E_GL_KHR_cooperative_matrix);
+        }
+
         if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 320)) {
             symbolTable.setFunctionExtensions("dFdx",                   1, &E_GL_NV_compute_shader_derivatives);
             symbolTable.setFunctionExtensions("dFdy",                   1, &E_GL_NV_compute_shader_derivatives);
@@ -8916,10 +8971,13 @@
             symbolTable.setVariableExtensions("gl_ShadingRateFlag2HorizontalPixelsEXT", 1, &E_GL_EXT_fragment_shading_rate);
             symbolTable.setVariableExtensions("gl_ShadingRateFlag4HorizontalPixelsEXT", 1, &E_GL_EXT_fragment_shading_rate);
         }
-#endif // !GLSLANG_WEB
+
+        if ((profile != EEsProfile && version >= 460)) {
+            symbolTable.setFunctionExtensions("fetchMicroTriangleVertexPositionNV", 1, &E_GL_NV_displacement_micromap);
+            symbolTable.setFunctionExtensions("fetchMicroTriangleVertexBarycentricNV", 1, &E_GL_NV_displacement_micromap);
+        }
         break;
 
-#if !defined(GLSLANG_WEB)
     case EShLangRayGen:
     case EShLangIntersect:
     case EShLangAnyHit:
@@ -8964,6 +9022,8 @@
             symbolTable.setVariableExtensions("gl_IncomingRayFlagsEXT", 1, &E_GL_EXT_ray_tracing);
             symbolTable.setVariableExtensions("gl_CurrentRayTimeNV", 1, &E_GL_NV_ray_tracing_motion_blur);
             symbolTable.setVariableExtensions("gl_HitTriangleVertexPositionsEXT", 1, &E_GL_EXT_ray_tracing_position_fetch);
+            symbolTable.setVariableExtensions("gl_HitMicroTriangleVertexPositionsNV", 1, &E_GL_NV_displacement_micromap);
+            symbolTable.setVariableExtensions("gl_HitMicroTriangleVertexBarycentricsNV", 1, &E_GL_NV_displacement_micromap);
 
             symbolTable.setVariableExtensions("gl_DeviceIndex", 1, &E_GL_EXT_device_group);
 
@@ -9009,6 +9069,8 @@
             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);
+            symbolTable.setFunctionExtensions("fetchMicroTriangleVertexPositionNV", 1, &E_GL_NV_displacement_micromap);
+            symbolTable.setFunctionExtensions("fetchMicroTriangleVertexBarycentricNV", 1, &E_GL_NV_displacement_micromap);
 
 
             BuiltInVariable("gl_LaunchIDNV",             EbvLaunchId,           symbolTable);
@@ -9048,6 +9110,10 @@
             BuiltInVariable("gl_DeviceIndex",            EbvDeviceIndex,        symbolTable);
             BuiltInVariable("gl_CurrentRayTimeNV",       EbvCurrentRayTimeNV,   symbolTable);
             BuiltInVariable("gl_HitTriangleVertexPositionsEXT", EbvPositionFetch, symbolTable);
+            BuiltInVariable("gl_HitMicroTriangleVertexPositionsNV", EbvMicroTrianglePositionNV, symbolTable);
+            BuiltInVariable("gl_HitMicroTriangleVertexBarycentricsNV", EbvMicroTriangleBaryNV, symbolTable);
+            BuiltInVariable("gl_HitKindFrontFacingMicroTriangleNV", EbvHitKindFrontFacingMicroTriangleNV, symbolTable);
+            BuiltInVariable("gl_HitKindBackFacingMicroTriangleNV", EbvHitKindBackFacingMicroTriangleNV, symbolTable);
 
             // GL_ARB_shader_ballot
             symbolTable.setVariableExtensions("gl_SubGroupSizeARB",       1, &E_GL_ARB_shader_ballot);
@@ -9239,7 +9305,11 @@
             symbolTable.setVariableExtensions("gl_MeshPrimitivesEXT", "gl_Layer",                   1, &E_GL_EXT_mesh_shader);
             symbolTable.setVariableExtensions("gl_MeshPrimitivesEXT", "gl_ViewportIndex",           1, &E_GL_EXT_mesh_shader);
             symbolTable.setVariableExtensions("gl_MeshPrimitivesEXT", "gl_CullPrimitiveEXT",        1, &E_GL_EXT_mesh_shader);
-            symbolTable.setVariableExtensions("gl_MeshPrimitivesEXT", "gl_PrimitiveShadingRateEXT", 1, &E_GL_EXT_mesh_shader);
+
+            // note: technically this member requires both GL_EXT_mesh_shader and GL_EXT_fragment_shading_rate
+            // since setVariableExtensions only needs *one of* the extensions to validate, it's more useful to specify EXT_fragment_shading_rate
+            // GL_EXT_mesh_shader will be required in practice by use of other fields of gl_MeshPrimitivesEXT
+            symbolTable.setVariableExtensions("gl_MeshPrimitivesEXT", "gl_PrimitiveShadingRateEXT", 1, &E_GL_EXT_fragment_shading_rate);
 
             BuiltInVariable("gl_MeshPrimitivesEXT", "gl_PrimitiveID",              EbvPrimitiveId,    symbolTable);
             BuiltInVariable("gl_MeshPrimitivesEXT", "gl_Layer",                    EbvLayer,          symbolTable);
@@ -9345,6 +9415,13 @@
             symbolTable.setVariableExtensions("gl_ShadingRateFlag2HorizontalPixelsEXT", 1, &E_GL_EXT_fragment_shading_rate);
             symbolTable.setVariableExtensions("gl_ShadingRateFlag4HorizontalPixelsEXT", 1, &E_GL_EXT_fragment_shading_rate);
         }
+
+        // Builtins for GL_NV_displacment_micromap
+        if ((profile != EEsProfile && version >= 460)) {
+            symbolTable.setFunctionExtensions("fetchMicroTriangleVertexPositionNV", 1, &E_GL_NV_displacement_micromap);
+            symbolTable.setFunctionExtensions("fetchMicroTriangleVertexBarycentricNV", 1, &E_GL_NV_displacement_micromap);
+        }
+
         break;
 
     case EShLangTask:
@@ -9488,7 +9565,6 @@
             symbolTable.setVariableExtensions("gl_ShadingRateFlag4HorizontalPixelsEXT", 1, &E_GL_EXT_fragment_shading_rate);
         }
         break;
-#endif
 
     default:
         assert(false && "Language not supported");
@@ -9504,7 +9580,6 @@
 
     relateTabledBuiltins(version, profile, spvVersion, language, symbolTable);
 
-#ifndef GLSLANG_WEB
     symbolTable.relateToOperator("doubleBitsToInt64",  EOpDoubleBitsToInt64);
     symbolTable.relateToOperator("doubleBitsToUint64", EOpDoubleBitsToUint64);
     symbolTable.relateToOperator("int64BitsToDouble",  EOpInt64BitsToDouble);
@@ -9860,6 +9935,8 @@
             symbolTable.relateToOperator("subgroupShuffleXor",              EOpSubgroupShuffleXor);
             symbolTable.relateToOperator("subgroupShuffleUp",               EOpSubgroupShuffleUp);
             symbolTable.relateToOperator("subgroupShuffleDown",             EOpSubgroupShuffleDown);
+            symbolTable.relateToOperator("subgroupRotate",                  EOpSubgroupRotate);
+            symbolTable.relateToOperator("subgroupClusteredRotate",         EOpSubgroupClusteredRotate);
             symbolTable.relateToOperator("subgroupAdd",                     EOpSubgroupAdd);
             symbolTable.relateToOperator("subgroupMul",                     EOpSubgroupMul);
             symbolTable.relateToOperator("subgroupMin",                     EOpSubgroupMin);
@@ -9921,6 +9998,32 @@
             symbolTable.relateToOperator("shadow2DEXT",              EOpTexture);
             symbolTable.relateToOperator("shadow2DProjEXT",          EOpTextureProj);
         }
+
+        // GL_EXT_shader_quad_control
+        if ((profile == EEsProfile && version >= 310) ||
+            (profile != EEsProfile && version >= 140)) {
+            symbolTable.relateToOperator("subgroupQuadAll",                     EOpSubgroupQuadAll);
+            symbolTable.relateToOperator("subgroupQuadAny",                     EOpSubgroupQuadAny);
+        }
+
+        if ((profile == EEsProfile && version >= 310) ||
+            (profile != EEsProfile && version >= 140)) {
+            symbolTable.relateToOperator("textureWeightedQCOM",      EOpImageSampleWeightedQCOM);
+            symbolTable.relateToOperator("textureBoxFilterQCOM",     EOpImageBoxFilterQCOM);
+            symbolTable.relateToOperator("textureBlockMatchSADQCOM", EOpImageBlockMatchSADQCOM);
+            symbolTable.relateToOperator("textureBlockMatchSSDQCOM", EOpImageBlockMatchSSDQCOM);
+        }
+
+        if (profile != EEsProfile && spvVersion.spv == 0) {
+            symbolTable.relateToOperator("texture1DArray", EOpTexture);
+            symbolTable.relateToOperator("texture2DArray", EOpTexture);
+            symbolTable.relateToOperator("shadow1DArray", EOpTexture);
+            symbolTable.relateToOperator("shadow2DArray", EOpTexture);
+
+            symbolTable.relateToOperator("texture1DArrayLod", EOpTextureLod);
+            symbolTable.relateToOperator("texture2DArrayLod", EOpTextureLod);
+            symbolTable.relateToOperator("shadow1DArrayLod", EOpTextureLod);
+        }
     }
 
     switch(language) {
@@ -10005,12 +10108,25 @@
             symbolTable.relateToOperator("dFdyCoarse",  EOpDPdyCoarse);
             symbolTable.relateToOperator("fwidthCoarse",EOpFwidthCoarse);
         }
-        symbolTable.relateToOperator("coopMatLoadNV",              EOpCooperativeMatrixLoad);
-        symbolTable.relateToOperator("coopMatStoreNV",             EOpCooperativeMatrixStore);
-        symbolTable.relateToOperator("coopMatMulAddNV",            EOpCooperativeMatrixMulAdd);
+        symbolTable.relateToOperator("coopMatLoadNV",              EOpCooperativeMatrixLoadNV);
+        symbolTable.relateToOperator("coopMatStoreNV",             EOpCooperativeMatrixStoreNV);
+        symbolTable.relateToOperator("coopMatMulAddNV",            EOpCooperativeMatrixMulAddNV);
+
+        symbolTable.relateToOperator("coopMatLoad",                EOpCooperativeMatrixLoad);
+        symbolTable.relateToOperator("coopMatStore",               EOpCooperativeMatrixStore);
+        symbolTable.relateToOperator("coopMatMulAdd",              EOpCooperativeMatrixMulAdd);
+
+        if (profile != EEsProfile && version >= 460) {
+            symbolTable.relateToOperator("fetchMicroTriangleVertexPositionNV", EOpFetchMicroTriangleVertexPositionNV);
+            symbolTable.relateToOperator("fetchMicroTriangleVertexBarycentricNV", EOpFetchMicroTriangleVertexBarycentricNV);
+        }
         break;
 
     case EShLangRayGen:
+        if (profile != EEsProfile && version >= 460) {
+            symbolTable.relateToOperator("fetchMicroTriangleVertexPositionNV", EOpFetchMicroTriangleVertexPositionNV);
+            symbolTable.relateToOperator("fetchMicroTriangleVertexBarycentricNV", EOpFetchMicroTriangleVertexBarycentricNV);
+        } // fallthrough
     case EShLangClosestHit:
     case EShLangMiss:
         if (profile != EEsProfile && version >= 460) {
@@ -10057,7 +10173,7 @@
         if (profile != EEsProfile && version >= 460) {
             symbolTable.relateToOperator("reportIntersectionNV", EOpReportIntersection);
             symbolTable.relateToOperator("reportIntersectionEXT", EOpReportIntersection);
-	}
+        }
         break;
     case EShLangAnyHit:
         if (profile != EEsProfile && version >= 460) {
@@ -10082,6 +10198,12 @@
         if (profile != EEsProfile && version >= 450) {
             symbolTable.relateToOperator("SetMeshOutputsEXT", EOpSetMeshOutputsEXT);
         }
+
+        if (profile != EEsProfile && version >= 460) {
+            // Builtins for GL_NV_displacement_micromap.
+            symbolTable.relateToOperator("fetchMicroTriangleVertexPositionNV", EOpFetchMicroTriangleVertexPositionNV);
+            symbolTable.relateToOperator("fetchMicroTriangleVertexBarycentricNV", EOpFetchMicroTriangleVertexBarycentricNV);
+        }
         break;
     case EShLangTask:
         if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 320)) {
@@ -10097,7 +10219,6 @@
     default:
         assert(false && "Language not supported");
     }
-#endif // !GLSLANG_WEB
 }
 
 //
@@ -10111,7 +10232,6 @@
 //
 void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable, const TBuiltInResource &resources)
 {
-#ifndef GLSLANG_WEB
     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);
@@ -10183,7 +10303,6 @@
     default:
         break;
     }
-#endif
 }
 
 } // end namespace glslang
diff --git a/glslang/MachineIndependent/Initialize.h b/glslang/MachineIndependent/Initialize.h
index ac8ec33..42c32dd 100644
--- a/glslang/MachineIndependent/Initialize.h
+++ b/glslang/MachineIndependent/Initialize.h
@@ -107,6 +107,9 @@
     int dimMap[EsdNumDims];
 };
 
+// change this back to false if depending on textual spellings of texturing calls when consuming the AST
+// Using PureOperatorBuiltins=false is deprecated.
+constexpr bool PureOperatorBuiltins = true;
 } // end namespace glslang
 
 #endif // _INITIALIZE_INCLUDED_
diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp
index e542f90..ae62f19 100644
--- a/glslang/MachineIndependent/Intermediate.cpp
+++ b/glslang/MachineIndependent/Intermediate.cpp
@@ -388,7 +388,6 @@
     case EOpConstructFloat:  newType = EbtFloat;  break;
     case EOpConstructInt:    newType = EbtInt;    break;
     case EOpConstructUint:   newType = EbtUint;   break;
-#ifndef GLSLANG_WEB
     case EOpConstructInt8:   newType = EbtInt8;   break;
     case EOpConstructUint8:  newType = EbtUint8;  break;
     case EOpConstructInt16:  newType = EbtInt16;  break;
@@ -397,7 +396,6 @@
     case EOpConstructUint64: newType = EbtUint64; break;
     case EOpConstructDouble: newType = EbtDouble; break;
     case EOpConstructFloat16: newType = EbtFloat16; break;
-#endif
     default: break; // some compilers want this
     }
 
@@ -569,7 +567,6 @@
 bool TIntermediate::buildConvertOp(TBasicType dst, TBasicType src, TOperator& newOp) const
 {
     switch (dst) {
-#ifndef GLSLANG_WEB
     case EbtDouble:
         switch (src) {
         case EbtUint:    newOp = EOpConvUintToDouble;    break;
@@ -587,13 +584,11 @@
             return false;
         }
         break;
-#endif
     case EbtFloat:
         switch (src) {
         case EbtInt:     newOp = EOpConvIntToFloat;     break;
         case EbtUint:    newOp = EOpConvUintToFloat;    break;
         case EbtBool:    newOp = EOpConvBoolToFloat;    break;
-#ifndef GLSLANG_WEB
         case EbtDouble:  newOp = EOpConvDoubleToFloat;  break;
         case EbtInt8:    newOp = EOpConvInt8ToFloat;    break;
         case EbtUint8:   newOp = EOpConvUint8ToFloat;   break;
@@ -602,12 +597,10 @@
         case EbtFloat16: newOp = EOpConvFloat16ToFloat; break;
         case EbtInt64:   newOp = EOpConvInt64ToFloat;   break;
         case EbtUint64:  newOp = EOpConvUint64ToFloat;  break;
-#endif
         default:
             return false;
         }
         break;
-#ifndef GLSLANG_WEB
     case EbtFloat16:
         switch (src) {
         case EbtInt8:   newOp = EOpConvInt8ToFloat16;   break;
@@ -625,13 +618,11 @@
             return false;
         }
         break;
-#endif
     case EbtBool:
         switch (src) {
         case EbtInt:     newOp = EOpConvIntToBool;     break;
         case EbtUint:    newOp = EOpConvUintToBool;    break;
         case EbtFloat:   newOp = EOpConvFloatToBool;   break;
-#ifndef GLSLANG_WEB
         case EbtDouble:  newOp = EOpConvDoubleToBool;  break;
         case EbtInt8:    newOp = EOpConvInt8ToBool;    break;
         case EbtUint8:   newOp = EOpConvUint8ToBool;   break;
@@ -640,12 +631,10 @@
         case EbtFloat16: newOp = EOpConvFloat16ToBool; break;
         case EbtInt64:   newOp = EOpConvInt64ToBool;   break;
         case EbtUint64:  newOp = EOpConvUint64ToBool;  break;
-#endif
         default:
             return false;
         }
         break;
-#ifndef GLSLANG_WEB
     case EbtInt8:
         switch (src) {
         case EbtUint8:   newOp = EOpConvUint8ToInt8;   break;
@@ -715,14 +704,12 @@
             return false;
         }
         break;
-#endif
 
     case EbtInt:
         switch (src) {
         case EbtUint:    newOp = EOpConvUintToInt;    break;
         case EbtBool:    newOp = EOpConvBoolToInt;    break;
         case EbtFloat:   newOp = EOpConvFloatToInt;   break;
-#ifndef GLSLANG_WEB
         case EbtInt8:    newOp = EOpConvInt8ToInt;    break;
         case EbtUint8:   newOp = EOpConvUint8ToInt;   break;
         case EbtInt16:   newOp = EOpConvInt16ToInt;   break;
@@ -731,7 +718,6 @@
         case EbtFloat16: newOp = EOpConvFloat16ToInt; break;
         case EbtInt64:   newOp = EOpConvInt64ToInt;   break;
         case EbtUint64:  newOp = EOpConvUint64ToInt;  break;
-#endif
         default:
             return false;
         }
@@ -741,7 +727,6 @@
         case EbtInt:     newOp = EOpConvIntToUint;     break;
         case EbtBool:    newOp = EOpConvBoolToUint;    break;
         case EbtFloat:   newOp = EOpConvFloatToUint;   break;
-#ifndef GLSLANG_WEB
         case EbtInt8:    newOp = EOpConvInt8ToUint;    break;
         case EbtUint8:   newOp = EOpConvUint8ToUint;   break;
         case EbtInt16:   newOp = EOpConvInt16ToUint;   break;
@@ -750,7 +735,6 @@
         case EbtFloat16: newOp = EOpConvFloat16ToUint; break;
         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)
@@ -760,7 +744,6 @@
             return false;
         }
         break;
-#ifndef GLSLANG_WEB
     case EbtInt64:
         switch (src) {
         case EbtInt8:    newOp = EOpConvInt8ToInt64;    break;
@@ -795,7 +778,6 @@
             return false;
         }
         break;
-#endif
     default:
         return false;
     }
@@ -811,7 +793,6 @@
     // Add a new newNode for the conversion.
     //
 
-#ifndef GLSLANG_WEB
     bool convertToIntTypes = (convertTo == EbtInt8  || convertTo == EbtUint8  ||
                               convertTo == EbtInt16 || convertTo == EbtUint16 ||
                               convertTo == EbtInt   || convertTo == EbtUint   ||
@@ -848,7 +829,6 @@
             return nullptr;
         }
     }
-#endif
 
     TIntermUnary* newNode = nullptr;
     TOperator newOp = EOpNull;
@@ -860,13 +840,11 @@
     newNode = addUnaryNode(newOp, node, node->getLoc(), newType);
 
     if (node->getAsConstantUnion()) {
-#ifndef GLSLANG_WEB
         // 8/16-bit storage extensions don't support 8/16-bit constants, so don't fold conversions
         // to those types
         if ((getArithemeticInt8Enabled() || !(convertTo == EbtInt8 || convertTo == EbtUint8)) &&
             (getArithemeticInt16Enabled() || !(convertTo == EbtInt16 || convertTo == EbtUint16)) &&
             (getArithemeticFloat16Enabled() || !(convertTo == EbtFloat16)))
-#endif
         {
             TIntermTyped* folded = node->getAsConstantUnion()->fold(newOp, newType);
             if (folded)
@@ -1049,6 +1027,12 @@
     if (type.isArray() || node->getType().isArray())
         return nullptr;
 
+    // Reject implicit conversions to cooperative matrix types
+    if (node->getType().isCoopMat() &&
+        op != EOpConstructCooperativeMatrixNV &&
+        op != EOpConstructCooperativeMatrixKHR)
+        return nullptr;
+
     // Note: callers are responsible for other aspects of shape,
     // like vector and matrix sizes.
 
@@ -1060,7 +1044,6 @@
     case EOpConstructFloat:
     case EOpConstructInt:
     case EOpConstructUint:
-#ifndef GLSLANG_WEB
     case EOpConstructDouble:
     case EOpConstructFloat16:
     case EOpConstructInt8:
@@ -1071,8 +1054,6 @@
     case EOpConstructUint64:
         break;
 
-#endif
-
     //
     // Implicit conversions
     //
@@ -1117,7 +1098,8 @@
 
     case EOpSequence:
     case EOpConstructStruct:
-    case EOpConstructCooperativeMatrix:
+    case EOpConstructCooperativeMatrixNV:
+    case EOpConstructCooperativeMatrixKHR:
 
         if (type.isReference() || node->getType().isReference()) {
             // types must match to assign a reference
@@ -1159,7 +1141,6 @@
     }
 
     bool canPromoteConstant = true;
-#ifndef GLSLANG_WEB
     // GL_EXT_shader_16bit_storage can't do OpConstantComposite with
     // 16-bit types, so disable promotion for those types.
     // Many issues with this, from JohnK:
@@ -1187,7 +1168,6 @@
     default:
         break;
     }
-#endif
 
     if (canPromoteConstant && node->getAsConstantUnion())
         return promoteConstantUnion(type.getBasicType(), node->getAsConstantUnion());
@@ -1484,10 +1464,6 @@
 
 bool TIntermediate::isIntegralConversion(TBasicType from, TBasicType to) const
 {
-#ifdef GLSLANG_WEB
-    return false;
-#endif
-
     switch (from) {
     case EbtInt:
         switch(to) {
@@ -1568,10 +1544,6 @@
 
 bool TIntermediate::isFPConversion(TBasicType from, TBasicType to) const
 {
-#ifdef GLSLANG_WEB
-    return false;
-#endif
-
     if (to == EbtFloat && from == EbtFloat16) {
         return true;
     } else {
@@ -1592,7 +1564,6 @@
             break;
         }
         break;
-#ifndef GLSLANG_WEB
     case EbtInt8:
     case EbtUint8:
     case EbtInt16:
@@ -1612,7 +1583,6 @@
             return true;
         }
         break;
-#endif
     default:
         break;
     }
@@ -1814,10 +1784,6 @@
 
 static bool canSignedIntTypeRepresentAllUnsignedValues(TBasicType sintType, TBasicType uintType)
 {
-#ifdef GLSLANG_WEB
-    return false;
-#endif
-
     switch(sintType) {
     case EbtInt8:
         switch(uintType) {
@@ -1878,11 +1844,6 @@
 
 static TBasicType getCorrespondingUnsignedType(TBasicType type)
 {
-#ifdef GLSLANG_WEB
-    assert(type == EbtInt);
-    return EbtUint;
-#endif
-
     switch(type) {
     case EbtInt8:
         return EbtUint8;
@@ -2008,8 +1969,11 @@
     if (type.getQualifier().isNonUniform())
         return EOpConstructNonuniform;
 
-    if (type.isCoopMat())
-        return EOpConstructCooperativeMatrix;
+    if (type.isCoopMatNV())
+        return EOpConstructCooperativeMatrixNV;
+
+    if (type.isCoopMatKHR())
+        return EOpConstructCooperativeMatrixKHR;
 
     switch (type.getBasicType()) {
     case EbtStruct:
@@ -2172,7 +2136,6 @@
             }
         }
         break;
-#ifndef GLSLANG_WEB
     case EbtDouble:
         if (type.getMatrixCols()) {
             switch (type.getMatrixCols()) {
@@ -2311,7 +2274,6 @@
     case EbtAccStruct:
         op = EOpConstructAccStruct;
         break;
-#endif
     default:
         break;
     }
@@ -2355,6 +2317,40 @@
     return aggNode;
 }
 
+TIntermAggregate* TIntermediate::mergeAggregate(TIntermNode* left, TIntermNode* right)
+{
+    if (left == nullptr && right == nullptr)
+        return nullptr;
+
+    TIntermAggregate* aggNode = nullptr;
+    if (left != nullptr)
+        aggNode = left->getAsAggregate();
+    if (aggNode == nullptr || aggNode->getOp() != EOpNull) {
+        aggNode = new TIntermAggregate;
+        if (left != nullptr)
+            aggNode->getSequence().push_back(left);
+    }
+
+    TIntermAggregate* rhsagg = right->getAsAggregate();
+    if (rhsagg == nullptr || rhsagg->getOp() != EOpNull)
+        aggNode->getSequence().push_back(right);
+    else
+        aggNode->getSequence().insert(aggNode->getSequence().end(),
+                                      rhsagg->getSequence().begin(),
+                                      rhsagg->getSequence().end());
+
+    return aggNode;
+}
+
+TIntermAggregate* TIntermediate::mergeAggregate(TIntermNode* left, TIntermNode* right, const TSourceLoc& loc)
+{
+    TIntermAggregate* aggNode = mergeAggregate(left, right);
+    if (aggNode)
+        aggNode->setLoc(loc);
+
+    return aggNode;
+}
+
 //
 // Turn an existing node into an aggregate.
 //
@@ -2628,6 +2624,18 @@
 {
     assert(baseType == EbtFloat || baseType == EbtDouble || baseType == EbtFloat16);
 
+    if (isEsProfile() && (baseType == EbtFloat || baseType == EbtFloat16)) {
+        int exponent = 0;
+        frexp(d, &exponent);
+        int minExp = baseType == EbtFloat ? -126 : -14;
+        int maxExp = baseType == EbtFloat ? 127 : 15;
+        if (exponent > maxExp) { //overflow, d = inf
+            d = std::numeric_limits<double>::infinity();
+        } else if (exponent < minExp) { //underflow, d = 0.0;
+            d = 0.0;
+        }
+    }
+
     TConstUnionArray unionArray(1);
     unionArray[0].setDConst(d);
 
@@ -2685,28 +2693,42 @@
 // 'swizzleOkay' says whether or not it is okay to consider a swizzle
 // a valid part of the dereference chain.
 //
-// 'BufferReferenceOk' says if type is buffer_reference, the routine stop to find the most left node.
+// 'bufferReferenceOk' says if type is buffer_reference, the routine will stop to find the most left node.
 //
+// 'proc' is an optional function to run on each node that is processed during the traversal. 'proc' must
+// return true to continue the traversal, or false to end the traversal early.
 //
 
-const TIntermTyped* TIntermediate::findLValueBase(const TIntermTyped* node, bool swizzleOkay , bool bufferReferenceOk)
+const TIntermTyped* TIntermediate::traverseLValueBase(const TIntermTyped* node, bool swizzleOkay,
+                                                      bool bufferReferenceOk,
+                                                      std::function<bool(const TIntermNode&)> proc)
 {
     do {
         const TIntermBinary* binary = node->getAsBinaryNode();
-        if (binary == nullptr)
+        if (binary == nullptr) {
+            if (proc) {
+                proc(*node);
+            }
             return node;
+        }
         TOperator op = binary->getOp();
-        if (op != EOpIndexDirect && op != EOpIndexIndirect && op != EOpIndexDirectStruct && op != EOpVectorSwizzle && op != EOpMatrixSwizzle)
+        if (op != EOpIndexDirect && op != EOpIndexIndirect && op != EOpIndexDirectStruct && op != EOpVectorSwizzle &&
+            op != EOpMatrixSwizzle)
             return nullptr;
-        if (! swizzleOkay) {
+        if (!swizzleOkay) {
             if (op == EOpVectorSwizzle || op == EOpMatrixSwizzle)
                 return nullptr;
             if ((op == EOpIndexDirect || op == EOpIndexIndirect) &&
                 (binary->getLeft()->getType().isVector() || binary->getLeft()->getType().isScalar()) &&
-                ! binary->getLeft()->getType().isArray())
+                !binary->getLeft()->getType().isArray())
                 return nullptr;
         }
-        node = node->getAsBinaryNode()->getLeft();
+        if (proc) {
+            if (!proc(*node)) {
+                return node;
+            }
+        }
+        node = binary->getLeft();
         if (bufferReferenceOk && node->isReference())
             return node;
     } while (true);
@@ -2792,7 +2814,6 @@
     if (aggRoot && aggRoot->getOp() == EOpNull)
         aggRoot->setOperator(EOpSequence);
 
-#ifndef GLSLANG_WEB
     // Propagate 'noContraction' label in backward from 'precise' variables.
     glslang::PropagateNoContraction(*this);
 
@@ -2806,7 +2827,6 @@
         assert(0);
         break;
     }
-#endif
 
     return true;
 }
@@ -2835,10 +2855,9 @@
     //}
 
     if (language == EShLangVertex) {
-        // the names won't be found in the symbol table unless the versions are right,
-        // so version logic does not need to be repeated here
         addSymbolLinkageNode(linkage, symbolTable, "gl_VertexID");
-        addSymbolLinkageNode(linkage, symbolTable, "gl_InstanceID");
+        if ((version < 140 && requestedExtensions.find(E_GL_EXT_draw_instanced) != requestedExtensions.end()) || version >= 140)
+            addSymbolLinkageNode(linkage, symbolTable, "gl_InstanceID");
     }
 
     // Add a child to the root node for the linker objects
@@ -3526,20 +3545,28 @@
     }
 
     if (left->getType().isCoopMat() || right->getType().isCoopMat()) {
+        // Operations on two cooperative matrices must have identical types
         if (left->getType().isCoopMat() && right->getType().isCoopMat() &&
-            *left->getType().getTypeParameters() != *right->getType().getTypeParameters()) {
+            left->getType() != right->getType()) {
             return false;
         }
         switch (op) {
         case EOpMul:
         case EOpMulAssign:
-            if (left->getType().isCoopMat() && right->getType().isCoopMat()) {
+            // Mul not supported in NV_cooperative_matrix
+            if (left->getType().isCoopMatNV() && right->getType().isCoopMatNV()) {
                 return false;
             }
-            if (op == EOpMulAssign && right->getType().isCoopMat()) {
+            // NV_cooperative_matrix supports MulAssign is for mat*=scalar only.
+            // KHR_cooperative_matrix supports it for mat*=mat as well.
+            if (op == EOpMulAssign && right->getType().isCoopMatNV()) {
                 return false;
             }
-            node.setOp(op == EOpMulAssign ? EOpMatrixTimesScalarAssign : EOpMatrixTimesScalar);
+            // Use MatrixTimesScalar if either operand is not a matrix. Otherwise use Mul.
+            if (!left->getType().isCoopMat() || !right->getType().isCoopMat()) {
+                node.setOp(op == EOpMulAssign ? EOpMatrixTimesScalarAssign : EOpMatrixTimesScalar);
+            }
+            // In case of scalar*matrix, take the result type from the matrix.
             if (right->getType().isCoopMat()) {
                 node.setType(right->getType());
             }
@@ -3892,16 +3919,6 @@
 #define PROMOTE(Set, CType, Get) leftUnionArray[i].Set(static_cast<CType>(rightUnionArray[i].Get()))
 #define PROMOTE_TO_BOOL(Get) leftUnionArray[i].setBConst(rightUnionArray[i].Get() != 0)
 
-#ifdef GLSLANG_WEB
-#define TO_ALL(Get)   \
-        switch (promoteTo) { \
-        case EbtFloat: PROMOTE(setDConst, double, Get); break; \
-        case EbtInt: PROMOTE(setIConst, int, Get); break; \
-        case EbtUint: PROMOTE(setUConst, unsigned int, Get); break; \
-        case EbtBool: PROMOTE_TO_BOOL(Get); break; \
-        default: return node; \
-        }
-#else
 #define TO_ALL(Get)   \
         switch (promoteTo) { \
         case EbtFloat16: PROMOTE(setDConst, double, Get); break; \
@@ -3918,14 +3935,12 @@
         case EbtBool: PROMOTE_TO_BOOL(Get); break; \
         default: return node; \
         }
-#endif
 
         switch (node->getType().getBasicType()) {
         case EbtFloat: TO_ALL(getDConst); break;
         case EbtInt: TO_ALL(getIConst); break;
         case EbtUint: TO_ALL(getUConst); break;
         case EbtBool: TO_ALL(getBConst); break;
-#ifndef GLSLANG_WEB
         case EbtFloat16: TO_ALL(getDConst); break;
         case EbtDouble: TO_ALL(getDConst); break;
         case EbtInt8: TO_ALL(getI8Const); break;
@@ -3934,7 +3949,6 @@
         case EbtUint8: TO_ALL(getU8Const); break;
         case EbtUint16: TO_ALL(getU16Const); break;
         case EbtUint64: TO_ALL(getU64Const); break;
-#endif
         default: return node;
         }
     }
diff --git a/glslang/MachineIndependent/ParseContextBase.cpp b/glslang/MachineIndependent/ParseContextBase.cpp
index c34c04f..8e8bcd8 100644
--- a/glslang/MachineIndependent/ParseContextBase.cpp
+++ b/glslang/MachineIndependent/ParseContextBase.cpp
@@ -67,8 +67,6 @@
     }
 }
 
-#if !defined(GLSLANG_WEB) || defined(GLSLANG_WEB_DEVEL)
-
 void C_DECL TParseContextBase::error(const TSourceLoc& loc, const char* szReason, const char* szToken,
                                      const char* szExtraInfoFormat, ...)
 {
@@ -118,8 +116,6 @@
     va_end(args);
 }
 
-#endif
-
 //
 // Both test and if necessary, spit out an error, to see if the node is really
 // an l-value that can be operated on this way.
@@ -140,7 +136,6 @@
     case EvqConst:          message = "can't modify a const";        break;
     case EvqConstReadOnly:  message = "can't modify a const";        break;
     case EvqUniform:        message = "can't modify a uniform";      break;
-#ifndef GLSLANG_WEB
     case EvqBuffer:
         if (node->getQualifier().isReadOnly())
             message = "can't modify a readonly buffer";
@@ -151,7 +146,6 @@
         if (language != EShLangIntersect)
             message = "cannot modify hitAttributeNV in this stage";
         break;
-#endif
 
     default:
         //
@@ -165,7 +159,6 @@
         case EbtVoid:
             message = "can't modify void";
             break;
-#ifndef GLSLANG_WEB
         case EbtAtomicUint:
             message = "can't modify an atomic_uint";
             break;
@@ -178,7 +171,6 @@
         case EbtHitObjectNV:
             message = "can't modify hitObjectNV";
             break;
-#endif
         default:
             break;
         }
@@ -216,7 +208,7 @@
     //
     // If we get here, we have an error and a message.
     //
-    const TIntermTyped* leftMostTypeNode = TIntermediate::findLValueBase(node, true);
+    const TIntermTyped* leftMostTypeNode = TIntermediate::traverseLValueBase(node, true);
 
     if (symNode)
         error(loc, " l-value required", op, "\"%s\" (%s)", symbol, message);
@@ -242,7 +234,7 @@
     const TIntermSymbol* symNode = node->getAsSymbolNode();
 
     if (node->getQualifier().isWriteOnly()) {
-        const TIntermTyped* leftMostTypeNode = TIntermediate::findLValueBase(node, true);
+        const TIntermTyped* leftMostTypeNode = TIntermediate::traverseLValueBase(node, true);
 
         if (symNode != nullptr)
             error(loc, "can't read from writeonly object: ", op, symNode->getName().c_str());
@@ -634,10 +626,8 @@
     if (symbol) {
         if (memberType != symbol->getType()) {
             TString err;
-            err += "\"" + memberType.getCompleteString() + "\"";
-            err += " versus ";
-            err += "\"" + symbol->getType().getCompleteString() + "\"";
-            error(loc, "Types must match:", memberType.getFieldName().c_str(), err.c_str());
+            err += "Redeclaration: already declared as \"" + symbol->getType().getCompleteString() + "\"";
+            error(loc, "", memberName.c_str(), err.c_str());
         }
         return;
     }
@@ -732,6 +722,24 @@
     if (parsingBuiltins)
         return;
 
+    for (const TString& relaxedSymbol : relaxedSymbols)
+    {
+        TSymbol* symbol = symbolTable.find(relaxedSymbol);
+        TType& type = symbol->getWritableType();
+        for (const TTypeLoc& typeLoc : *type.getStruct())
+        {
+            if (typeLoc.type->isOpaque())
+            {
+                typeLoc.type->getSampler() = TSampler{};
+                typeLoc.type->setBasicType(EbtInt);
+                TString fieldName("/*");
+                fieldName.append(typeLoc.type->getFieldName());
+                fieldName.append("*/");
+                typeLoc.type->setFieldName(fieldName);
+            }
+        }
+    }
+
     // Transfer the linkage symbols to AST nodes, preserving order.
     TIntermAggregate* linkage = new TIntermAggregate;
     for (auto i = linkageSymbols.begin(); i != linkageSymbols.end(); ++i)
diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp
index c6f947d..9814810 100644
--- a/glslang/MachineIndependent/ParseHelper.cpp
+++ b/glslang/MachineIndependent/ParseHelper.cpp
@@ -38,6 +38,7 @@
 //
 
 #include "ParseHelper.h"
+#include "Initialize.h"
 #include "Scan.h"
 
 #include "../OSDependent/osinclude.h"
@@ -57,11 +58,8 @@
                               infoSink, forwardCompatible, messages, entryPoint),
             inMain(false),
             blockName(nullptr),
-            limits(resources.limits)
-#ifndef GLSLANG_WEB
-            ,
+            limits(resources.limits),
             atomicUintOffsets(nullptr), anyIndexLimits(false)
-#endif
 {
     // decide whether precision qualifiers should be ignored or respected
     if (isEsProfile() || spvVersion.vulkan > 0) {
@@ -87,7 +85,6 @@
     globalSharedDefaults.layoutMatrix = ElmColumnMajor;
     globalSharedDefaults.layoutPacking = ElpStd430;
 
-#ifndef GLSLANG_WEB
     // "Shaders in the transform
     // feedback capturing mode have an initial global default of
     //     layout(xfb_buffer = 0) out;"
@@ -99,7 +96,6 @@
 
     if (language == EShLangGeometry)
         globalOutputDefaults.layoutStream = 0;
-#endif
 
     if (entryPoint != nullptr && entryPoint->size() > 0 && *entryPoint != "main")
         infoSink.info.message(EPrefixError, "Source entry point must be \"main\"");
@@ -107,9 +103,7 @@
 
 TParseContext::~TParseContext()
 {
-#ifndef GLSLANG_WEB
     delete [] atomicUintOffsets;
-#endif
 }
 
 // Set up all default precisions as needed by the current environment.
@@ -173,7 +167,6 @@
     resources = r;
     intermediate.setLimits(r);
 
-#ifndef GLSLANG_WEB
     anyIndexLimits = ! limits.generalAttributeMatrixVectorIndexing ||
                      ! limits.generalConstantMatrixVectorIndexing ||
                      ! limits.generalSamplerIndexing ||
@@ -188,7 +181,6 @@
     atomicUintOffsets = new int[resources.maxAtomicCounterBindings];
     for (int b = 0; b < resources.maxAtomicCounterBindings; ++b)
         atomicUintOffsets[b] = 0;
-#endif
 }
 
 //
@@ -335,7 +327,6 @@
 
 void TParseContext::handlePragma(const TSourceLoc& loc, const TVector<TString>& tokens)
 {
-#ifndef GLSLANG_WEB
     if (pragmaCallback)
         pragmaCallback(loc.line, tokens);
 
@@ -437,7 +428,6 @@
         setInvariant(loc, "gl_FragColor");
         setInvariant(loc, "gl_FragData");
     }
-#endif
 }
 
 //
@@ -451,7 +441,6 @@
     if (symbol && symbol->getNumExtensions())
         requireExtensions(loc, symbol->getNumExtensions(), symbol->getExtensions(), symbol->getName().c_str());
 
-#ifndef GLSLANG_WEB
     if (symbol && symbol->isReadOnly()) {
         // All shared things containing an unsized array must be copied up
         // on first use, so that all future references will share its array structure,
@@ -471,7 +460,6 @@
                 makeEditable(symbol);
         }
     }
-#endif
 
     const TVariable* variable;
     const TAnonMember* anon = symbol ? symbol->getAsAnonMember() : nullptr;
@@ -576,7 +564,6 @@
     // at least one of base and index is not a front-end constant variable...
     TIntermTyped* result = nullptr;
 
-#ifndef GLSLANG_WEB
     if (base->isReference() && ! base->isArray()) {
         requireExtensions(loc, 1, &E_GL_EXT_buffer_reference2, "buffer reference indexing");
         if (base->getType().getReferentType()->containsUnsizedArray()) {
@@ -595,13 +582,11 @@
     }
     if (base->getAsSymbolNode() && isIoResizeArray(base->getType()))
         handleIoResizeArrayAccess(loc, base);
-#endif
 
     if (index->getQualifier().isFrontEndConstant())
         checkIndex(loc, base->getType(), indexValue);
 
     if (index->getQualifier().isFrontEndConstant()) {
-#ifndef GLSLANG_WEB
         if (base->getType().isUnsizedArray()) {
             base->getWritableType().updateImplicitArraySize(indexValue + 1);
             base->getWritableType().setImplicitlySized(true);
@@ -624,11 +609,9 @@
                 }
             }
         } else
-#endif
             checkIndex(loc, base->getType(), indexValue);
         result = intermediate.addIndex(EOpIndexDirect, base, index, loc);
     } else {
-#ifndef GLSLANG_WEB
         if (base->getType().isUnsizedArray()) {
             // we have a variable index into an unsized array, which is okay,
             // depending on the situation
@@ -640,7 +623,6 @@
             }
             base->getWritableType().setArrayVariablyIndexed();
         }
-#endif
         if (base->getBasicType() == EbtBlock) {
             if (base->getQualifier().storage == EvqBuffer)
                 requireProfile(base->getLoc(), ~EEsProfile, "variable indexing buffer block array");
@@ -650,7 +632,7 @@
             else {
                 // input/output blocks either don't exist or can't be variably indexed
             }
-        } else if (language == EShLangFragment && base->getQualifier().isPipeOutput())
+        } else if (language == EShLangFragment && base->getQualifier().isPipeOutput() && base->getQualifier().builtIn != EbvSampleMask)
             requireProfile(base->getLoc(), ~EEsProfile, "variable indexing fragment shader output array");
         else if (base->getBasicType() == EbtSampler && version >= 130) {
             const char* explanation = "variable indexing sampler array";
@@ -676,7 +658,6 @@
     }
     result->setType(newType);
 
-#ifndef GLSLANG_WEB
     inheritMemoryQualifiers(base->getQualifier(), result->getWritableType().getQualifier());
 
     // Propagate nonuniform
@@ -685,13 +666,10 @@
 
     if (anyIndexLimits)
         handleIndexLimits(loc, base, index);
-#endif
 
     return result;
 }
 
-#ifndef GLSLANG_WEB
-
 // for ES 2.0 (version 100) limitations for almost all index operations except vertex-shader uniforms
 void TParseContext::handleIndexLimits(const TSourceLoc& /*loc*/, TIntermTyped* base, TIntermTyped* index)
 {
@@ -885,8 +863,6 @@
     }
 }
 
-#endif // GLSLANG_WEB
-
 // Handle seeing a binary node with a math operation.
 // Returns nullptr if not semantically allowed.
 TIntermTyped* TParseContext::handleBinaryMath(const TSourceLoc& loc, const char* str, TOperator op, TIntermTyped* left, TIntermTyped* right)
@@ -1017,17 +993,25 @@
                 break;
             }
         }
+
         if (fieldFound) {
-            if (base->getType().getQualifier().isFrontEndConstant())
-                result = intermediate.foldDereference(base, member, loc);
-            else {
-                blockMemberExtensionCheck(loc, base, member, field);
-                TIntermTyped* index = intermediate.addConstantUnion(member, loc);
-                result = intermediate.addIndex(EOpIndexDirectStruct, base, index, loc);
-                result->setType(*(*fields)[member].type);
-                if ((*fields)[member].type->getQualifier().isIo())
-                    intermediate.addIoAccessed(field);
+            if (spvVersion.vulkan != 0 && spvVersion.vulkanRelaxed)
+                result = vkRelaxedRemapDotDereference(loc, *base, *(*fields)[member].type, field);
+
+            if (result == base)
+            {
+                if (base->getType().getQualifier().isFrontEndConstant())
+                    result = intermediate.foldDereference(base, member, loc);
+                else {
+                    blockMemberExtensionCheck(loc, base, member, field);
+                    TIntermTyped* index = intermediate.addConstantUnion(member, loc);
+                    result = intermediate.addIndex(EOpIndexDirectStruct, base, index, loc);
+                    result->setType(*(*fields)[member].type);
+                    if ((*fields)[member].type->getQualifier().isIo())
+                        intermediate.addIoAccessed(field);
+                }
             }
+
             inheritMemoryQualifiers(base->getQualifier(), result->getWritableType().getQualifier());
         } else {
             auto baseSymbol = base;
@@ -1165,7 +1149,6 @@
     TSymbol* symbol = symbolTable.find(function.getMangledName(), &builtIn);
     if (symbol && symbol->getAsFunction() && builtIn)
         requireProfile(loc, ~EEsProfile, "redefinition of built-in function");
-#ifndef GLSLANG_WEB
     // Check the validity of using spirv_literal qualifier
     for (int i = 0; i < function.getParamCount(); ++i) {
         if (function[i].type->getQualifier().isSpirvLiteral() && function.getBuiltInOp() != EOpSpirvInst)
@@ -1177,19 +1160,16 @@
     // respect this redeclared one.
     if (symbol && builtIn && function.getBuiltInOp() == EOpSpirvInst)
         symbol = nullptr;
-#endif
     const TFunction* prevDec = symbol ? symbol->getAsFunction() : nullptr;
     if (prevDec) {
         if (prevDec->isPrototyped() && prototype)
             profileRequires(loc, EEsProfile, 300, nullptr, "multiple prototypes for same function");
         if (prevDec->getType() != function.getType())
             error(loc, "overloaded functions must have the same return type", function.getName().c_str(), "");
-#ifndef GLSLANG_WEB
         if (prevDec->getSpirvInstruction() != function.getSpirvInstruction()) {
             error(loc, "overloaded functions must have the same qualifiers", function.getName().c_str(),
                   "spirv_instruction");
         }
-#endif
         for (int i = 0; i < prevDec->getParamCount(); ++i) {
             if ((*prevDec)[i].type->getQualifier().storage != function[i].type->getQualifier().storage)
                 error(loc, "overloaded functions must have the same parameter storage qualifiers for argument", function[i].type->getStorageQualifierString(), "%d", i+1);
@@ -1271,6 +1251,8 @@
             error(loc, "function cannot take any parameter(s)", function.getName().c_str(), "");
         if (function.getType().getBasicType() != EbtVoid)
             error(loc, "", function.getType().getBasicTypeString().c_str(), "entry point cannot return a value");
+        if (function.getLinkType() != ELinkNone)
+            error(loc, "main function cannot be exported", "", "");
     }
 
     //
@@ -1307,6 +1289,7 @@
         } else
             paramNodes = intermediate.growAggregate(paramNodes, intermediate.addSymbol(*param.type, loc), loc);
     }
+    paramNodes->setLinkType(function.getLinkType());
     intermediate.setAggregateOperator(paramNodes, EOpParameters, TType(EbtVoid), loc);
     loopNestingLevel = 0;
     statementNestingLevel = 0;
@@ -1368,6 +1351,10 @@
             //  - a user function.
 
             // Error check for a function requiring specific extensions present.
+            if (builtIn &&
+                (fnCandidate->getBuiltInOp() == EOpSubgroupQuadAll || fnCandidate->getBuiltInOp() == EOpSubgroupQuadAny))
+                requireExtensions(loc, 1, &E_GL_EXT_shader_quad_control, fnCandidate->getName().c_str());
+
             if (builtIn && fnCandidate->getNumExtensions())
                 requireExtensions(loc, fnCandidate->getNumExtensions(), fnCandidate->getExtensions(), fnCandidate->getName().c_str());
 
@@ -1377,7 +1364,10 @@
                 requireInt16Arithmetic(loc, "built-in function", "(u)int16 types can only be in uniform block or buffer storage");
             if (builtIn && fnCandidate->getType().contains8BitInt())
                 requireInt8Arithmetic(loc, "built-in function", "(u)int8 types can only be in uniform block or buffer storage");
-
+            if (builtIn && (fnCandidate->getBuiltInOp() == EOpTextureFetch || fnCandidate->getBuiltInOp() == EOpTextureQuerySize)) {
+                if ((*fnCandidate)[0].type->getSampler().isMultiSample() && version <= 140)
+                    requireExtensions(loc, 1, &E_GL_ARB_texture_multisample, fnCandidate->getName().c_str());
+            }
             if (arguments != nullptr) {
                 // Make sure qualifications work for these arguments.
                 TIntermAggregate* aggregate = arguments->getAsAggregate();
@@ -1391,7 +1381,6 @@
                         if (lValueErrorCheck(arguments->getLoc(), "assign", arg->getAsTyped()))
                             error(arguments->getLoc(), "Non-L-value cannot be passed for 'out' or 'inout' parameters.", "out", "");
                     }
-#ifndef GLSLANG_WEB
                     if (formalQualifier.isSpirvLiteral()) {
                         if (!arg->getAsTyped()->getQualifier().isFrontEndConstant()) {
                             error(arguments->getLoc(),
@@ -1399,13 +1388,11 @@
                                   "spirv_literal", "");
                         }
                     }
-#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())) {
                         const char* message = "argument cannot drop memory qualifier when passed to formal parameter";
-#ifndef GLSLANG_WEB
                         if (argQualifier.volatil && ! formalQualifier.volatil)
                             error(arguments->getLoc(), message, "volatile", "");
                         if (argQualifier.coherent && ! (formalQualifier.devicecoherent || formalQualifier.coherent))
@@ -1425,7 +1412,6 @@
                         // Don't check 'restrict', it is different than the rest:
                         // "...but only restrict can be taken away from a calling argument, by a formal parameter that
                         // lacks the restrict qualifier..."
-#endif
                     }
                     if (!builtIn && argQualifier.getFormat() != formalQualifier.getFormat()) {
                         // we have mismatched formats, which should only be allowed if writeonly
@@ -1455,11 +1441,9 @@
             if (builtIn && fnCandidate->getBuiltInOp() != EOpNull) {
                 // A function call mapped to a built-in operation.
                 result = handleBuiltInFunctionCall(loc, arguments, *fnCandidate);
-#ifndef GLSLANG_WEB
             } else if (fnCandidate->getBuiltInOp() == EOpSpirvInst) {
                 // When SPIR-V instruction qualifier is specified, the function call is still mapped to a built-in operation.
                 result = handleBuiltInFunctionCall(loc, arguments, *fnCandidate);
-#endif
             } else {
                 // This is a function call not mapped to built-in operator.
                 // It could still be a built-in function, but only if PureOperatorBuiltins == false.
@@ -1479,11 +1463,9 @@
                         intermediate.addToCallGraph(infoSink, currentCaller, fnCandidate->getMangledName());
                 }
 
-#ifndef GLSLANG_WEB
                 if (builtIn)
                     nonOpBuiltInCheck(loc, *fnCandidate, *call);
                 else
-#endif
                     userFunctionCallCheck(loc, *call);
             }
 
@@ -1501,7 +1483,8 @@
 
             if (result->getAsTyped()->getType().isCoopMat() &&
                !result->getAsTyped()->getType().isParameterized()) {
-                assert(fnCandidate->getBuiltInOp() == EOpCooperativeMatrixMulAdd);
+                assert(fnCandidate->getBuiltInOp() == EOpCooperativeMatrixMulAdd ||
+                       fnCandidate->getBuiltInOp() == EOpCooperativeMatrixMulAddNV);
 
                 result->setType(result->getAsAggregate()->getSequence()[2]->getAsTyped()->getType());
             }
@@ -1537,7 +1520,6 @@
     } else if (result->getAsOperator())
         builtInOpCheck(loc, function, *result->getAsOperator());
 
-#ifndef GLSLANG_WEB
     // Special handling for function call with SPIR-V instruction qualifier specified
     if (function.getBuiltInOp() == EOpSpirvInst) {
         if (auto agg = result->getAsAggregate()) {
@@ -1564,7 +1546,6 @@
         } else
             assert(0);
     }
-#endif
 
     return result;
 }
@@ -1667,9 +1648,7 @@
 
 TIntermNode* TParseContext::handleReturnValue(const TSourceLoc& loc, TIntermTyped* value)
 {
-#ifndef GLSLANG_WEB
     storage16BitAssignmentCheck(loc, value->getType(), "return");
-#endif
 
     functionReturnsValue = true;
     TIntermBranch* branch = nullptr;
@@ -1691,7 +1670,9 @@
         }
     } else {
         if (value->getType().isTexture() || value->getType().isImage()) {
-            if (!extensionTurnedOn(E_GL_ARB_bindless_texture))
+            if (spvVersion.spv != 0)
+                error(loc, "sampler or image cannot be used as return type when generating SPIR-V", "return", "");
+            else 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", "");
         }
         branch = intermediate.addBranch(EOpReturn, value, loc);
@@ -1703,7 +1684,6 @@
 // See if the operation is being done in an illegal location.
 void TParseContext::checkLocation(const TSourceLoc& loc, TOperator op)
 {
-#ifndef GLSLANG_WEB
     switch (op) {
     case EOpBarrier:
         if (language == EShLangTessControl) {
@@ -1756,7 +1736,6 @@
     default:
         break;
     }
-#endif
 }
 
 // Finish processing object.length(). This started earlier in handleDotDereference(), where
@@ -1774,7 +1753,6 @@
         const TType& type = intermNode->getAsTyped()->getType();
         if (type.isArray()) {
             if (type.isUnsizedArray()) {
-#ifndef GLSLANG_WEB
                 if (intermNode->getAsSymbolNode() && isIoResizeArray(type)) {
                     // We could be between a layout declaration that gives a built-in io array implicit size and
                     // a user redeclaration of that array, meaning we have to substitute its implicit size here
@@ -1785,17 +1763,19 @@
                         name == "gl_MeshPrimitivesNV") {
                         length = getIoArrayImplicitSize(type.getQualifier());
                     }
+                } else if (const auto typed = intermNode->getAsTyped()) {
+                    if (typed->getQualifier().builtIn == EbvSampleMask) {
+                        requireProfile(loc, EEsProfile, "the array size of gl_SampleMask and gl_SampleMaskIn is ceil(gl_MaxSamples/32)");
+                        length = (resources.maxSamples + 31) / 32;
+                    }
                 }
-#endif
                 if (length == 0) {
-#ifndef GLSLANG_WEB
                     if (intermNode->getAsSymbolNode() && isIoResizeArray(type))
                         error(loc, "", function->getName().c_str(), "array must first be sized by a redeclaration or layout qualifier");
                     else if (isRuntimeLength(*intermNode->getAsTyped())) {
                         // Create a unary op and let the back end handle it
                         return intermediate.addBuiltInFunctionCall(loc, EOpArrayLength, true, intermNode, TType(EbtInt));
                     } else
-#endif
                         error(loc, "", function->getName().c_str(), "array must be declared with a size before using this method");
                 }
             } else if (type.getOuterArrayNode()) {
@@ -1828,7 +1808,6 @@
 //
 void TParseContext::addInputArgumentConversions(const TFunction& function, TIntermNode*& arguments) const
 {
-#ifndef GLSLANG_WEB
     TIntermAggregate* aggregate = arguments->getAsAggregate();
 
     // Process each argument's conversion
@@ -1856,7 +1835,6 @@
             }
         }
     }
-#endif
 }
 
 //
@@ -1868,9 +1846,6 @@
 //
 TIntermTyped* TParseContext::addOutputArgumentConversions(const TFunction& function, TIntermAggregate& intermNode) const
 {
-#ifdef GLSLANG_WEB
-    return &intermNode;
-#else
     TIntermSequence& arguments = intermNode.getSequence();
 
     // Will there be any output conversions?
@@ -1938,7 +1913,6 @@
     conversionTree = intermediate.setAggregateOperator(conversionTree, EOpComma, intermNode.getType(), intermNode.getLoc());
 
     return conversionTree;
-#endif
 }
 
 TIntermTyped* TParseContext::addAssign(const TSourceLoc& loc, TOperator op, TIntermTyped* left, TIntermTyped* right)
@@ -2148,7 +2122,6 @@
     TString featureString;
     const char* feature = nullptr;
     switch (callNode.getOp()) {
-#ifndef GLSLANG_WEB
     case EOpTextureGather:
     case EOpTextureGatherOffset:
     case EOpTextureGatherOffsets:
@@ -2221,6 +2194,37 @@
         }
         break;
     }
+
+    case EOpTexture:
+    case EOpTextureLod:
+    {
+        if ((fnCandidate.getParamCount() > 2) && ((*argp)[1]->getAsTyped()->getType().getBasicType() == EbtFloat) &&
+            ((*argp)[1]->getAsTyped()->getType().getVectorSize() == 4) && fnCandidate[0].type->getSampler().shadow) {
+            featureString = fnCandidate.getName();
+            if (callNode.getOp() == EOpTexture)
+                featureString += "(..., float bias)";
+            else
+                featureString += "(..., float lod)";
+            feature = featureString.c_str();
+
+            if ((fnCandidate[0].type->getSampler().dim == Esd2D && fnCandidate[0].type->getSampler().arrayed) || //2D Array Shadow
+                (fnCandidate[0].type->getSampler().dim == EsdCube && fnCandidate[0].type->getSampler().arrayed && fnCandidate.getParamCount() > 3) || // Cube Array Shadow
+                (fnCandidate[0].type->getSampler().dim == EsdCube && callNode.getOp() == EOpTextureLod)) { // Cube Shadow
+                requireExtensions(loc, 1, &E_GL_EXT_texture_shadow_lod, feature);
+                if (isEsProfile()) {
+                    if (version < 320 &&
+                        !extensionsTurnedOn(Num_AEP_texture_cube_map_array, AEP_texture_cube_map_array))
+                        error(loc, "GL_EXT_texture_shadow_lod not supported for this ES version", feature, "");
+                    else
+                        profileRequires(loc, EEsProfile, 320, nullptr, feature);
+                } else { // Desktop
+                    profileRequires(loc, ~EEsProfile, 130, nullptr, feature);
+                }
+            }
+        }
+        break;
+    }
+
     case EOpSparseTextureGather:
     case EOpSparseTextureGatherOffset:
     case EOpSparseTextureGatherOffsets:
@@ -2289,7 +2293,6 @@
 
         break;
     }
-#endif
 
     case EOpTextureOffset:
     case EOpTextureFetchOffset:
@@ -2317,12 +2320,10 @@
 
         if (arg > 0) {
 
-#ifndef GLSLANG_WEB
             bool f16ShadowCompare = (*argp)[1]->getAsTyped()->getBasicType() == EbtFloat16 &&
                                     arg0->getType().getSampler().shadow;
             if (f16ShadowCompare)
                 ++arg;
-#endif
             if (! (*argp)[arg]->getAsTyped()->getQualifier().isConstant())
                 error(loc, "argument must be compile-time constant", "texel offset", "");
             else if ((*argp)[arg]->getAsConstantUnion()) {
@@ -2338,18 +2339,41 @@
             if (callNode.getOp() == EOpTextureOffset) {
                 TSampler s = arg0->getType().getSampler();
                 if (s.is2D() && s.isArrayed() && s.isShadow()) {
-                    if (isEsProfile())
+                    if (
+                        ((*argp)[1]->getAsTyped()->getType().getBasicType() == EbtFloat) && 
+                        ((*argp)[1]->getAsTyped()->getType().getVectorSize() == 4) &&
+                        (fnCandidate.getParamCount() == 4)) {
+                        featureString = fnCandidate.getName() + " for sampler2DArrayShadow";
+                        feature = featureString.c_str();
+                        requireExtensions(loc, 1, &E_GL_EXT_texture_shadow_lod, feature);
+                        profileRequires(loc, EEsProfile, 300, nullptr, feature);
+                        profileRequires(loc, ~EEsProfile, 130, nullptr, feature);
+                    }
+                    else if (isEsProfile())
                         error(loc, "TextureOffset does not support sampler2DArrayShadow : ", "sampler", "ES Profile");
                     else if (version <= 420)
                         error(loc, "TextureOffset does not support sampler2DArrayShadow : ", "sampler", "version <= 420");
                 }
             }
+
+            if (callNode.getOp() == EOpTextureLodOffset) {
+                TSampler s = arg0->getType().getSampler();
+                if (s.is2D() && s.isArrayed() && s.isShadow() &&
+                    ((*argp)[1]->getAsTyped()->getType().getBasicType() == EbtFloat) &&
+                    ((*argp)[1]->getAsTyped()->getType().getVectorSize() == 4) &&
+                    (fnCandidate.getParamCount() == 4)) {
+                        featureString = fnCandidate.getName() + " for sampler2DArrayShadow";
+                        feature = featureString.c_str();
+                        profileRequires(loc, EEsProfile, 300, nullptr, feature);
+                        profileRequires(loc, ~EEsProfile, 130, nullptr, feature);
+                        requireExtensions(loc, 1, &E_GL_EXT_texture_shadow_lod, feature);
+                }
+            }
         }
 
         break;
     }
 
-#ifndef GLSLANG_WEB
     case EOpTraceNV:
         if (!(*argp)[10]->getAsConstantUnion())
             error(loc, "argument must be compile-time constant", "payload number", "a");
@@ -2569,12 +2593,19 @@
             requireExtensions(loc, 1, &E_GL_EXT_shader_atomic_float2, fnCandidate.getName().c_str());
         }
 
-        const TIntermTyped* base = TIntermediate::findLValueBase(arg0, true , true);
-        const TType* refType = (base->getType().isReference()) ? base->getType().getReferentType() : nullptr;
-        const TQualifier& qualifier = (refType != nullptr) ? refType->getQualifier() : base->getType().getQualifier();
-        if (qualifier.storage != EvqShared && qualifier.storage != EvqBuffer && qualifier.storage != EvqtaskPayloadSharedEXT)
-            error(loc,"Atomic memory function can only be used for shader storage block member or shared variable.",
-            fnCandidate.getName().c_str(), "");
+        const TIntermTyped* base = TIntermediate::traverseLValueBase(arg0, true, true);
+        const char* errMsg = "Only l-values corresponding to shader block storage or shared variables can be used with "
+                             "atomic memory functions.";
+        if (base) {
+            const TType* refType = (base->getType().isReference()) ? base->getType().getReferentType() : nullptr;
+            const TQualifier& qualifier =
+                (refType != nullptr) ? refType->getQualifier() : base->getType().getQualifier();
+            if (qualifier.storage != EvqShared && qualifier.storage != EvqBuffer &&
+                qualifier.storage != EvqtaskPayloadSharedEXT)
+                error(loc, errMsg, fnCandidate.getName().c_str(), "");
+        } else {
+            error(loc, errMsg, fnCandidate.getName().c_str(), "");
+        }
 
         break;
     }
@@ -2582,20 +2613,57 @@
     case EOpInterpolateAtCentroid:
     case EOpInterpolateAtSample:
     case EOpInterpolateAtOffset:
-    case EOpInterpolateAtVertex:
-        // Make sure the first argument is an interpolant, or an array element of an interpolant
+    case EOpInterpolateAtVertex: {
         if (arg0->getType().getQualifier().storage != EvqVaryingIn) {
-            // It might still be an array element.
+            // Traverse down the left branch of arg0 to ensure this argument is a valid interpolant.
             //
-            // We could check more, but the semantics of the first argument are already met; the
-            // only way to turn an array into a float/vec* is array dereference and swizzle.
+            // For desktop GL >4.3 we effectively only need to ensure that arg0 represents an l-value from an
+            // input declaration.
             //
-            // ES and desktop 4.3 and earlier:  swizzles may not be used
-            // desktop 4.4 and later: swizzles may be used
-            bool swizzleOkay = (!isEsProfile()) && (version >= 440);
-            const TIntermTyped* base = TIntermediate::findLValueBase(arg0, swizzleOkay);
-            if (base == nullptr || base->getType().getQualifier().storage != EvqVaryingIn)
-                error(loc, "first argument must be an interpolant, or interpolant-array element", fnCandidate.getName().c_str(), "");
+            // For desktop GL <= 4.3 and ES, we must also ensure that swizzling is not used
+            //
+            // For ES, we must also ensure that a field selection operator (i.e., '.') is not used on a named
+            // struct.
+
+            const bool esProfile = isEsProfile();
+            const bool swizzleOkay = !esProfile && (version >= 440);
+
+            std::string interpolantErrorMsg = "first argument must be an interpolant, or interpolant-array element";
+            bool isValid = true; // Assume that the interpolant is valid until we find a condition making it invalid
+            bool isIn = false;   // Checks whether or not the interpolant is a shader input
+            bool structAccessOp = false; // Whether or not the previous node in the chain is a struct accessor
+            TIntermediate::traverseLValueBase(
+                arg0, swizzleOkay, false,
+                [&isValid, &isIn, &interpolantErrorMsg, esProfile, &structAccessOp](const TIntermNode& n) -> bool {
+                    auto* type = n.getAsTyped();
+                    if (type) {
+                        if (type->getType().getQualifier().storage == EvqVaryingIn) {
+                            isIn = true;
+                        }
+                        // If a field accessor was used, it can only be used to access a field with an input block, not a struct.
+                        if (structAccessOp && (type->getType().getBasicType() != EbtBlock)) {
+                            interpolantErrorMsg +=
+                                ". Using the field of a named struct as an interpolant argument is not "
+                                "allowed (ES-only).";
+                            isValid = false;
+                        }
+                    }
+
+                    // ES has different requirements for interpolants than GL
+                    if (esProfile) {
+                        // Swizzling will be taken care of by the 'swizzleOkay' argument passsed to traverseLValueBase,
+                        // so we only ned to check whether or not a field accessor has been used with a named struct.
+                        auto* binary = n.getAsBinaryNode();
+                        if (binary && (binary->getOp() == EOpIndexDirectStruct)) {
+                            structAccessOp = true;
+                        }
+                    }
+                    // Don't continue traversing if we know we have an invalid interpolant at this point.
+                    return isValid;
+                });
+            if (!isIn || !isValid) {
+                error(loc, interpolantErrorMsg.c_str(), fnCandidate.getName().c_str(), "");
+            }
         }
 
         if (callNode.getOp() == EOpInterpolateAtVertex) {
@@ -2611,7 +2679,7 @@
                 }
             }
         }
-        break;
+    } break;
 
     case EOpEmitStreamVertex:
     case EOpEndStreamPrimitive:
@@ -2680,7 +2748,6 @@
         }
 
         break;
-#endif
 
     default:
         break;
@@ -2743,9 +2810,6 @@
     }
 }
 
-#ifndef GLSLANG_WEB
-
-extern bool PureOperatorBuiltins;
 
 // Deprecated!  Use PureOperatorBuiltins == true instead, in which case this
 // functionality is handled in builtInOpCheck() instead of here.
@@ -2871,8 +2935,6 @@
     }
 }
 
-#endif
-
 //
 // Do any extra checking for a user function call.
 //
@@ -3031,7 +3093,6 @@
         bool errorReturn = false;
 
         switch(binaryNode->getOp()) {
-#ifndef GLSLANG_WEB
         case EOpIndexDirect:
         case EOpIndexIndirect:
             // ...  tessellation control shader ...
@@ -3048,7 +3109,6 @@
                 }
             }
             break; // left node is checked by base class
-#endif
         case EOpVectorSwizzle:
             errorReturn = lValueErrorCheck(loc, op, binaryNode->getLeft());
             if (!errorReturn) {
@@ -3266,10 +3326,6 @@
 //
 bool TParseContext::lineContinuationCheck(const TSourceLoc& loc, bool endOfComment)
 {
-#ifdef GLSLANG_WEB
-    return true;
-#endif
-
     const char* message = "line continuation";
 
     bool lineContinuationAllowed = (isEsProfile() && version >= 300) ||
@@ -3326,7 +3382,6 @@
     // it, in which case the type comes from the argument instead of from the
     // constructor function.
     switch (op) {
-#ifndef GLSLANG_WEB
     case EOpConstructNonuniform:
         if (node != nullptr && node->getAsTyped() != nullptr) {
             type.shallowCopy(node->getAsTyped()->getType());
@@ -3334,7 +3389,6 @@
             type.getQualifier().nonUniform = true;
         }
         break;
-#endif
     default:
         type.shallowCopy(function.getType());
         break;
@@ -3360,7 +3414,6 @@
     case EOpConstructMat4x2:
     case EOpConstructMat4x3:
     case EOpConstructMat4x4:
-#ifndef GLSLANG_WEB
     case EOpConstructDMat2x2:
     case EOpConstructDMat2x3:
     case EOpConstructDMat2x4:
@@ -3379,7 +3432,6 @@
     case EOpConstructF16Mat4x2:
     case EOpConstructF16Mat4x3:
     case EOpConstructF16Mat4x4:
-#endif
         constructingMatrix = true;
         break;
     default:
@@ -3446,7 +3498,6 @@
     if (op == EOpConstructNonuniform)
         constType = false;
 
-#ifndef GLSLANG_WEB
     switch (op) {
     case EOpConstructFloat16:
     case EOpConstructF16Vec2:
@@ -3486,7 +3537,6 @@
     default:
         break;
     }
-#endif
 
     // inherit constness from children
     if (constType) {
@@ -3507,7 +3557,6 @@
             case EOpConstructUVec2:
             case EOpConstructUVec3:
             case EOpConstructUVec4:
-#ifndef GLSLANG_WEB
             case EOpConstructUint8:
             case EOpConstructInt16:
             case EOpConstructUint16:
@@ -3531,7 +3580,6 @@
             case EOpConstructU64Vec2:
             case EOpConstructU64Vec3:
             case EOpConstructU64Vec4:
-#endif
                 // This was the list of valid ones, if they aren't converting from float
                 // and aren't making an array.
                 makeSpecConst = ! floatArgument && ! type.isArray();
@@ -3642,6 +3690,12 @@
     }
 
     TIntermTyped* typed = node->getAsTyped();
+    if (type.isCoopMat() && typed->getType().isCoopMat() &&
+        !type.sameCoopMatShapeAndUse(typed->getType())) {
+        error(loc, "Cooperative matrix type parameters mismatch", constructorString.c_str(), "");
+        return true;
+    }
+
     if (typed == nullptr) {
         error(loc, "constructor argument does not have a type", constructorString.c_str(), "");
         return true;
@@ -3820,8 +3874,6 @@
     }
 }
 
-#ifndef GLSLANG_WEB
-
 void TParseContext::atomicUintCheck(const TSourceLoc& loc, const TType& type, const TString& identifier)
 {
     if (type.getQualifier().storage == EvqUniform)
@@ -3846,8 +3898,6 @@
 
 }
 
-#endif // GLSLANG_WEB
-
 void TParseContext::transparentOpaqueCheck(const TSourceLoc& loc, const TType& type, const TString& identifier)
 {
     if (parsingBuiltins)
@@ -3931,17 +3981,27 @@
     if (!nonuniformOkay && qualifier.isNonUniform())
         error(loc, "for non-parameter, can only apply to 'in' or no storage qualifier", "nonuniformEXT", "");
 
-#ifndef GLSLANG_WEB
     if (qualifier.isSpirvByReference())
         error(loc, "can only apply to parameter", "spirv_by_reference", "");
 
     if (qualifier.isSpirvLiteral())
         error(loc, "can only apply to parameter", "spirv_literal", "");
-#endif
 
     // Storage qualifier isn't ready for memberQualifierCheck, we should skip invariantCheck for it.
     if (!isMemberCheck || structNestingLevel > 0)
         invariantCheck(loc, qualifier);
+
+    if (qualifier.isFullQuads()) {
+        if (qualifier.storage != EvqVaryingIn)
+            error(loc, "can only apply to input layout", "full_quads ", "");
+        intermediate.setReqFullQuadsMode();
+    }
+
+    if (qualifier.isQuadDeriv()) {
+        if (qualifier.storage != EvqVaryingIn)
+            error(loc, "can only apply to input layout", "quad_derivatives", "");
+        intermediate.setQuadDerivMode();
+    }
 }
 
 //
@@ -4043,12 +4103,10 @@
             if (! symbolTable.atBuiltInLevel())
                 error(loc, "global storage input qualifier cannot be used in a compute shader", "in", "");
             break;
-#ifndef GLSLANG_WEB
        case EShLangTessControl:
             if (qualifier.patch)
                 error(loc, "can only use on output in tessellation-control shader", "patch", "");
             break;
-#endif
         default:
             break;
         }
@@ -4087,12 +4145,10 @@
         case EShLangCompute:
             error(loc, "global storage output qualifier cannot be used in a compute shader", "out", "");
             break;
-#ifndef GLSLANG_WEB
         case EShLangTessEvaluation:
             if (qualifier.patch)
                 error(loc, "can only use on input in tessellation-evaluation shader", "patch", "");
             break;
-#endif
         default:
             break;
         }
@@ -4160,7 +4216,6 @@
     if (dst.precision == EpqNone || (force && src.precision != EpqNone))
         dst.precision = src.precision;
 
-#ifndef GLSLANG_WEB
     if (!force && ((src.coherent && (dst.devicecoherent || dst.queuefamilycoherent || dst.workgroupcoherent || dst.subgroupcoherent || dst.shadercallcoherent)) ||
                    (src.devicecoherent && (dst.coherent || dst.queuefamilycoherent || dst.workgroupcoherent || dst.subgroupcoherent || dst.shadercallcoherent)) ||
                    (src.queuefamilycoherent && (dst.coherent || dst.devicecoherent || dst.workgroupcoherent || dst.subgroupcoherent || dst.shadercallcoherent)) ||
@@ -4170,7 +4225,7 @@
         error(loc, "only one coherent/devicecoherent/queuefamilycoherent/workgroupcoherent/subgroupcoherent/shadercallcoherent qualifier allowed",
             GetPrecisionQualifierString(src.precision), "");
     }
-#endif
+
     // Layout qualifiers
     mergeObjectLayoutQualifiers(dst, src, false);
 
@@ -4182,7 +4237,6 @@
     MERGE_SINGLETON(smooth);
     MERGE_SINGLETON(flat);
     MERGE_SINGLETON(specConstant);
-#ifndef GLSLANG_WEB
     MERGE_SINGLETON(noContraction);
     MERGE_SINGLETON(nopersp);
     MERGE_SINGLETON(explicitInterp);
@@ -4203,15 +4257,13 @@
     MERGE_SINGLETON(readonly);
     MERGE_SINGLETON(writeonly);
     MERGE_SINGLETON(nonUniform);
-#endif
 
-#ifndef GLSLANG_WEB
     // SPIR-V storage class qualifier (GL_EXT_spirv_intrinsics)
     dst.spirvStorageClass = src.spirvStorageClass;
 
     // SPIR-V decorate qualifiers (GL_EXT_spirv_intrinsics)
-    if (src.hasSprivDecorate()) {
-        if (dst.hasSprivDecorate()) {
+    if (src.hasSpirvDecorate()) {
+        if (dst.hasSpirvDecorate()) {
             const TSpirvDecorate& srcSpirvDecorate = src.getSpirvDecorate();
             TSpirvDecorate& dstSpirvDecorate = dst.getSpirvDecorate();
             for (auto& decorate : srcSpirvDecorate.decorates) {
@@ -4238,7 +4290,6 @@
             dst.spirvDecorate = src.spirvDecorate;
         }
     }
-#endif
 
     if (repeated)
         error(loc, "replicated qualifiers", "", "");
@@ -4302,17 +4353,18 @@
         return defaultPrecision[publicType.basicType];
 }
 
-void TParseContext::precisionQualifierCheck(const TSourceLoc& loc, TBasicType baseType, TQualifier& qualifier)
+void TParseContext::precisionQualifierCheck(const TSourceLoc& loc, TBasicType baseType, TQualifier& qualifier, bool isCoopMat)
 {
     // Built-in symbols are allowed some ambiguous precisions, to be pinned down
     // later by context.
     if (! obeyPrecisionQualifiers() || parsingBuiltins)
         return;
 
-#ifndef GLSLANG_WEB
     if (baseType == EbtAtomicUint && qualifier.precision != EpqNone && qualifier.precision != EpqHigh)
         error(loc, "atomic counters can only be highp", "atomic_uint", "");
-#endif
+
+    if (isCoopMat)
+        return;
 
     if (baseType == EbtFloat || baseType == EbtUint || baseType == EbtInt || baseType == EbtSampler || baseType == EbtAtomicUint) {
         if (qualifier.precision == EpqNone) {
@@ -4358,7 +4410,8 @@
 //
 // Do size checking for an array type's size.
 //
-void TParseContext::arraySizeCheck(const TSourceLoc& loc, TIntermTyped* expr, TArraySize& sizePair, const char *sizeType)
+void TParseContext::arraySizeCheck(const TSourceLoc& loc, TIntermTyped* expr, TArraySize& sizePair,
+                                   const char* sizeType, const bool allowZero)
 {
     bool isConst = false;
     sizePair.node = nullptr;
@@ -4378,9 +4431,8 @@
             TIntermSymbol* symbol = expr->getAsSymbolNode();
             if (symbol && symbol->getConstArray().size() > 0)
                 size = symbol->getConstArray()[0].getIConst();
-        } else if (expr->getAsUnaryNode() &&
-                   expr->getAsUnaryNode()->getOp() == glslang::EOpArrayLength &&
-                   expr->getAsUnaryNode()->getOperand()->getType().isCoopMat()) {
+        } else if (expr->getAsUnaryNode() && expr->getAsUnaryNode()->getOp() == glslang::EOpArrayLength &&
+                   expr->getAsUnaryNode()->getOperand()->getType().isCoopMatNV()) {
             isConst = true;
             size = 1;
             sizePair.node = expr->getAsUnaryNode();
@@ -4394,9 +4446,16 @@
         return;
     }
 
-    if (size <= 0) {
-        error(loc, sizeType, "", "must be a positive integer");
-        return;
+    if (allowZero) {
+        if (size < 0) {
+            error(loc, sizeType, "", "must be a non-negative integer");
+            return;
+        }
+    } else {
+        if (size <= 0) {
+            error(loc, sizeType, "", "must be a positive integer");
+            return;
+        }
     }
 }
 
@@ -4494,8 +4553,6 @@
         (qualifier.storage != EvqTemporary && qualifier.storage != EvqGlobal && qualifier.storage != EvqShared && qualifier.storage != EvqConst))
         error(loc, "only outermost dimension of an array of arrays can be a specialization constant", "[]", "");
 
-#ifndef GLSLANG_WEB
-
     // desktop always allows outer-dimension-unsized variable arrays,
     if (!isEsProfile())
         return;
@@ -4535,8 +4592,6 @@
         break;
     }
 
-#endif
-
     // last member of ssbo block exception:
     if (qualifier.storage == EvqBuffer && lastMember)
         return;
@@ -4581,7 +4636,6 @@
             if (symbolTable.atGlobalLevel())
                 trackLinkage(*symbol);
 
-#ifndef GLSLANG_WEB
             if (! symbolTable.atBuiltInLevel()) {
                 if (isIoResizeArray(type)) {
                     ioArraySymbolResizeList.push_back(symbol);
@@ -4589,7 +4643,6 @@
                 } else
                     fixIoArraySize(loc, symbol->getWritableType());
             }
-#endif
 
             return;
         }
@@ -4627,7 +4680,6 @@
         return;
     }
 
-#ifndef GLSLANG_WEB
     if (existingType.isSizedArray()) {
         // be more leniant for input arrays to geometry shaders and tessellation control outputs, where the redeclaration is the same size
         if (! (isIoResizeArray(type) && existingType.getOuterArraySize() == type.getOuterArraySize()))
@@ -4641,11 +4693,8 @@
 
     if (isIoResizeArray(type))
         checkIoArraysConsistency(loc);
-#endif
 }
 
-#ifndef GLSLANG_WEB
-
 // Policy and error check for needing a runtime sized array.
 void TParseContext::checkRuntimeSizable(const TSourceLoc& loc, const TIntermTyped& base)
 {
@@ -4728,8 +4777,6 @@
     }
 }
 
-#endif // GLSLANG_WEB
-
 // Returns true if the first argument to the #line directive is the line number for the next line.
 //
 // Desktop, pre-version 3.30:  "After processing this directive
@@ -4772,7 +4819,6 @@
 TSymbol* TParseContext::redeclareBuiltinVariable(const TSourceLoc& loc, const TString& identifier,
                                                  const TQualifier& qualifier, const TShaderQualifiers& publicType)
 {
-#ifndef GLSLANG_WEB
     if (! builtInName(identifier) || symbolTable.atBuiltInLevel() || ! symbolTable.atGlobalLevel())
         return nullptr;
 
@@ -4935,7 +4981,6 @@
 
         return symbol;
     }
-#endif
 
     return nullptr;
 }
@@ -4947,7 +4992,6 @@
 void TParseContext::redeclareBuiltinBlock(const TSourceLoc& loc, TTypeList& newTypeList, const TString& blockName,
     const TString* instanceName, TArraySizes* arraySizes)
 {
-#ifndef GLSLANG_WEB
     const char* feature = "built-in block redeclaration";
     profileRequires(loc, EEsProfile, 320, Num_AEP_shader_io_blocks, AEP_shader_io_blocks, feature);
     profileRequires(loc, ~EEsProfile, 410, E_GL_ARB_separate_shader_objects, feature);
@@ -5163,7 +5207,6 @@
 
     // Save it in the AST for linker use.
     trackLinkage(*block);
-#endif // GLSLANG_WEB
 }
 
 void TParseContext::paramCheckFixStorage(const TSourceLoc& loc, const TStorageQualifier& qualifier, TType& type)
@@ -5192,7 +5235,6 @@
 
 void TParseContext::paramCheckFix(const TSourceLoc& loc, const TQualifier& qualifier, TType& type)
 {
-#ifndef GLSLANG_WEB
     if (qualifier.isMemory()) {
         type.getQualifier().volatil   = qualifier.volatil;
         type.getQualifier().coherent  = qualifier.coherent;
@@ -5206,7 +5248,6 @@
         type.getQualifier().writeonly = qualifier.writeonly;
         type.getQualifier().restrict  = qualifier.restrict;
     }
-#endif
 
     if (qualifier.isAuxiliary() ||
         qualifier.isInterpolation())
@@ -5223,7 +5264,6 @@
     }
     if (qualifier.isNonUniform())
         type.getQualifier().nonUniform = qualifier.nonUniform;
-#ifndef GLSLANG_WEB
     if (qualifier.isSpirvByReference())
         type.getQualifier().setSpirvByReference();
     if (qualifier.isSpirvLiteral()) {
@@ -5232,7 +5272,6 @@
             type.getQualifier().setSpirvLiteral();
         else
             error(loc, "cannot use spirv_literal qualifier", type.getBasicTypeString().c_str(), "");
-#endif
     }
 
     paramCheckFixStorage(loc, qualifier.storage, type);
@@ -5269,15 +5308,12 @@
 
 void TParseContext::referenceCheck(const TSourceLoc& loc, const TType& type, const char* op)
 {
-#ifndef GLSLANG_WEB
     if (containsFieldWithBasicType(type, EbtReference))
         error(loc, "can't use with reference types", op, "");
-#endif
 }
 
 void TParseContext::storage16BitAssignmentCheck(const TSourceLoc& loc, const TType& type, const char* op)
 {
-#ifndef GLSLANG_WEB
     if (type.getBasicType() == EbtStruct && containsFieldWithBasicType(type, EbtFloat16))
         requireFloat16Arithmetic(loc, op, "can't use with structs containing float16");
 
@@ -5307,7 +5343,6 @@
 
     if (type.isArray() && type.getBasicType() == EbtUint8)
         requireInt8Arithmetic(loc, op, "can't use with arrays containing uint8");
-#endif
 }
 
 void TParseContext::specializationCheck(const TSourceLoc& loc, const TType& type, const char* op)
@@ -5359,7 +5394,6 @@
 //
 void TParseContext::inductiveLoopCheck(const TSourceLoc& loc, TIntermNode* init, TIntermLoop* loop)
 {
-#ifndef GLSLANG_WEB
     // loop index init must exist and be a declaration, which shows up in the AST as an aggregate of size 1 of the declaration
     bool badInit = false;
     if (! init || ! init->getAsAggregate() || init->getAsAggregate()->getSequence().size() != 1)
@@ -5455,10 +5489,8 @@
 
     // the body
     inductiveLoopBodyCheck(loop->getBody(), loopIndex, symbolTable);
-#endif
 }
 
-#ifndef GLSLANG_WEB
 // Do limit checks for built-in arrays.
 void TParseContext::arrayLimitCheck(const TSourceLoc& loc, const TString& identifier, int size)
 {
@@ -5473,7 +5505,6 @@
     else if (identifier.compare("gl_CullDistancePerViewNV") == 0)
         limitCheck(loc, size, "gl_MaxCullDistances", "gl_CullDistancePerViewNV array size");
 }
-#endif // GLSLANG_WEB
 
 // See if the provided value is less than or equal to the symbol indicated by limit,
 // which should be a constant in the symbol table.
@@ -5487,8 +5518,6 @@
         error(loc, "must be less than or equal to", feature, "%s (%d)", limit, constArray[0].getIConst());
 }
 
-#ifndef GLSLANG_WEB
-
 //
 // Do any additional error checking, etc., once we know the parsing is done.
 //
@@ -5554,7 +5583,6 @@
         }
     }
 }
-#endif // GLSLANG_WEB
 
 //
 // Layout qualifier stuff.
@@ -5598,7 +5626,6 @@
         publicType.qualifier.layoutPacking = ElpStd140;
         return;
     }
-#ifndef GLSLANG_WEB
     if (id == TQualifier::getLayoutPackingString(ElpStd430)) {
         requireProfile(loc, EEsProfile | ECoreProfile | ECompatibilityProfile, "std430");
         profileRequires(loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_shader_storage_buffer_object, "std430");
@@ -5848,6 +5875,15 @@
             publicType.shaderQualifiers.layoutOverrideCoverage = true;
             return;
         }
+        if (id == "full_quads")
+        {
+            const char* feature = "full_quads qualifier";
+            requireProfile(loc, ECompatibilityProfile | ECoreProfile | EEsProfile, feature);
+            profileRequires(loc, ECoreProfile | ECompatibilityProfile, 140, E_GL_EXT_shader_quad_control, feature);
+            profileRequires(loc, EEsProfile, 310, E_GL_EXT_shader_quad_control, feature);
+            publicType.qualifier.layoutFullQuads = true;
+            return;
+        }
     }
     if (language == EShLangVertex ||
         language == EShLangTessControl ||
@@ -5896,7 +5932,16 @@
         publicType.shaderQualifiers.layoutPrimitiveCulling = true;
         return;
     }
-#endif
+
+    if (id == "quad_derivatives")
+    {
+        const char* feature = "quad_derivatives qualifier";
+        requireProfile(loc, ECompatibilityProfile | ECoreProfile | EEsProfile, feature);
+        profileRequires(loc, ECoreProfile | ECompatibilityProfile, 140, E_GL_EXT_shader_quad_control, feature);
+        profileRequires(loc, EEsProfile, 310, E_GL_EXT_shader_quad_control, feature);
+        publicType.qualifier.layoutQuadDeriv = true;
+        return;
+    }
 
     error(loc, "unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)", id.c_str(), "");
 }
@@ -5984,10 +6029,8 @@
             error(loc, "needs a literal integer", "set", "");
         return;
     } else if (id == "binding") {
-#ifndef GLSLANG_WEB
         profileRequires(loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, "binding");
         profileRequires(loc, EEsProfile, 310, nullptr, "binding");
-#endif
         if ((unsigned int)value >= TQualifier::layoutBindingEnd)
             error(loc, "binding is too large", id.c_str(), "");
         else
@@ -6010,7 +6053,6 @@
             error(loc, "needs a literal integer", "constant_id", "");
         return;
     }
-#ifndef GLSLANG_WEB
     if (id == "component") {
         requireProfile(loc, ECoreProfile | ECompatibilityProfile, "component");
         profileRequires(loc, ECoreProfile | ECompatibilityProfile, 440, E_GL_ARB_enhanced_layouts, "component");
@@ -6108,10 +6150,8 @@
             error(loc, "needs a literal integer", "buffer_reference_align", "");
         return;
     }
-#endif
 
     switch (language) {
-#ifndef GLSLANG_WEB
     case EShLangTessControl:
         if (id == "vertices") {
             if (value == 0)
@@ -6208,17 +6248,14 @@
 
     case EShLangTask:
         // Fall through
-#endif
     case EShLangCompute:
         if (id.compare(0, 11, "local_size_") == 0) {
-#ifndef GLSLANG_WEB
             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, 430, E_GL_ARB_compute_shader, "gl_WorkGroupSize");
             }
-#endif
             if (nonLiteral)
                 error(loc, "needs a literal integer", "local_size", "");
             if (id.size() == 12 && value == 0) {
@@ -6285,7 +6322,6 @@
     if (src.hasPacking())
         dst.layoutPacking = src.layoutPacking;
 
-#ifndef GLSLANG_WEB
     if (src.hasStream())
         dst.layoutStream = src.layoutStream;
     if (src.hasFormat())
@@ -6294,7 +6330,6 @@
         dst.layoutXfbBuffer = src.layoutXfbBuffer;
     if (src.hasBufferReferenceAlign())
         dst.layoutBufferReferenceAlign = src.layoutBufferReferenceAlign;
-#endif
 
     if (src.hasAlign())
         dst.layoutAlign = src.layoutAlign;
@@ -6312,7 +6347,6 @@
         if (src.hasSpecConstantId())
             dst.layoutSpecConstantId = src.layoutSpecConstantId;
 
-#ifndef GLSLANG_WEB
         if (src.hasComponent())
             dst.layoutComponent = src.layoutComponent;
         if (src.hasIndex())
@@ -6337,6 +6371,10 @@
             dst.layoutSecondaryViewportRelativeOffset = src.layoutSecondaryViewportRelativeOffset;
         if (src.layoutShaderRecord)
             dst.layoutShaderRecord = true;
+        if (src.layoutFullQuads)
+            dst.layoutFullQuads = true;
+        if (src.layoutQuadDeriv)
+            dst.layoutQuadDeriv = true;
         if (src.layoutBindlessSampler)
             dst.layoutBindlessSampler = true;
         if (src.layoutBindlessImage)
@@ -6347,7 +6385,6 @@
             dst.pervertexEXT = true;
         if (src.layoutHitObjectShaderRecordNV)
             dst.layoutHitObjectShaderRecordNV = true;
-#endif
     }
 }
 
@@ -6383,10 +6420,7 @@
         switch (qualifier.storage) {
         case EvqVaryingIn:
         case EvqVaryingOut:
-            if (!type.getQualifier().isTaskMemory() &&
-#ifndef GLSLANG_WEB
-                !type.getQualifier().hasSprivDecorate() &&
-#endif
+            if (!type.getQualifier().isTaskMemory() && !type.getQualifier().hasSpirvDecorate() &&
                 (type.getBasicType() != EbtBlock ||
                  (!(*type.getStruct())[0].type->getQualifier().hasLocation() &&
                    (*type.getStruct())[0].type->getQualifier().builtIn == EbvNone)))
@@ -6448,11 +6482,6 @@
 // Do layout error checking with respect to a type.
 void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type)
 {
-#ifndef GLSLANG_WEB
-    if (extensionTurnedOn(E_GL_EXT_spirv_intrinsics))
-        return; // Skip any check if GL_EXT_spirv_intrinsics is turned on
-#endif
-
     const TQualifier& qualifier = type.getQualifier();
 
     // first, intra-layout qualifier-only error checking
@@ -6500,15 +6529,14 @@
         case EvqtaskPayloadSharedEXT:
             error(loc, "cannot apply to taskPayloadSharedEXT", "location", "");
             break;
-#ifndef GLSLANG_WEB
         case EvqPayload:
         case EvqPayloadIn:
         case EvqHitAttr:
         case EvqCallableData:
         case EvqCallableDataIn:
         case EvqHitObjectAttrNV:
+        case EvqSpirvStorageClass:
             break;
-#endif
         case EvqTileImageEXT:
             break;
         default:
@@ -6526,7 +6554,6 @@
             error(loc, "fragment outputs or tileImageEXTs sharing the same location", "location", "%d must be the same basic type", repeated);
     }
 
-#ifndef GLSLANG_WEB
     if (qualifier.hasXfbOffset() && qualifier.hasXfbBuffer()) {
         if (type.isUnsizedArray()) {
             error(loc, "unsized array", "xfb_offset", "in buffer %d", qualifier.layoutXfbBuffer);
@@ -6555,7 +6582,6 @@
         if (! intermediate.setXfbBufferStride(qualifier.layoutXfbBuffer, qualifier.layoutXfbStride))
             error(loc, "all stride settings must match for xfb buffer", "xfb_stride", "%d", qualifier.layoutXfbBuffer);
     }
-#endif
 
     if (qualifier.hasBinding()) {
         // Binding checking, from the spec:
@@ -6566,7 +6592,7 @@
         // an array of size N, all elements of the array from binding through binding + N - 1 must be within this
         // range."
         //
-        if (! type.isOpaque() && type.getBasicType() != EbtBlock)
+        if (!type.isOpaque() && type.getBasicType() != EbtBlock && type.getBasicType() != EbtSpirvType)
             error(loc, "requires block, or sampler/image, or atomic-counter type", "binding", "");
         if (type.getBasicType() == EbtSampler) {
             int lastBinding = qualifier.layoutBinding;
@@ -6575,16 +6601,12 @@
                     if (type.isSizedArray())
                         lastBinding += (type.getCumulativeArraySize() - 1);
                     else {
-#ifndef GLSLANG_WEB
                         warn(loc, "assuming binding count of one for compile-time checking of binding numbers for unsized array", "[]", "");
-#endif
                     }
                 }
             }
-#ifndef GLSLANG_WEB
             if (spvVersion.vulkan == 0 && lastBinding >= resources.maxCombinedTextureImageUnits)
                 error(loc, "sampler binding not less than gl_MaxCombinedTextureImageUnits", "binding", type.isArray() ? "(using array)" : "");
-#endif
         }
         if (type.isAtomic() && !spvVersion.vulkanRelaxed) {
             if (qualifier.layoutBinding >= (unsigned int)resources.maxAtomicCounterBindings) {
@@ -6740,7 +6762,6 @@
         // output block declarations, and output block member declarations."
 
         switch (qualifier.storage) {
-#ifndef GLSLANG_WEB
         case EvqVaryingIn:
         {
             const char* feature = "location qualifier on input";
@@ -6775,7 +6796,6 @@
             }
             break;
         }
-#endif
         case EvqUniform:
         case EvqBuffer:
         {
@@ -6854,7 +6874,6 @@
 // For places that can't have shader-level layout qualifiers
 void TParseContext::checkNoShaderLayouts(const TSourceLoc& loc, const TShaderQualifiers& shaderQualifiers)
 {
-#ifndef GLSLANG_WEB
     const char* message = "can only apply to a standalone qualifier";
 
     if (shaderQualifiers.geometry != ElgNone)
@@ -6905,14 +6924,12 @@
         error(loc, message, TQualifier::getInterlockOrderingString(shaderQualifiers.interlockOrdering), "");
     if (shaderQualifiers.layoutPrimitiveCulling)
         error(loc, "can only be applied as standalone", "primitive_culling", "");
-#endif
 }
 
 // Correct and/or advance an object's offset layout qualifier.
 void TParseContext::fixOffset(const TSourceLoc& loc, TSymbol& symbol)
 {
     const TQualifier& qualifier = symbol.getType().getQualifier();
-#ifndef GLSLANG_WEB
     if (symbol.getType().isAtomic()) {
         if (qualifier.hasBinding() && (int)qualifier.layoutBinding < resources.maxAtomicCounterBindings) {
 
@@ -6946,7 +6963,6 @@
             atomicUintOffsets[qualifier.layoutBinding] = offset + numOffsets;
         }
     }
-#endif
 }
 
 //
@@ -6961,10 +6977,6 @@
         return nullptr;
     }
 
-#ifdef GLSLANG_WEB
-    return findFunctionExact(loc, call, builtIn);
-#endif
-
     const TFunction* function = nullptr;
 
     // debugPrintfEXT has var args and is in the symbol table as "debugPrintfEXT()",
@@ -7291,7 +7303,6 @@
 {
     TIntermTyped* result = nullptr;
 
-#ifndef GLSLANG_WEB
     if (function->getBuiltInOp() != EOpNull) {
         return nullptr;
     }
@@ -7342,7 +7353,6 @@
             result = arguments->getAsTyped();
         }
     }
-#endif
 
     return result;
 }
@@ -7351,7 +7361,6 @@
 // to establish defaults.
 void TParseContext::declareTypeDefaults(const TSourceLoc& loc, const TPublicType& publicType)
 {
-#ifndef GLSLANG_WEB
     if (publicType.basicType == EbtAtomicUint && publicType.qualifier.hasBinding()) {
         if (publicType.qualifier.layoutBinding >= (unsigned int)resources.maxAtomicCounterBindings) {
             error(loc, "atomic_uint binding is too large", "binding", "");
@@ -7368,19 +7377,51 @@
 
     if (publicType.qualifier.hasLayout() && !publicType.qualifier.hasBufferReference())
         warn(loc, "useless application of layout qualifier", "layout", "");
-#endif
 }
 
-bool TParseContext::vkRelaxedRemapUniformVariable(const TSourceLoc& loc, TString& identifier, const TPublicType&,
+void TParseContext::coopMatTypeParametersCheck(const TSourceLoc& loc, const TPublicType& publicType)
+{
+    if (parsingBuiltins)
+        return;
+    if (publicType.isCoopmatKHR()) {
+        if (publicType.typeParameters == nullptr) {
+            error(loc, "coopmat missing type parameters", "", "");
+            return;
+        }
+        switch (publicType.typeParameters->basicType) {
+        case EbtFloat:
+        case EbtFloat16:
+        case EbtInt:
+        case EbtInt8:
+        case EbtInt16:
+        case EbtUint:
+        case EbtUint8:
+        case EbtUint16:
+            break;
+        default:
+            error(loc, "coopmat invalid basic type", TType::getBasicString(publicType.typeParameters->basicType), "");
+            break;
+        }
+        if (publicType.typeParameters->arraySizes->getNumDims() != 4) {
+            error(loc, "coopmat incorrect number of type parameters", "", "");
+            return;
+        }
+        int use = publicType.typeParameters->arraySizes->getDimSize(3);
+        if (use < 0 || use > 2) {
+            error(loc, "coopmat invalid matrix Use", "", "");
+            return;
+        }
+    }
+}
+
+bool TParseContext::vkRelaxedRemapUniformVariable(const TSourceLoc& loc, TString& identifier, const TPublicType& publicType,
     TArraySizes*, TIntermTyped* initializer, TType& type)
 {
+    vkRelaxedRemapUniformMembers(loc, publicType, type, identifier);
+
     if (parsingBuiltins || symbolTable.atBuiltInLevel() || !symbolTable.atGlobalLevel() ||
         type.getQualifier().storage != EvqUniform ||
-        !(type.containsNonOpaque()
-#ifndef GLSLANG_WEB
-            || type.getBasicType() == EbtAtomicUint
-#endif
-        )) {
+        !(type.containsNonOpaque() || type.getBasicType() == EbtAtomicUint || (type.containsSampler() && type.isStruct()))) {
         return false;
     }
 
@@ -7409,7 +7450,6 @@
     int bufferBinding = TQualifier::layoutBindingEnd;
     TVariable* updatedBlock = nullptr;
 
-#ifndef GLSLANG_WEB
     // Convert atomic_uint into members of a buffer block
     if (type.isAtomic()) {
         type.setBasicType(EbtUint);
@@ -7425,7 +7465,6 @@
         growAtomicCounterBlock(bufferBinding, loc, type, identifier, nullptr);
         updatedBlock = atomicCounterBuffers[bufferBinding];
     }
-#endif
 
     if (!updatedBlock) {
         growGlobalUniformBlock(loc, type, identifier, nullptr);
@@ -7456,6 +7495,251 @@
     return true;
 }
 
+template <typename Function>
+static void ForEachOpaque(const TType& type, const TString& path, Function callback)
+{
+    auto recursion = [&callback](const TType& type, const TString& path, bool skipArray, auto& recursion) -> void {
+        if (!skipArray && type.isArray())
+        {
+            std::vector<int> indices(type.getArraySizes()->getNumDims());
+            for (int flatIndex = 0;
+                 flatIndex < type.getArraySizes()->getCumulativeSize();
+                 ++flatIndex)
+            {
+                TString subscriptPath = path;
+                for (size_t dimIndex = 0; dimIndex < indices.size(); ++dimIndex)
+                {
+                    int index = indices[dimIndex];
+                    subscriptPath.append("[");
+                    subscriptPath.append(String(index));
+                    subscriptPath.append("]");
+                }
+
+                recursion(type, subscriptPath, true, recursion);
+
+                for (size_t dimIndex = 0; dimIndex < indices.size(); ++dimIndex)
+                {
+                    ++indices[dimIndex];
+                    if (indices[dimIndex] < type.getArraySizes()->getDimSize(dimIndex))
+                        break;
+                    else
+                        indices[dimIndex] = 0;
+                }
+            }
+        }
+
+        else if (type.isStruct() && type.containsOpaque())
+        {
+            const TTypeList& types = *type.getStruct();
+            for (const TTypeLoc& typeLoc : types)
+            {
+                TString nextPath = path;
+                nextPath.append(".");
+                nextPath.append(typeLoc.type->getFieldName());
+
+                recursion(*(typeLoc.type), nextPath, false, recursion);
+            }
+        }
+
+        else if (type.isOpaque())
+        {
+            callback(type, path);
+        }
+    };
+
+    recursion(type, path, false, recursion);
+}
+
+void TParseContext::vkRelaxedRemapUniformMembers(const TSourceLoc& loc, const TPublicType& publicType, const TType& type,
+    const TString& identifier)
+{
+    if (!type.isStruct() || !type.containsOpaque())
+        return;
+
+    ForEachOpaque(type, identifier,
+                  [&publicType, &loc, this](const TType& type, const TString& path) {
+                      TArraySizes arraySizes = {};
+                      if (type.getArraySizes()) arraySizes = *type.getArraySizes();
+                      TTypeParameters typeParameters = {};
+                      if (type.getTypeParameters()) typeParameters = *type.getTypeParameters();
+
+                      TPublicType memberType{};
+                      memberType.basicType = type.getBasicType();
+                      memberType.sampler = type.getSampler();
+                      memberType.qualifier = type.getQualifier();
+                      memberType.vectorSize = type.getVectorSize();
+                      memberType.matrixCols = type.getMatrixCols();
+                      memberType.matrixRows = type.getMatrixRows();
+                      memberType.coopmatNV = type.isCoopMatNV();
+                      memberType.coopmatKHR = type.isCoopMatKHR();
+                      memberType.arraySizes = nullptr;
+                      memberType.userDef = nullptr;
+                      memberType.loc = loc;
+                      memberType.typeParameters = (type.getTypeParameters() ? &typeParameters : nullptr);
+                      memberType.spirvType = nullptr;
+
+                      memberType.qualifier.storage = publicType.qualifier.storage;
+                      memberType.shaderQualifiers = publicType.shaderQualifiers;
+
+                      TString& structMemberName = *NewPoolTString(path.c_str()); // A copy is required due to declareVariable() signature.
+                      declareVariable(loc, structMemberName, memberType, nullptr, nullptr);
+                  });
+}
+
+void TParseContext::vkRelaxedRemapFunctionParameter(TFunction* function, TParameter& param, std::vector<int>* newParams)
+{
+    function->addParameter(param);
+
+    if (!param.type->isStruct() || !param.type->containsOpaque())
+        return;
+
+    ForEachOpaque(*param.type, (param.name ? *param.name : param.type->getFieldName()),
+                  [function, param, newParams](const TType& type, const TString& path) {
+                      TString* memberName = NewPoolTString(path.c_str());
+
+                      TType* memberType = new TType();
+                      memberType->shallowCopy(type);
+                      memberType->getQualifier().storage = param.type->getQualifier().storage;
+                      memberType->clearArraySizes();
+
+                      TParameter memberParam = {};
+                      memberParam.name = memberName;
+                      memberParam.type = memberType;
+                      memberParam.defaultValue = nullptr;
+                      function->addParameter(memberParam);
+                      if (newParams)
+                          newParams->push_back(function->getParamCount()-1);
+                  });
+}
+
+//
+// Generates a valid GLSL dereferencing string for the input TIntermNode
+//
+struct AccessChainTraverser : public TIntermTraverser {
+    AccessChainTraverser() : TIntermTraverser(false, false, true)
+    {}
+
+    TString path = "";
+
+    bool visitBinary(TVisit, TIntermBinary* binary) override {
+        if (binary->getOp() == EOpIndexDirectStruct)
+        {
+            const TTypeList& members = *binary->getLeft()->getType().getStruct();
+            const TTypeLoc& member =
+                members[binary->getRight()->getAsConstantUnion()->getConstArray()[0].getIConst()];
+            TString memberName = member.type->getFieldName();
+
+            if (path != "")
+                path.append(".");
+
+            path.append(memberName);
+        }
+
+        if (binary->getOp() == EOpIndexDirect)
+        {
+            const TConstUnionArray& indices = binary->getRight()->getAsConstantUnion()->getConstArray();
+            for (int index = 0; index < indices.size(); ++index)
+            {
+                path.append("[");
+                path.append(String(indices[index].getIConst()));
+                path.append("]");
+            }
+        }
+
+        return true;
+    }
+
+    void visitSymbol(TIntermSymbol* symbol) override {
+        if (!IsAnonymous(symbol->getName()))
+            path.append(symbol->getName());
+    }
+};
+
+TIntermNode* TParseContext::vkRelaxedRemapFunctionArgument(const TSourceLoc& loc, TFunction* function, TIntermTyped* intermTyped)
+{
+    AccessChainTraverser accessChainTraverser{};
+    intermTyped->traverse(&accessChainTraverser);
+
+    TParameter param = { NewPoolTString(accessChainTraverser.path.c_str()), new TType };
+    param.type->shallowCopy(intermTyped->getType());
+
+    std::vector<int> newParams = {};
+    vkRelaxedRemapFunctionParameter(function, param, &newParams);
+
+    if (intermTyped->getType().isOpaque())
+    {
+        TIntermNode* remappedArgument = intermTyped;
+        {
+            TIntermSymbol* intermSymbol = nullptr;
+            TSymbol* symbol = symbolTable.find(*param.name);
+            if (symbol && symbol->getAsVariable())
+                intermSymbol = intermediate.addSymbol(*symbol->getAsVariable(), loc);
+            else
+            {
+                TVariable* variable = new TVariable(param.name, *param.type);
+                intermSymbol = intermediate.addSymbol(*variable, loc);
+            }
+
+            remappedArgument = intermSymbol;
+        }
+
+        return remappedArgument;
+    }
+    else if (!(intermTyped->isStruct() && intermTyped->getType().containsOpaque()))
+        return intermTyped;
+    else
+    {
+        TIntermNode* remappedArgument = intermTyped;
+        {
+            TSymbol* symbol = symbolTable.find(*param.name);
+            if (symbol && symbol->getAsVariable())
+                remappedArgument = intermediate.addSymbol(*symbol->getAsVariable(), loc);
+        }
+
+        if (!newParams.empty())
+            remappedArgument = intermediate.makeAggregate(remappedArgument, loc);
+
+        for (int paramIndex : newParams)
+        {
+            TParameter& newParam = function->operator[](paramIndex);
+            TIntermSymbol* intermSymbol = nullptr;
+            TSymbol* symbol = symbolTable.find(*newParam.name);
+            if (symbol && symbol->getAsVariable())
+                intermSymbol = intermediate.addSymbol(*symbol->getAsVariable(), loc);
+            else
+            {
+                TVariable* variable = new TVariable(newParam.name, *newParam.type);
+                intermSymbol = intermediate.addSymbol(*variable, loc);
+            }
+
+            remappedArgument = intermediate.growAggregate(remappedArgument, intermSymbol);
+        }
+
+        return remappedArgument;
+    }
+}
+
+TIntermTyped* TParseContext::vkRelaxedRemapDotDereference(const TSourceLoc&, TIntermTyped& base, const TType& member,
+    const TString& identifier)
+{
+    if (!member.isOpaque())
+        return &base;
+
+    AccessChainTraverser traverser{};
+    base.traverse(&traverser);
+    if (!traverser.path.empty())
+        traverser.path.append(".");
+    traverser.path.append(identifier);
+
+    const TSymbol* symbol = symbolTable.find(traverser.path);
+    if (!symbol)
+        return &base;
+
+    TIntermTyped* result = intermediate.addSymbol(*symbol->getAsVariable());
+    result->setType(symbol->getType());
+    return result;
+}
+
 //
 // Do everything necessary to handle a variable (non-block) declaration.
 // Either redeclaring a variable, or making a new one, updating the symbol
@@ -7486,29 +7770,43 @@
 
     }
 
-    if (type.isCoopMat()) {
+    if (type.isCoopMatKHR()) {
         intermediate.setUseVulkanMemoryModel();
         intermediate.setUseStorageBuffer();
 
-        if (!publicType.typeParameters || publicType.typeParameters->getNumDims() != 4) {
+        if (!publicType.typeParameters || !publicType.typeParameters->arraySizes ||
+            publicType.typeParameters->arraySizes->getNumDims() != 3) {
+            error(loc, "unexpected number type parameters", identifier.c_str(), "");
+        }
+        if (publicType.typeParameters) {
+            if (!isTypeFloat(publicType.typeParameters->basicType) && !isTypeInt(publicType.typeParameters->basicType)) {
+                error(loc, "expected 8, 16, 32, or 64 bit signed or unsigned integer or 16, 32, or 64 bit float type", identifier.c_str(), "");
+            }
+        }
+    }
+    else if (type.isCoopMatNV()) {
+        intermediate.setUseVulkanMemoryModel();
+        intermediate.setUseStorageBuffer();
+
+        if (!publicType.typeParameters || publicType.typeParameters->arraySizes->getNumDims() != 4) {
             error(loc, "expected four type parameters", identifier.c_str(), "");
         }
         if (publicType.typeParameters) {
             if (isTypeFloat(publicType.basicType) &&
-                publicType.typeParameters->getDimSize(0) != 16 &&
-                publicType.typeParameters->getDimSize(0) != 32 &&
-                publicType.typeParameters->getDimSize(0) != 64) {
+                publicType.typeParameters->arraySizes->getDimSize(0) != 16 &&
+                publicType.typeParameters->arraySizes->getDimSize(0) != 32 &&
+                publicType.typeParameters->arraySizes->getDimSize(0) != 64) {
                 error(loc, "expected 16, 32, or 64 bits for first type parameter", identifier.c_str(), "");
             }
             if (isTypeInt(publicType.basicType) &&
-                publicType.typeParameters->getDimSize(0) != 8 &&
-                publicType.typeParameters->getDimSize(0) != 32) {
-                error(loc, "expected 8 or 32 bits for first type parameter", identifier.c_str(), "");
+                publicType.typeParameters->arraySizes->getDimSize(0) != 8 &&
+                publicType.typeParameters->arraySizes->getDimSize(0) != 16 &&
+                publicType.typeParameters->arraySizes->getDimSize(0) != 32) {
+                error(loc, "expected 8, 16, or 32 bits for first type parameter", identifier.c_str(), "");
             }
         }
-
     } else {
-        if (publicType.typeParameters && publicType.typeParameters->getNumDims() != 0) {
+        if (publicType.typeParameters && publicType.typeParameters->arraySizes->getNumDims() != 0) {
             error(loc, "unexpected type parameters", identifier.c_str(), "");
         }
     }
@@ -7523,11 +7821,9 @@
 
     samplerCheck(loc, type, identifier, initializer);
     transparentOpaqueCheck(loc, type, identifier);
-#ifndef GLSLANG_WEB
     atomicUintCheck(loc, type, identifier);
     accStructCheck(loc, type, identifier);
     checkAndResizeMeshViewDim(loc, type, /*isBlockMember*/ false);
-#endif
     if (type.getQualifier().storage == EvqConst && type.containsReference()) {
         error(loc, "variables with reference type can't have qualifier 'const'", "qualifier", "");
     }
@@ -7630,14 +7926,12 @@
 // Pick up global defaults from the provide global defaults into dst.
 void TParseContext::inheritGlobalDefaults(TQualifier& dst) const
 {
-#ifndef GLSLANG_WEB
     if (dst.storage == EvqVaryingOut) {
         if (! dst.hasStream() && language == EShLangGeometry)
             dst.layoutStream = globalOutputDefaults.layoutStream;
         if (! dst.hasXfbBuffer())
             dst.layoutXfbBuffer = globalOutputDefaults.layoutXfbBuffer;
     }
-#endif
 }
 
 //
@@ -7666,9 +7960,7 @@
     // make a new variable
     TVariable* variable = new TVariable(&identifier, type);
 
-#ifndef GLSLANG_WEB
     ioArrayCheck(loc, type, identifier);
-#endif
 
     // add variable to symbol table
     if (symbolTable.insert(*variable)) {
@@ -7745,9 +8037,7 @@
     TType skeletalType;
     skeletalType.shallowCopy(variable->getType());
     skeletalType.getQualifier().makeTemporary();
-#ifndef GLSLANG_WEB
     initializer = convertInitializerList(loc, skeletalType, initializer);
-#endif
     if (! initializer) {
         // error recovery; don't leave const without constant values
         if (qualifier == EvqConst)
@@ -8149,8 +8439,6 @@
                 intermediate.addBuiltInFunctionCall(node->getLoc(), EOpPackUint2x32, true, node, type);
             return newNode;
         }
-#ifndef GLSLANG_WEB
-
     case EOpConstructDVec2:
     case EOpConstructDVec3:
     case EOpConstructDVec4:
@@ -8336,14 +8624,18 @@
             return nullptr;
         }
 
-    case EOpConstructCooperativeMatrix:
+    case EOpConstructCooperativeMatrixNV:
+    case EOpConstructCooperativeMatrixKHR:
+        if (node->getType() == type) {
+            return node;
+        }
         if (!node->getType().isCoopMat()) {
             if (type.getBasicType() != node->getType().getBasicType()) {
                 node = intermediate.addConversion(type.getBasicType(), node);
                 if (node == nullptr)
                     return nullptr;
             }
-            node = intermediate.setAggregateOperator(node, EOpConstructCooperativeMatrix, type, node->getLoc());
+            node = intermediate.setAggregateOperator(node, op, type, node->getLoc());
         } else {
             TOperator op = EOpNull;
             switch (type.getBasicType()) {
@@ -8356,6 +8648,8 @@
                     case EbtFloat16: op = EOpConvFloat16ToInt;  break;
                     case EbtUint8:   op = EOpConvUint8ToInt;    break;
                     case EbtInt8:    op = EOpConvInt8ToInt;     break;
+                    case EbtUint16:  op = EOpConvUint16ToInt;   break;
+                    case EbtInt16:   op = EOpConvInt16ToInt;    break;
                     case EbtUint:    op = EOpConvUintToInt;     break;
                     default: assert(0);
                 }
@@ -8366,8 +8660,33 @@
                     case EbtFloat16: op = EOpConvFloat16ToUint;  break;
                     case EbtUint8:   op = EOpConvUint8ToUint;    break;
                     case EbtInt8:    op = EOpConvInt8ToUint;     break;
+                    case EbtUint16:  op = EOpConvUint16ToUint;   break;
+                    case EbtInt16:   op = EOpConvInt16ToUint;    break;
                     case EbtInt:     op = EOpConvIntToUint;      break;
-                    case EbtUint:    op = EOpConvUintToInt8;     break;
+                    default: assert(0);
+                }
+                break;
+            case EbtInt16:
+                switch (node->getType().getBasicType()) {
+                    case EbtFloat:   op = EOpConvFloatToInt16;    break;
+                    case EbtFloat16: op = EOpConvFloat16ToInt16;  break;
+                    case EbtUint8:   op = EOpConvUint8ToInt16;    break;
+                    case EbtInt8:    op = EOpConvInt8ToInt16;     break;
+                    case EbtUint16:  op = EOpConvUint16ToInt16;   break;
+                    case EbtInt:     op = EOpConvIntToInt16;      break;
+                    case EbtUint:    op = EOpConvUintToInt16;     break;
+                    default: assert(0);
+                }
+                break;
+            case EbtUint16:
+                switch (node->getType().getBasicType()) {
+                    case EbtFloat:   op = EOpConvFloatToUint16;   break;
+                    case EbtFloat16: op = EOpConvFloat16ToUint16; break;
+                    case EbtUint8:   op = EOpConvUint8ToUint16;   break;
+                    case EbtInt8:    op = EOpConvInt8ToUint16;    break;
+                    case EbtInt16:   op = EOpConvInt16ToUint16;   break;
+                    case EbtInt:     op = EOpConvIntToUint16;     break;
+                    case EbtUint:    op = EOpConvUintToUint16;    break;
                     default: assert(0);
                 }
                 break;
@@ -8376,6 +8695,8 @@
                     case EbtFloat:   op = EOpConvFloatToInt8;    break;
                     case EbtFloat16: op = EOpConvFloat16ToInt8;  break;
                     case EbtUint8:   op = EOpConvUint8ToInt8;    break;
+                    case EbtInt16:   op = EOpConvInt16ToInt8;    break;
+                    case EbtUint16:  op = EOpConvUint16ToInt8;   break;
                     case EbtInt:     op = EOpConvIntToInt8;      break;
                     case EbtUint:    op = EOpConvUintToInt8;     break;
                     default: assert(0);
@@ -8386,6 +8707,8 @@
                     case EbtFloat:   op = EOpConvFloatToUint8;   break;
                     case EbtFloat16: op = EOpConvFloat16ToUint8; break;
                     case EbtInt8:    op = EOpConvInt8ToUint8;    break;
+                    case EbtInt16:   op = EOpConvInt16ToUint8;   break;
+                    case EbtUint16:  op = EOpConvUint16ToUint8;  break;
                     case EbtInt:     op = EOpConvIntToUint8;     break;
                     case EbtUint:    op = EOpConvUintToUint8;    break;
                     default: assert(0);
@@ -8396,6 +8719,8 @@
                     case EbtFloat16: op = EOpConvFloat16ToFloat;  break;
                     case EbtInt8:    op = EOpConvInt8ToFloat;     break;
                     case EbtUint8:   op = EOpConvUint8ToFloat;    break;
+                    case EbtInt16:   op = EOpConvInt16ToFloat;    break;
+                    case EbtUint16:  op = EOpConvUint16ToFloat;   break;
                     case EbtInt:     op = EOpConvIntToFloat;      break;
                     case EbtUint:    op = EOpConvUintToFloat;     break;
                     default: assert(0);
@@ -8406,6 +8731,8 @@
                     case EbtFloat:  op = EOpConvFloatToFloat16;  break;
                     case EbtInt8:   op = EOpConvInt8ToFloat16;   break;
                     case EbtUint8:  op = EOpConvUint8ToFloat16;  break;
+                    case EbtInt16:  op = EOpConvInt16ToFloat16;   break;
+                    case EbtUint16: op = EOpConvUint16ToFloat16;  break;
                     case EbtInt:    op = EOpConvIntToFloat16;    break;
                     case EbtUint:   op = EOpConvUintToFloat16;   break;
                     default: assert(0);
@@ -8434,7 +8761,6 @@
                 type);
         } else
             return nullptr;
-#endif // GLSLANG_WEB
 
     default:
         error(loc, "unsupported construction", "", "");
@@ -8481,7 +8807,6 @@
 // If a memory qualifier is present in 'to', also make it present in 'from'.
 void TParseContext::inheritMemoryQualifiers(const TQualifier& from, TQualifier& to)
 {
-#ifndef GLSLANG_WEB
     if (from.isReadOnly())
         to.readonly = from.readonly;
     if (from.isWriteOnly())
@@ -8492,7 +8817,6 @@
         to.volatil = from.volatil;
     if (from.restrict)
         to.restrict = from.restrict;
-#endif
 }
 
 //
@@ -8545,7 +8869,6 @@
             error(memberLoc, "member storage qualifier cannot contradict block storage qualifier", memberType.getFieldName().c_str(), "");
         memberQualifier.storage = currentBlockQualifier.storage;
         globalQualifierFixCheck(memberLoc, memberQualifier);
-#ifndef GLSLANG_WEB
         inheritMemoryQualifiers(currentBlockQualifier, memberQualifier);
         if (currentBlockQualifier.perPrimitiveNV)
             memberQualifier.perPrimitiveNV = currentBlockQualifier.perPrimitiveNV;
@@ -8557,9 +8880,8 @@
             memberQualifier.storage = EvqtaskPayloadSharedEXT;
         if (memberQualifier.storage == EvqSpirvStorageClass)
             error(memberLoc, "member cannot have a spirv_storage_class qualifier", memberType.getFieldName().c_str(), "");
-        if (memberQualifier.hasSprivDecorate() && !memberQualifier.getSpirvDecorate().decorateIds.empty())
+        if (memberQualifier.hasSpirvDecorate() && !memberQualifier.getSpirvDecorate().decorateIds.empty())
             error(memberLoc, "member cannot have a spirv_decorate_id qualifier", memberType.getFieldName().c_str(), "");
-#endif
         if ((currentBlockQualifier.storage == EvqUniform || currentBlockQualifier.storage == EvqBuffer) && (memberQualifier.isInterpolation() || memberQualifier.isAuxiliary()))
             error(memberLoc, "member of uniform or buffer block cannot have an auxiliary or interpolation qualifier", memberType.getFieldName().c_str(), "");
         if (memberType.isArray())
@@ -8639,7 +8961,6 @@
     for (unsigned int member = 0; member < typeList.size(); ++member) {
         TQualifier& memberQualifier = typeList[member].type->getQualifier();
         const TSourceLoc& memberLoc = typeList[member].loc;
-#ifndef GLSLANG_WEB
         if (memberQualifier.hasStream()) {
             if (defaultQualification.layoutStream != memberQualifier.layoutStream)
                 error(memberLoc, "member cannot contradict block", "stream", "");
@@ -8653,14 +8974,12 @@
             if (defaultQualification.layoutXfbBuffer != memberQualifier.layoutXfbBuffer)
                 error(memberLoc, "member cannot contradict block (or what block inherited from global)", "xfb_buffer", "");
         }
-#endif
 
         if (memberQualifier.hasPacking())
             error(memberLoc, "member of block cannot have a packing layout qualifier", typeList[member].type->getFieldName().c_str(), "");
         if (memberQualifier.hasLocation()) {
             const char* feature = "location on block member";
             switch (currentBlockQualifier.storage) {
-#ifndef GLSLANG_WEB
             case EvqVaryingIn:
             case EvqVaryingOut:
                 requireProfile(memberLoc, ECoreProfile | ECompatibilityProfile | EEsProfile, feature);
@@ -8668,7 +8987,6 @@
                 profileRequires(memberLoc, EEsProfile, 320, Num_AEP_shader_io_blocks, AEP_shader_io_blocks, feature);
                 memberWithLocation = true;
                 break;
-#endif
             default:
                 error(memberLoc, "can only use in an in/out block", feature, "");
                 break;
@@ -8696,7 +9014,6 @@
 
     layoutMemberLocationArrayCheck(loc, memberWithLocation, arraySizes);
 
-#ifndef GLSLANG_WEB
     // Ensure that the block has an XfbBuffer assigned. This is needed
     // because if the block has a XfbOffset assigned, then it is
     // assumed that it has implicitly assigned the current global
@@ -8706,7 +9023,6 @@
        if (!currentBlockQualifier.hasXfbBuffer() && currentBlockQualifier.hasXfbOffset())
           currentBlockQualifier.layoutXfbBuffer = globalOutputDefaults.layoutXfbBuffer;
     }
-#endif
 
     // Process the members
     fixBlockLocations(loc, currentBlockQualifier, typeList, memberWithLocation, memberWithoutLocation);
@@ -8717,13 +9033,11 @@
     for (unsigned int member = 0; member < typeList.size(); ++member)
         layoutTypeCheck(typeList[member].loc, *typeList[member].type);
 
-#ifndef GLSLANG_WEB
     if (memberWithPerViewQualifier) {
         for (unsigned int member = 0; member < typeList.size(); ++member) {
             checkAndResizeMeshViewDim(typeList[member].loc, *typeList[member].type, /*isBlockMember*/ true);
         }
     }
-#endif
 
     // reverse merge, so that currentBlockQualifier now has all layout information
     // (can't use defaultQualification directly, it's missing other non-layout-default-class qualifiers)
@@ -8737,7 +9051,6 @@
     if (arraySizes != nullptr)
         blockType.transferArraySizes(arraySizes);
 
-#ifndef GLSLANG_WEB
     if (arraySizes == nullptr)
         ioArrayCheck(loc, blockType, instanceName ? *instanceName : *blockName);
     if (currentBlockQualifier.hasBufferReference()) {
@@ -8764,9 +9077,7 @@
         if (!instanceName) {
             return;
         }
-    } else
-#endif
-    {
+    } else {
         //
         // Don't make a user-defined type out of block name; that will cause an error
         // if the same block name gets reused in a different interface.
@@ -8814,14 +9125,12 @@
     // Check for general layout qualifier errors
     layoutObjectCheck(loc, variable);
 
-#ifndef GLSLANG_WEB
     // fix up
     if (isIoResizeArray(blockType)) {
         ioArraySymbolResizeList.push_back(&variable);
         checkIoArraysConsistency(loc, true);
     } else
         fixIoArraySize(loc, variable.getWritableType());
-#endif
 
     // Save it in the AST for linker use.
     trackLinkage(variable);
@@ -8886,7 +9195,6 @@
         }
         profileRequires(loc, EEsProfile | ECoreProfile | ECompatibilityProfile, 0, E_GL_EXT_shared_memory_block, "shared block");
         break;
-#ifndef GLSLANG_WEB
     case EvqPayload:
         profileRequires(loc, ~EEsProfile, 460, 2, extsrt, "rayPayloadNV block");
         requireStage(loc, (EShLanguageMask)(EShLangRayGenMask | EShLangAnyHitMask | EShLangClosestHitMask | EShLangMissMask),
@@ -8914,7 +9222,6 @@
         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(), "");
         break;
@@ -9003,7 +9310,6 @@
 
 void TParseContext::fixXfbOffsets(TQualifier& qualifier, TTypeList& typeList)
 {
-#ifndef GLSLANG_WEB
     // "If a block is qualified with xfb_offset, all its
     // members are assigned transform feedback buffer offsets. If a block is not qualified with xfb_offset, any
     // members of that block not qualified with an xfb_offset will not be assigned transform feedback buffer
@@ -9037,7 +9343,6 @@
     // The above gave all block members an offset, so we can take it off the block now,
     // which will avoid double counting the offset usage.
     qualifier.layoutXfbOffset = TQualifier::layoutXfbOffsetEnd;
-#endif
 }
 
 // Calculate and save the offset of each block member, using the recursively
@@ -9214,7 +9519,7 @@
     // TParseContext::declareBlock.
     if (!symbol && qualifier.hasBufferReference()) {
         TTypeList typeList;
-        TType blockType(&typeList, identifier, qualifier);;
+        TType blockType(&typeList, identifier, qualifier);
         TType blockNameType(EbtReference, blockType, identifier);
         TVariable* blockNameVar = new TVariable(&identifier, blockNameType, true);
         if (! symbolTable.insert(*blockNameVar)) {
@@ -9293,7 +9598,6 @@
 //
 void TParseContext::updateStandaloneQualifierDefaults(const TSourceLoc& loc, const TPublicType& publicType)
 {
-#ifndef GLSLANG_WEB
     if (publicType.shaderQualifiers.vertices != TQualifier::layoutNotSet) {
         assert(language == EShLangTessControl || language == EShLangGeometry || language == EShLangMesh);
         const char* id = (language == EShLangTessControl) ? "vertices" : "max_vertices";
@@ -9385,7 +9689,7 @@
         else
             error(loc, "can only apply to 'in'", "point_mode", "");
     }
-#endif
+
     for (int i = 0; i < 3; ++i) {
         if (publicType.shaderQualifiers.localSizeNotDefault[i]) {
             if (publicType.qualifier.storage == EvqVaryingIn) {
@@ -9402,9 +9706,7 @@
                         }
                         if (intermediate.getLocalSize(i) > (unsigned int)max)
                             error(loc, "too large; see gl_MaxComputeWorkGroupSize", "local_size", "");
-                    }
-#ifndef GLSLANG_WEB
-                    else if (language == EShLangMesh) {
+                    } else if (language == EShLangMesh) {
                         switch (i) {
                         case 0:
                             max = extensionTurnedOn(E_GL_EXT_mesh_shader) ?
@@ -9454,9 +9756,7 @@
                                                     "gl_MaxTaskWorkGroupSizeEXT" : "gl_MaxTaskWorkGroupSizeNV");
                             error(loc, maxsErrtring.c_str(), "local_size", "");
                         }
-                    }
-#endif
-                    else {
+                    } else {
                         assert(0);
                     }
 
@@ -9481,7 +9781,6 @@
         }
     }
 
-#ifndef GLSLANG_WEB
     if (publicType.shaderQualifiers.earlyFragmentTests) {
         if (publicType.qualifier.storage == EvqVaryingIn)
             intermediate.setEarlyFragmentTests();
@@ -9577,7 +9876,7 @@
         // Exit early as further checks are not valid
         return;
     }
-#endif
+
     const TQualifier& qualifier = publicType.qualifier;
 
     if (qualifier.isAuxiliary() ||
@@ -9610,7 +9909,6 @@
     case EvqVaryingIn:
         break;
     case EvqVaryingOut:
-#ifndef GLSLANG_WEB
         if (qualifier.hasStream())
             globalOutputDefaults.layoutStream = qualifier.layoutStream;
         if (qualifier.hasXfbBuffer())
@@ -9619,7 +9917,6 @@
             if (! intermediate.setXfbBufferStride(globalOutputDefaults.layoutXfbBuffer, qualifier.layoutXfbStride))
                 error(loc, "all stride settings must match for xfb buffer", "xfb_stride", "%d", qualifier.layoutXfbBuffer);
         }
-#endif
         break;
     case EvqShared:
         if (qualifier.hasMatrix())
diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h
index 66795fd..16902ae 100644
--- a/glslang/MachineIndependent/ParseHelper.h
+++ b/glslang/MachineIndependent/ParseHelper.h
@@ -104,7 +104,6 @@
     }
     virtual ~TParseContextBase() { }
 
-#if !defined(GLSLANG_WEB) || defined(GLSLANG_WEB_DEVEL)
     virtual void C_DECL   error(const TSourceLoc&, const char* szReason, const char* szToken,
                                 const char* szExtraInfoFormat, ...);
     virtual void C_DECL    warn(const TSourceLoc&, const char* szReason, const char* szToken,
@@ -113,7 +112,6 @@
                                 const char* szExtraInfoFormat, ...);
     virtual void C_DECL  ppWarn(const TSourceLoc&, const char* szReason, const char* szToken,
                                 const char* szExtraInfoFormat, ...);
-#endif
 
     virtual void setLimits(const TBuiltInResource&) = 0;
 
@@ -182,6 +180,7 @@
     // Basic parsing state, easily accessible to the grammar
 
     TSymbolTable& symbolTable;        // symbol table that goes with the current language, version, and profile
+    TVector<TString> relaxedSymbols;
     int statementNestingLevel;        // 0 if outside all flow control or compound statements
     int loopNestingLevel;             // 0 if outside all loops
     int structNestingLevel;           // 0 if outside structures
@@ -198,6 +197,7 @@
     struct TPragma contextPragma;
     int beginInvocationInterlockCount;
     int endInvocationInterlockCount;
+    bool compileOnly = false;
 
 protected:
     TParseContextBase(TParseContextBase&);
@@ -331,10 +331,8 @@
     TIntermTyped* handleBracketDereference(const TSourceLoc&, TIntermTyped* base, TIntermTyped* index);
     void handleIndexLimits(const TSourceLoc&, TIntermTyped* base, TIntermTyped* index);
 
-#ifndef GLSLANG_WEB
     void makeEditable(TSymbol*&) override;
     void ioArrayCheck(const TSourceLoc&, const TType&, const TString& identifier);
-#endif
     bool isIoResizeArray(const TType&) const;
     void fixIoArraySize(const TSourceLoc&, TType&);
     void handleIoResizeArrayAccess(const TSourceLoc&, TIntermTyped* base);
@@ -370,6 +368,10 @@
     TIntermTyped* vkRelaxedRemapFunctionCall(const TSourceLoc&, TFunction*, TIntermNode*);
     // returns true if the variable was remapped to something else
     bool vkRelaxedRemapUniformVariable(const TSourceLoc&, TString&, const TPublicType&, TArraySizes*, TIntermTyped*, TType&);
+    void vkRelaxedRemapUniformMembers(const TSourceLoc&, const TPublicType&, const TType&, const TString&);
+    void vkRelaxedRemapFunctionParameter(TFunction*, TParameter&, std::vector<int>* newParams = nullptr);
+    TIntermNode* vkRelaxedRemapFunctionArgument(const TSourceLoc&, TFunction*, TIntermTyped*);
+    TIntermTyped* vkRelaxedRemapDotDereference(const TSourceLoc&, TIntermTyped&, const TType&, const TString&);
 
     void assignError(const TSourceLoc&, const char* op, TString left, TString right);
     void unaryOpError(const TSourceLoc&, const char* op, TString operand);
@@ -382,7 +384,7 @@
     void globalCheck(const TSourceLoc&, const char* token);
     bool constructorError(const TSourceLoc&, TIntermNode*, TFunction&, TOperator, TType&);
     bool constructorTextureSamplerError(const TSourceLoc&, const TFunction&);
-    void arraySizeCheck(const TSourceLoc&, TIntermTyped* expr, TArraySize&, const char *sizeType);
+    void arraySizeCheck(const TSourceLoc&, TIntermTyped* expr, TArraySize&, const char *sizeType, const bool allowZero = false);
     bool arrayQualifierError(const TSourceLoc&, const TQualifier&);
     bool arrayError(const TSourceLoc&, const TType&);
     void arraySizeRequiredCheck(const TSourceLoc&, const TArraySizes&);
@@ -404,7 +406,7 @@
     void setDefaultPrecision(const TSourceLoc&, TPublicType&, TPrecisionQualifier);
     int computeSamplerTypeIndex(TSampler&);
     TPrecisionQualifier getDefaultPrecision(TPublicType&);
-    void precisionQualifierCheck(const TSourceLoc&, TBasicType, TQualifier&);
+    void precisionQualifierCheck(const TSourceLoc&, TBasicType, TQualifier&, bool isCoopMat);
     void parameterTypeCheck(const TSourceLoc&, TStorageQualifier qualifier, const TType& type);
     bool containsFieldWithBasicType(const TType& type ,TBasicType basicType);
     TSymbol* redeclareBuiltinVariable(const TSourceLoc&, const TString&, const TQualifier&, const TShaderQualifiers&);
@@ -422,6 +424,7 @@
     void inductiveLoopCheck(const TSourceLoc&, TIntermNode* init, TIntermLoop* loop);
     void arrayLimitCheck(const TSourceLoc&, const TString&, int size);
     void limitCheck(const TSourceLoc&, int value, const char* limit, const char* feature);
+    void coopMatTypeParametersCheck(const TSourceLoc&, const TPublicType&);
 
     void inductiveLoopBodyCheck(TIntermNode*, long long loopIndexId, TSymbolTable&);
     void constantIndexExpressionCheck(TIntermNode*);
@@ -466,7 +469,6 @@
     const TTypeList* recordStructCopy(TStructRecord&, const TType*, const TType*);
     TLayoutFormat mapLegacyLayoutFormat(TLayoutFormat legacyLayoutFormat, TBasicType imageType);
 
-#ifndef GLSLANG_WEB
     TAttributeType attributeFromName(const TString& name) const;
     TAttributes* makeAttributes(const TString& identifier) const;
     TAttributes* makeAttributes(const TString& identifier, TIntermNode* node) const;
@@ -493,8 +495,6 @@
     TSpirvInstruction* makeSpirvInstruction(const TSourceLoc& loc, const TString& name, int value);
     TSpirvInstruction* mergeSpirvInstruction(const TSourceLoc& loc, TSpirvInstruction* spirvInst1,
                                              TSpirvInstruction* spirvInst2);
-#endif
-
     void checkAndResizeMeshViewDim(const TSourceLoc&, TType&, bool isBlockMember);
 
 protected:
@@ -507,9 +507,7 @@
     bool isRuntimeLength(const TIntermTyped&) const;
     TIntermNode* executeInitializer(const TSourceLoc&, TIntermTyped* initializer, TVariable* variable);
     TIntermTyped* convertInitializerList(const TSourceLoc&, const TType&, TIntermTyped* initializer);
-#ifndef GLSLANG_WEB
     void finish() override;
-#endif
 
     virtual const char* getGlobalUniformBlockName() const override;
     virtual void finalizeGlobalUniformBlockLayout(TVariable&) override;
@@ -546,7 +544,6 @@
     TQualifier globalOutputDefaults;
     TQualifier globalSharedDefaults;
     TString currentCaller;        // name of last function body entered (not valid when at global scope)
-#ifndef GLSLANG_WEB
     int* atomicUintOffsets;       // to become an array of the right size to hold an offset per binding point
     bool anyIndexLimits;
     TIdSetType inductiveLoopIds;
@@ -587,7 +584,6 @@
     //    array-sizing declarations
     //
     TVector<TSymbol*> ioArraySymbolResizeList;
-#endif
 };
 
 } // end namespace glslang
diff --git a/glslang/MachineIndependent/PoolAlloc.cpp b/glslang/MachineIndependent/PoolAlloc.cpp
index c3a3928..5d7173c 100644
--- a/glslang/MachineIndependent/PoolAlloc.cpp
+++ b/glslang/MachineIndependent/PoolAlloc.cpp
@@ -35,34 +35,28 @@
 #include "../Include/Common.h"
 #include "../Include/PoolAlloc.h"
 
-#include "../Include/InitializeGlobals.h"
-#include "../OSDependent/osinclude.h"
-
 namespace glslang {
 
-// Process-wide TLS index
-OS_TLSIndex PoolIndex;
+namespace {
+thread_local TPoolAllocator* threadPoolAllocator = nullptr;
+
+TPoolAllocator* GetDefaultThreadPoolAllocator()
+{
+    thread_local TPoolAllocator defaultAllocator;
+    return &defaultAllocator;
+}
+} // anonymous namespace
 
 // Return the thread-specific current pool.
 TPoolAllocator& GetThreadPoolAllocator()
 {
-    return *static_cast<TPoolAllocator*>(OS_GetTLSValue(PoolIndex));
+    return *(threadPoolAllocator ? threadPoolAllocator : GetDefaultThreadPoolAllocator());
 }
 
 // Set the thread-specific current pool.
 void SetThreadPoolAllocator(TPoolAllocator* poolAllocator)
 {
-    OS_SetTLSValue(PoolIndex, poolAllocator);
-}
-
-// Process-wide set up of the TLS pool storage.
-bool InitializePoolIndex()
-{
-    // Allocate a TLS index.
-    if ((PoolIndex = OS_AllocTLSIndex()) == OS_INVALID_TLS_INDEX)
-        return false;
-
-    return true;
+    threadPoolAllocator = poolAllocator;
 }
 
 //
@@ -137,16 +131,6 @@
     }
 }
 
-const unsigned char TAllocation::guardBlockBeginVal = 0xfb;
-const unsigned char TAllocation::guardBlockEndVal   = 0xfe;
-const unsigned char TAllocation::userDataFill       = 0xcd;
-
-#   ifdef GUARD_BLOCKS
-    const size_t TAllocation::guardBlockSize = 16;
-#   else
-    const size_t TAllocation::guardBlockSize = 0;
-#   endif
-
 //
 // Check a single guard block for damage
 //
diff --git a/glslang/MachineIndependent/Scan.cpp b/glslang/MachineIndependent/Scan.cpp
index bb21c20..4454659 100644
--- a/glslang/MachineIndependent/Scan.cpp
+++ b/glslang/MachineIndependent/Scan.cpp
@@ -324,11 +324,9 @@
 // A single global usable by all threads, by all versions, by all languages.
 // After a single process-level initialization, this is read only and thread safe
 std::unordered_map<const char*, int, str_hash, str_eq>* KeywordMap = nullptr;
-#ifndef GLSLANG_WEB
 std::unordered_set<const char*, str_hash, str_eq>* ReservedSet = nullptr;
-#endif
 
-};
+}
 
 namespace glslang {
 
@@ -409,7 +407,6 @@
     (*KeywordMap)["uvec3"] =                   UVEC3;
     (*KeywordMap)["uvec4"] =                   UVEC4;
 
-#ifndef GLSLANG_WEB
     (*KeywordMap)["nonuniformEXT"] =           NONUNIFORM;
     (*KeywordMap)["demote"] =                  DEMOTE;
     (*KeywordMap)["attribute"] =               ATTRIBUTE;
@@ -599,7 +596,6 @@
     (*KeywordMap)["spirv_storage_class"] =     SPIRV_STORAGE_CLASS;
     (*KeywordMap)["spirv_by_reference"] =      SPIRV_BY_REFERENCE;
     (*KeywordMap)["spirv_literal"] =           SPIRV_LITERAL;
-#endif
 
     (*KeywordMap)["sampler2D"] =               SAMPLER2D;
     (*KeywordMap)["samplerCube"] =             SAMPLERCUBE;
@@ -633,7 +629,6 @@
     (*KeywordMap)["sampler"] =                 SAMPLER;
     (*KeywordMap)["samplerShadow"] =           SAMPLERSHADOW;
 
-#ifndef GLSLANG_WEB
     (*KeywordMap)["textureCubeArray"] =        TEXTURECUBEARRAY;
     (*KeywordMap)["itextureCubeArray"] =       ITEXTURECUBEARRAY;
     (*KeywordMap)["utextureCubeArray"] =       UTEXTURECUBEARRAY;
@@ -770,6 +765,8 @@
     (*KeywordMap)["icoopmatNV"] =              ICOOPMATNV;
     (*KeywordMap)["ucoopmatNV"] =              UCOOPMATNV;
 
+    (*KeywordMap)["coopmat"] =                 COOPMAT;
+
     (*KeywordMap)["hitObjectNV"] =             HITOBJECTNV;
     (*KeywordMap)["hitObjectAttributeNV"] =    HITOBJECTATTRNV;
 
@@ -812,17 +809,14 @@
     ReservedSet->insert("cast");
     ReservedSet->insert("namespace");
     ReservedSet->insert("using");
-#endif
 }
 
 void TScanContext::deleteKeywordMap()
 {
     delete KeywordMap;
     KeywordMap = nullptr;
-#ifndef GLSLANG_WEB
     delete ReservedSet;
     ReservedSet = nullptr;
-#endif
 }
 
 // Called by yylex to get the next token.
@@ -903,14 +897,12 @@
         case PpAtomConstInt:           parserToken->sType.lex.i    = ppToken.ival;       return INTCONSTANT;
         case PpAtomConstUint:          parserToken->sType.lex.i    = ppToken.ival;       return UINTCONSTANT;
         case PpAtomConstFloat:         parserToken->sType.lex.d    = ppToken.dval;       return FLOATCONSTANT;
-#ifndef GLSLANG_WEB
         case PpAtomConstInt16:         parserToken->sType.lex.i    = ppToken.ival;       return INT16CONSTANT;
         case PpAtomConstUint16:        parserToken->sType.lex.i    = ppToken.ival;       return UINT16CONSTANT;
         case PpAtomConstInt64:         parserToken->sType.lex.i64  = ppToken.i64val;     return INT64CONSTANT;
         case PpAtomConstUint64:        parserToken->sType.lex.i64  = ppToken.i64val;     return UINT64CONSTANT;
         case PpAtomConstDouble:        parserToken->sType.lex.d    = ppToken.dval;       return DOUBLECONSTANT;
         case PpAtomConstFloat16:       parserToken->sType.lex.d    = ppToken.dval;       return FLOAT16CONSTANT;
-#endif
         case PpAtomIdentifier:
         {
             int token = tokenizeIdentifier();
@@ -932,10 +924,8 @@
 
 int TScanContext::tokenizeIdentifier()
 {
-#ifndef GLSLANG_WEB
     if (ReservedSet->find(tokenText) != ReservedSet->end())
         return reservedWord();
-#endif
 
     auto it = KeywordMap->find(tokenText);
     if (it == KeywordMap->end()) {
@@ -1058,7 +1048,6 @@
         return identifierOrReserved(reserved);
     }
 
-#ifndef GLSLANG_WEB
     case NOPERSPECTIVE:
         if (parseContext.extensionTurnedOn(E_GL_NV_shader_noperspective_interpolation))
             return keyword;
@@ -1084,12 +1073,18 @@
             parseContext.extensionTurnedOn(E_GL_NV_ray_tracing))
             return keyword;
         return identifierOrType();
+    case ACCSTRUCTEXT:
+        if (parseContext.symbolTable.atBuiltInLevel() ||
+            parseContext.extensionTurnedOn(E_GL_EXT_ray_tracing) ||
+            parseContext.extensionTurnedOn(E_GL_EXT_ray_query) ||
+            parseContext.extensionTurnedOn(E_GL_NV_displacement_micromap))
+            return keyword;
+        return identifierOrType();
     case PAYLOADEXT:
     case PAYLOADINEXT:
     case HITATTREXT:
     case CALLDATAEXT:
     case CALLDATAINEXT:
-    case ACCSTRUCTEXT:
         if (parseContext.symbolTable.atBuiltInLevel() ||
             parseContext.extensionTurnedOn(E_GL_EXT_ray_tracing) ||
             parseContext.extensionTurnedOn(E_GL_EXT_ray_query))
@@ -1145,7 +1140,7 @@
 
     case SUBROUTINE:
         return es30ReservedFromGLSL(400);
-#endif
+
     case SHARED:
         if ((parseContext.isEsProfile() && parseContext.version < 300) ||
             (!parseContext.isEsProfile() && parseContext.version < 140))
@@ -1180,7 +1175,6 @@
     case MAT4X4:
         return matNxM();
 
-#ifndef GLSLANG_WEB
     case DMAT2:
     case DMAT3:
     case DMAT4:
@@ -1485,7 +1479,6 @@
             return keyword;
         else
             return identifierOrType();
-#endif
 
     case UINT:
     case UVEC2:
@@ -1503,6 +1496,12 @@
     case USAMPLERCUBE:
     case USAMPLER2DARRAY:
         afterType = true;
+        if (keyword == SAMPLER2DARRAY || keyword == SAMPLER2DARRAYSHADOW) {
+            if (!parseContext.isEsProfile() &&
+                (parseContext.extensionTurnedOn(E_GL_EXT_texture_array) || parseContext.symbolTable.atBuiltInLevel())) {
+                return keyword;
+            }
+        }
         return nonreservedKeyword(300, 130);
 
     case SAMPLER3D:
@@ -1540,13 +1539,18 @@
         else
             return identifierOrType();
 
-#ifndef GLSLANG_WEB
     case ISAMPLER1D:
     case ISAMPLER1DARRAY:
     case SAMPLER1DARRAYSHADOW:
     case USAMPLER1D:
     case USAMPLER1DARRAY:
         afterType = true;
+        if (keyword == SAMPLER1DARRAYSHADOW) {
+            if (!parseContext.isEsProfile() &&
+                (parseContext.extensionTurnedOn(E_GL_EXT_texture_array) || parseContext.symbolTable.atBuiltInLevel())) {
+                return keyword;
+            }
+        }
         return es30ReservedFromGLSL(130);
     case ISAMPLER2DRECT:
     case USAMPLER2DRECT:
@@ -1616,7 +1620,9 @@
         if (parseContext.isEsProfile() && parseContext.version == 300)
             reservedWord();
         else if ((parseContext.isEsProfile() && parseContext.version < 300) ||
-                 (!parseContext.isEsProfile() && parseContext.version < 130))
+                 ((!parseContext.isEsProfile() && parseContext.version < 130) &&
+                   !parseContext.symbolTable.atBuiltInLevel() &&
+                   !parseContext.extensionTurnedOn(E_GL_EXT_texture_array)))
             return identifierOrType();
         return keyword;
 
@@ -1781,6 +1787,13 @@
             return keyword;
         return identifierOrType();
 
+    case COOPMAT:
+        afterType = true;
+        if (parseContext.symbolTable.atBuiltInLevel() ||
+            parseContext.extensionTurnedOn(E_GL_KHR_cooperative_matrix))
+            return keyword;
+        return identifierOrType();
+
     case DEMOTE:
         if (parseContext.extensionTurnedOn(E_GL_EXT_demote_to_helper_invocation))
             return keyword;
@@ -1815,7 +1828,6 @@
                  && parseContext.extensionTurnedOn(E_GL_NV_shader_invocation_reorder)))
             return keyword;
         return identifierOrType();
-#endif
 
     default:
         parseContext.infoSink.info.message(EPrefixInternalError, "Unknown glslang keyword", loc);
diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp
index 5d16361..6e50a9d 100644
--- a/glslang/MachineIndependent/ShaderLang.cpp
+++ b/glslang/MachineIndependent/ShaderLang.cpp
@@ -45,6 +45,7 @@
 #include <iostream>
 #include <sstream>
 #include <memory>
+#include <mutex>
 #include "SymbolTable.h"
 #include "ParseHelper.h"
 #include "Scan.h"
@@ -57,7 +58,6 @@
 #endif
 
 #include "../Include/ShHandle.h"
-#include "../../OGLCompilersDLL/InitializeDll.h"
 
 #include "preprocessor/PpContext.h"
 
@@ -81,6 +81,9 @@
 // Shared global; access should be protected by a global mutex/critical section.
 int NumberOfClients = 0;
 
+// global initialization lock
+std::mutex init_lock;
+
 using namespace glslang;
 
 // Create a language specific version of parseables.
@@ -295,11 +298,6 @@
                                 EShLanguage language, EShSource source, TInfoSink& infoSink, TSymbolTable** commonTable,
                                 TSymbolTable** symbolTables)
 {
-#ifdef GLSLANG_WEB
-    profile = EEsProfile;
-    version = 310;
-#endif
-
     (*symbolTables[language]).adoptLevels(*commonTable[CommonIndex(profile, language)]);
     InitializeSymbolTable(builtInParseables.getStageString(language), version, profile, spvVersion, language, source,
                           infoSink, *symbolTables[language]);
@@ -316,11 +314,6 @@
 //
 bool InitializeSymbolTables(TInfoSink& infoSink, TSymbolTable** commonTable,  TSymbolTable** symbolTables, int version, EProfile profile, const SpvVersion& spvVersion, EShSource source)
 {
-#ifdef GLSLANG_WEB
-    profile = EEsProfile;
-    version = 310;
-#endif
-
     std::unique_ptr<TBuiltInParseables> builtInParseables(CreateBuiltInParseables(infoSink, source));
 
     if (builtInParseables == nullptr)
@@ -343,7 +336,6 @@
     InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangFragment, source,
                                infoSink, commonTable, symbolTables);
 
-#ifndef GLSLANG_WEB
     // check for tessellation
     if ((profile != EEsProfile && version >= 150) ||
         (profile == EEsProfile && version >= 310)) {
@@ -392,7 +384,6 @@
         (profile == EEsProfile && version >= 320))
         InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangTask, source,
                                    infoSink, commonTable, symbolTables);
-#endif // !GLSLANG_WEB
 
     return true;
 }
@@ -429,18 +420,15 @@
     TInfoSink infoSink;
 
     // Make sure only one thread tries to do this at a time
-    glslang::GetGlobalLock();
+    const std::lock_guard<std::mutex> lock(init_lock);
 
     // See if it's already been done for this version/profile combination
     int versionIndex = MapVersionToIndex(version);
     int spvVersionIndex = MapSpvVersionToIndex(spvVersion);
     int profileIndex = MapProfileToIndex(profile);
     int sourceIndex = MapSourceToIndex(source);
-    if (CommonSymbolTable[versionIndex][spvVersionIndex][profileIndex][sourceIndex][EPcGeneral]) {
-        glslang::ReleaseGlobalLock();
-
+    if (CommonSymbolTable[versionIndex][spvVersionIndex][profileIndex][sourceIndex][EPcGeneral])
         return;
-    }
 
     // Switch to a new pool
     TPoolAllocator& previousAllocator = GetThreadPoolAllocator();
@@ -487,20 +475,16 @@
 
     delete builtInPoolAllocator;
     SetThreadPoolAllocator(&previousAllocator);
-
-    glslang::ReleaseGlobalLock();
 }
 
 // Function to Print all builtins
 void DumpBuiltinSymbolTable(TInfoSink& infoSink, const TSymbolTable& symbolTable)
 {
-#if !defined(GLSLANG_WEB)
     infoSink.debug << "BuiltinSymbolTable {\n";
 
     symbolTable.dump(infoSink, true);
 
     infoSink.debug << "}\n";
-#endif
 }
 
 // Return true if the shader was correctly specified for version/profile/stage.
@@ -598,7 +582,6 @@
         break;
     }
 
-#if !defined(GLSLANG_WEB)
     // Correct for stage type...
     switch (stage) {
     case EShLangGeometry:
@@ -686,7 +669,6 @@
             break;
         }
     }
-#endif
 
     return correct;
 }
@@ -813,7 +795,8 @@
     bool requireNonempty,
     TShader::Includer& includer,
     const std::string sourceEntryPointName = "",
-    const TEnvironment* environment = nullptr)  // optional way of fully setting all versions, overriding the above
+    const TEnvironment* environment = nullptr,  // optional way of fully setting all versions, overriding the above
+    bool compileOnly = false)
 {
     // This must be undone (.pop()) by the caller, after it finishes consuming the created tree.
     GetThreadPoolAllocator().push();
@@ -876,7 +859,6 @@
                                 : userInput.scanVersion(version, profile, versionNotFirstToken);
     bool versionNotFound = version == 0;
     if (forceDefaultVersionAndProfile && source == EShSourceGlsl) {
-#if !defined(GLSLANG_WEB)
         if (! (messages & EShMsgSuppressWarnings) && ! versionNotFound &&
             (version != defaultVersion || profile != defaultProfile)) {
             compiler->infoSink.info << "Warning, (version, profile) forced to be ("
@@ -884,7 +866,7 @@
                                     << "), while in source code it is ("
                                     << version << ", " << ProfileName(profile) << ")\n";
         }
-#endif
+
         if (versionNotFound) {
             versionNotFirstToken = false;
             versionNotFirst = false;
@@ -899,13 +881,7 @@
 
     bool goodVersion = DeduceVersionProfile(compiler->infoSink, stage,
                                             versionNotFirst, defaultVersion, source, version, profile, spvVersion);
-#ifdef GLSLANG_WEB
-    profile = EEsProfile;
-    version = 310;
-#endif
-
     bool versionWillBeError = (versionNotFound || (profile == EEsProfile && version >= 300 && versionNotFirst));
-#if !defined(GLSLANG_WEB)
     bool warnVersionNotFirst = false;
     if (! versionWillBeError && versionNotFirstToken) {
         if (messages & EShMsgRelaxedErrors)
@@ -913,7 +889,6 @@
         else
             versionWillBeError = true;
     }
-#endif
 
     intermediate.setSource(source);
     intermediate.setVersion(version);
@@ -967,6 +942,7 @@
     std::unique_ptr<TParseContextBase> parseContext(CreateParseContext(*symbolTable, intermediate, version, profile, source,
                                                     stage, compiler->infoSink,
                                                     spvVersion, forwardCompatible, messages, false, sourceEntryPointName));
+    parseContext->compileOnly = compileOnly;
     TPpContext ppContext(*parseContext, names[numPre] ? names[numPre] : "", includer);
 
     // only GLSL (bison triggered, really) needs an externally set scan context
@@ -978,13 +954,11 @@
     parseContext->setLimits(*resources);
     if (! goodVersion)
         parseContext->addError();
-#if !defined(GLSLANG_WEB)
     if (warnVersionNotFirst) {
         TSourceLoc loc;
         loc.init();
         parseContext->warn(loc, "Illegal to have non-comment, non-whitespace tokens before #version", "#version", "");
     }
-#endif
 
     parseContext->initializeExtensionBehavior();
 
@@ -1016,8 +990,6 @@
     return success;
 }
 
-#if !defined(GLSLANG_WEB)
-
 // Responsible for keeping track of the most recent source string and line in
 // the preprocessor and outputting newlines appropriately if the source string
 // or line changes.
@@ -1095,8 +1067,8 @@
                     EShOptimizationLevel, EShMessages)
     {
         // This is a list of tokens that do not require a space before or after.
-        static const std::string unNeededSpaceTokens = ";()[]";
-        static const std::string noSpaceBeforeTokens = ",";
+        static const std::string noNeededSpaceBeforeTokens = ";)[].,";
+        static const std::string noNeededSpaceAfterTokens = ".([";
         glslang::TPpToken ppToken;
 
         parseContext.setScanner(&input);
@@ -1169,6 +1141,7 @@
         });
 
         int lastToken = EndOfInput; // lastToken records the last token processed.
+        std::string lastTokenName;
         do {
             int token = ppContext.tokenize(ppToken);
             if (token == EndOfInput)
@@ -1187,12 +1160,23 @@
             // Output a space in between tokens, but not at the start of a line,
             // and also not around special tokens. This helps with readability
             // and consistency.
-            if (!isNewString && !isNewLine && lastToken != EndOfInput &&
-                (unNeededSpaceTokens.find((char)token) == std::string::npos) &&
-                (unNeededSpaceTokens.find((char)lastToken) == std::string::npos) &&
-                (noSpaceBeforeTokens.find((char)token) == std::string::npos)) {
-                outputBuffer += ' ';
+            if (!isNewString && !isNewLine && lastToken != EndOfInput) {
+                // left parenthesis need a leading space, except it is in a function-call-like context.
+                // examples: `for (xxx)`, `a * (b + c)`, `vec(2.0)`, `foo(x, y, z)`
+                if (token == '(') {
+                    if (lastToken != PpAtomIdentifier ||
+                        lastTokenName == "if" ||
+                        lastTokenName == "for" ||
+                        lastTokenName == "while" ||
+                        lastTokenName == "switch")
+                        outputBuffer += ' ';
+                } else if ((noNeededSpaceBeforeTokens.find((char)token) == std::string::npos) &&
+                    (noNeededSpaceAfterTokens.find((char)lastToken) == std::string::npos)) {
+                    outputBuffer += ' ';
+                }
             }
+            if (token == PpAtomIdentifier)
+                lastTokenName = ppToken.name;
             lastToken = token;
             if (token == PpAtomConstString)
                 outputBuffer += "\"";
@@ -1214,8 +1198,6 @@
     std::string* outputString;
 };
 
-#endif
-
 // DoFullParse is a valid ProcessingConext template argument for fully
 // parsing the shader.  It populates the "intermediate" with the AST.
 struct DoFullParse{
@@ -1246,7 +1228,6 @@
     }
 };
 
-#if !defined(GLSLANG_WEB)
 // 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
@@ -1281,7 +1262,6 @@
                            forwardCompatible, messages, intermediate, parser,
                            false, includer, "", environment);
 }
-#endif
 
 //
 // do a partial compile on the given strings for a single compilation unit
@@ -1312,14 +1292,15 @@
     TIntermediate& intermediate,// returned tree, etc.
     TShader::Includer& includer,
     const std::string sourceEntryPointName = "",
-    TEnvironment* environment = nullptr)
+    TEnvironment* environment = nullptr,
+    bool compileOnly = false)
 {
     DoFullParse parser;
     return ProcessDeferred(compiler, shaderStrings, numStrings, inputLengths, stringNames,
                            preamble, optLevel, resources, defaultVersion,
                            defaultProfile, forceDefaultVersionAndProfile, overrideVersion,
                            forwardCompatible, messages, intermediate, parser,
-                           true, includer, sourceEntryPointName, environment);
+                           true, includer, sourceEntryPointName, environment, compileOnly);
 }
 
 } // end anonymous namespace for local functions
@@ -1329,12 +1310,7 @@
 //
 int ShInitialize()
 {
-    glslang::InitGlobalLock();
-
-    if (! InitProcess())
-        return 0;
-
-    glslang::GetGlobalLock();
+    const std::lock_guard<std::mutex> lock(init_lock);
     ++NumberOfClients;
 
     if (PerProcessGPA == nullptr)
@@ -1345,7 +1321,6 @@
     glslang::HlslScanContext::fillInKeywordMap();
 #endif
 
-    glslang::ReleaseGlobalLock();
     return 1;
 }
 
@@ -1354,31 +1329,22 @@
 // objects.
 //
 
-ShHandle ShConstructCompiler(const EShLanguage language, int debugOptions)
+ShHandle ShConstructCompiler(const EShLanguage language, int /*debugOptions unused*/)
 {
-    if (!InitThread())
-        return nullptr;
-
-    TShHandleBase* base = static_cast<TShHandleBase*>(ConstructCompiler(language, debugOptions));
+    TShHandleBase* base = static_cast<TShHandleBase*>(ConstructCompiler(language, 0));
 
     return reinterpret_cast<void*>(base);
 }
 
-ShHandle ShConstructLinker(const EShExecutable executable, int debugOptions)
+ShHandle ShConstructLinker(const EShExecutable executable, int /*debugOptions unused*/)
 {
-    if (!InitThread())
-        return nullptr;
-
-    TShHandleBase* base = static_cast<TShHandleBase*>(ConstructLinker(executable, debugOptions));
+    TShHandleBase* base = static_cast<TShHandleBase*>(ConstructLinker(executable, 0));
 
     return reinterpret_cast<void*>(base);
 }
 
 ShHandle ShConstructUniformMap()
 {
-    if (!InitThread())
-        return nullptr;
-
     TShHandleBase* base = static_cast<TShHandleBase*>(ConstructUniformMap());
 
     return reinterpret_cast<void*>(base);
@@ -1404,14 +1370,11 @@
 //
 int ShFinalize()
 {
-    glslang::GetGlobalLock();
+    const std::lock_guard<std::mutex> lock(init_lock);
     --NumberOfClients;
     assert(NumberOfClients >= 0);
-    bool finalize = NumberOfClients == 0;
-    if (! finalize) {
-        glslang::ReleaseGlobalLock();
+    if (NumberOfClients > 0)
         return 1;
-    }
 
     for (int version = 0; version < VersionCount; ++version) {
         for (int spvVersion = 0; spvVersion < SpvVersionCount; ++spvVersion) {
@@ -1449,7 +1412,6 @@
     glslang::HlslScanContext::deleteKeywordMap();
 #endif
 
-    glslang::ReleaseGlobalLock();
     return 1;
 }
 
@@ -1831,8 +1793,6 @@
 void TShader::setEnhancedMsgs()                         { intermediate->setEnhancedMsgs(); }
 void TShader::setNanMinMaxClamp(bool useNonNan)         { intermediate->setNanMinMaxClamp(useNonNan); }
 
-#ifndef GLSLANG_WEB
-
 // Set binding base for given resource type
 void TShader::setShiftBinding(TResourceType res, unsigned int base) {
     intermediate->setShiftBinding(res, base);
@@ -1874,7 +1834,6 @@
 void TShader::setNoStorageFormat(bool useUnknownFormat) { intermediate->setNoStorageFormat(useUnknownFormat); }
 void TShader::setResourceSetBinding(const std::vector<std::string>& base)   { intermediate->setResourceSetBinding(base); }
 void TShader::setTextureSamplerTransformMode(EShTextureSamplerTransformMode mode) { intermediate->setTextureSamplerTransformMode(mode); }
-#endif
 
 void TShader::addBlockStorageOverride(const char* nameStr, TBlockStorageClass backing) { intermediate->addBlockStorageOverride(nameStr, backing); }
 
@@ -1899,8 +1858,6 @@
 bool TShader::parse(const TBuiltInResource* builtInResources, int defaultVersion, EProfile defaultProfile, bool forceDefaultVersionAndProfile,
                     bool forwardCompatible, EShMessages messages, Includer& includer)
 {
-    if (! InitThread())
-        return false;
     SetThreadPoolAllocator(pool);
 
     if (! preamble)
@@ -1910,10 +1867,9 @@
                            preamble, EShOptNone, builtInResources, defaultVersion,
                            defaultProfile, forceDefaultVersionAndProfile, overrideVersion,
                            forwardCompatible, messages, *intermediate, includer, sourceEntryPointName,
-                           &environment);
+                           &environment, compileOnly);
 }
 
-#if !defined(GLSLANG_WEB)
 // Fill in a string with the result of preprocessing ShaderStrings
 // Returns true if all extensions, pragmas and version strings were valid.
 //
@@ -1926,8 +1882,6 @@
                          std::string* output_string,
                          Includer& includer)
 {
-    if (! InitThread())
-        return false;
     SetThreadPoolAllocator(pool);
 
     if (! preamble)
@@ -1939,7 +1893,6 @@
                               forwardCompatible, message, includer, *intermediate, output_string,
                               &environment);
 }
-#endif
 
 const char* TShader::getInfoLog()
 {
@@ -1951,11 +1904,7 @@
     return infoSink->debug.c_str();
 }
 
-TProgram::TProgram() :
-#if !defined(GLSLANG_WEB)
-    reflection(nullptr),
-#endif
-    linked(false)
+TProgram::TProgram() : reflection(nullptr), linked(false)
 {
     pool = new TPoolAllocator;
     infoSink = new TInfoSink;
@@ -1968,9 +1917,7 @@
 TProgram::~TProgram()
 {
     delete infoSink;
-#if !defined(GLSLANG_WEB)
     delete reflection;
-#endif
 
     for (int s = 0; s < EShLangCount; ++s)
         if (newedIntermediate[s])
@@ -2018,7 +1965,6 @@
     if (stages[stage].size() == 0)
         return true;
 
-#if !defined(GLSLANG_WEB)
     int numEsShaders = 0, numNonEsShaders = 0;
     for (auto it = stages[stage].begin(); it != stages[stage].end(); ++it) {
         if ((*it)->intermediate->getProfile() == EEsProfile) {
@@ -2069,9 +2015,6 @@
         for (it = stages[stage].begin(); it != stages[stage].end(); ++it)
             intermediate[stage]->merge(*infoSink, *(*it)->intermediate);
     }
-#else
-    intermediate[stage] = stages[stage].front()->intermediate;
-#endif
     intermediate[stage]->finalCheck(*infoSink, (messages & EShMsgKeepUncalled) != 0);
 
     if (messages & EShMsgAST)
@@ -2153,8 +2096,6 @@
     return infoSink->debug.c_str();
 }
 
-#if !defined(GLSLANG_WEB)
-
 //
 // Reflection implementation.
 //
@@ -2235,6 +2176,4 @@
     return ioMapper->doMap(pResolver, *infoSink);
 }
 
-#endif // !GLSLANG_WEB
-
 } // end namespace glslang
diff --git a/glslang/MachineIndependent/SpirvIntrinsics.cpp b/glslang/MachineIndependent/SpirvIntrinsics.cpp
index ecef560..1d08797 100644
--- a/glslang/MachineIndependent/SpirvIntrinsics.cpp
+++ b/glslang/MachineIndependent/SpirvIntrinsics.cpp
@@ -33,8 +33,6 @@
 // POSSIBILITY OF SUCH DAMAGE.
 //
 
-#ifndef GLSLANG_WEB
-
 //
 // GL_EXT_spirv_intrinsics
 //
@@ -47,11 +45,11 @@
 
 bool TSpirvTypeParameter::operator==(const TSpirvTypeParameter& rhs) const
 {
-    if (constant != nullptr)
-        return constant->getConstArray() == rhs.constant->getConstArray();
+    if (getAsConstant() != nullptr)
+        return getAsConstant()->getConstArray() == rhs.getAsConstant()->getConstArray();
 
-    assert(type != nullptr);
-    return *type == *rhs.type;
+    assert(getAsType() != nullptr);
+    return *getAsType() == *rhs.getAsType();
 }
 
 //
@@ -76,7 +74,7 @@
             spirvReq->capabilities.insert(capability->getAsConstantUnion()->getConstArray()[0].getIConst());
         }
     } else
-        error(loc, "unknow SPIR-V requirement", name.c_str(), "");
+        error(loc, "unknown SPIR-V requirement", name.c_str(), "");
 
     return spirvReq;
 }
@@ -298,7 +296,8 @@
     return spirvTypeParams;
 }
 
-TSpirvTypeParameters* TParseContext::makeSpirvTypeParameters(const TSourceLoc& loc, const TPublicType& type)
+TSpirvTypeParameters* TParseContext::makeSpirvTypeParameters(const TSourceLoc& /* loc */,
+                                                             const TPublicType& type)
 {
     TSpirvTypeParameters* spirvTypeParams = new TSpirvTypeParameters;
     spirvTypeParams->push_back(TSpirvTypeParameter(new TType(type)));
@@ -359,5 +358,3 @@
 }
 
 } // end namespace glslang
-
-#endif // GLSLANG_WEB
diff --git a/glslang/MachineIndependent/SymbolTable.cpp b/glslang/MachineIndependent/SymbolTable.cpp
index 43f8dbe..dae5a8b 100644
--- a/glslang/MachineIndependent/SymbolTable.cpp
+++ b/glslang/MachineIndependent/SymbolTable.cpp
@@ -65,7 +65,6 @@
     case EbtInt:                mangledName += 'i';      break;
     case EbtUint:               mangledName += 'u';      break;
     case EbtBool:               mangledName += 'b';      break;
-#ifndef GLSLANG_WEB
     case EbtDouble:             mangledName += 'd';      break;
     case EbtFloat16:            mangledName += "f16";    break;
     case EbtInt8:               mangledName += "i8";     break;
@@ -79,12 +78,9 @@
     case EbtRayQuery:           mangledName += "rq";     break;
     case EbtSpirvType:          mangledName += "spv-t";  break;
     case EbtHitObjectNV:        mangledName += "ho";     break;
-#endif
     case EbtSampler:
         switch (sampler.type) {
-#ifndef GLSLANG_WEB
         case EbtFloat16: mangledName += "f16"; break;
-#endif
         case EbtInt:   mangledName += "i"; break;
         case EbtUint:  mangledName += "u"; break;
         case EbtInt64:   mangledName += "i64"; break;
@@ -111,12 +107,10 @@
         case Esd2D:       mangledName += "2";  break;
         case Esd3D:       mangledName += "3";  break;
         case EsdCube:     mangledName += "C";  break;
-#ifndef GLSLANG_WEB
         case Esd1D:       mangledName += "1";  break;
         case EsdRect:     mangledName += "R2"; break;
         case EsdBuffer:   mangledName += "B";  break;
         case EsdSubpass:  mangledName += "P";  break;
-#endif
         default: break; // some compilers want this
         }
 
@@ -184,8 +178,6 @@
     }
 }
 
-#if !defined(GLSLANG_WEB)
-
 //
 // Dump functions.
 //
@@ -264,8 +256,6 @@
     }
 }
 
-#endif
-
 //
 // Functions have buried pointers to delete.
 //
@@ -328,6 +318,16 @@
     }
 }
 
+// Make a single function require an extension(s). i.e., this will only set the extensions for the symbol that matches 'name' exactly.
+// This is different from setFunctionExtensions, which uses std::map::lower_bound to effectively set all symbols that start with 'name'.
+// Should only be used for a version/profile that actually needs the extension(s).
+void TSymbolTableLevel::setSingleFunctionExtensions(const char* name, int num, const char* const extensions[])
+{
+    if (auto candidate = level.find(name); candidate != level.end()) {
+        candidate->second->setExtensions(num, extensions);
+    }
+}
+
 //
 // Make all symbols in this table level read only.
 //
@@ -398,9 +398,7 @@
     implicitThis = copyOf.implicitThis;
     illegalImplicitThis = copyOf.illegalImplicitThis;
     defaultParamCount = copyOf.defaultParamCount;
-#ifndef GLSLANG_WEB
     spirvInst = copyOf.spirvInst;
-#endif
 }
 
 TFunction* TFunction::clone() const
diff --git a/glslang/MachineIndependent/SymbolTable.h b/glslang/MachineIndependent/SymbolTable.h
index c2b386e..94c3929 100644
--- a/glslang/MachineIndependent/SymbolTable.h
+++ b/glslang/MachineIndependent/SymbolTable.h
@@ -117,10 +117,8 @@
     virtual int getNumExtensions() const { return extensions == nullptr ? 0 : (int)extensions->size(); }
     virtual const char** getExtensions() const { return extensions->data(); }
 
-#if !defined(GLSLANG_WEB)
     virtual void dump(TInfoSink& infoSink, bool complete = false) const = 0;
     void dumpExtensions(TInfoSink& infoSink) const;
-#endif
 
     virtual bool isReadOnly() const { return ! writable; }
     virtual void makeReadOnly() { writable = false; }
@@ -196,9 +194,7 @@
     }
     virtual const char** getMemberExtensions(int member) const { return (*memberExtensions)[member].data(); }
 
-#if !defined(GLSLANG_WEB)
     virtual void dump(TInfoSink& infoSink, bool complete = false) const;
-#endif
 
 protected:
     explicit TVariable(const TVariable&);
@@ -250,7 +246,8 @@
         TSymbol(name),
         mangledName(*name + '('),
         op(tOp),
-        defined(false), prototyped(false), implicitThis(false), illegalImplicitThis(false), defaultParamCount(0)
+        defined(false), prototyped(false), implicitThis(false), illegalImplicitThis(false), defaultParamCount(0),
+        linkType(ELinkNone)
     {
         returnType.shallowCopy(retType);
         declaredBuiltIn = retType.getQualifier().builtIn;
@@ -321,18 +318,17 @@
     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)
     {
         relateToOperator(EOpSpirvInst);
         spirvInst = inst;
     }
     virtual const TSpirvInstruction& getSpirvInstruction() const { return spirvInst; }
-#endif
 
-#if !defined(GLSLANG_WEB)
     virtual void dump(TInfoSink& infoSink, bool complete = false) const override;
-#endif
+
+    void setExport() { linkType = ELinkExport; }
+    TLinkType getLinkType() const { return linkType; }
 
 protected:
     explicit TFunction(const TFunction&);
@@ -354,9 +350,8 @@
                                // but is not allowed to use them, or see hidden symbols instead.
     int  defaultParamCount;
 
-#ifndef GLSLANG_WEB
     TSpirvInstruction spirvInst; // SPIR-V instruction qualifiers
-#endif
+    TLinkType linkType;
 };
 
 //
@@ -396,9 +391,7 @@
     virtual const char** getExtensions() const override { return anonContainer.getMemberExtensions(memberNumber); }
 
     virtual int getAnonId() const { return anonId; }
-#if !defined(GLSLANG_WEB)
     virtual void dump(TInfoSink& infoSink, bool complete = false) const override;
-#endif
 
 protected:
     explicit TAnonMember(const TAnonMember&);
@@ -583,9 +576,8 @@
 
     void relateToOperator(const char* name, TOperator op);
     void setFunctionExtensions(const char* name, int num, const char* const extensions[]);
-#if !defined(GLSLANG_WEB)
+    void setSingleFunctionExtensions(const char* name, int num, const char* const extensions[]);
     void dump(TInfoSink& infoSink, bool complete = false) const;
-#endif
     TSymbolTableLevel* clone() const;
     void readOnly();
 
@@ -886,6 +878,12 @@
             table[level]->setFunctionExtensions(name, num, extensions);
     }
 
+    void setSingleFunctionExtensions(const char* name, int num, const char* const extensions[])
+    {
+        for (unsigned int level = 0; level < table.size(); ++level)
+            table[level]->setSingleFunctionExtensions(name, num, extensions);
+    }
+
     void setVariableExtensions(const char* name, int numExts, const char* const extensions[])
     {
         TSymbol* symbol = find(TString(name));
@@ -913,9 +911,7 @@
     }
 
     long long getMaxSymbolId() { return uniqueId; }
-#if !defined(GLSLANG_WEB)
     void dump(TInfoSink& infoSink, bool complete = false) const;
-#endif
     void copyTable(const TSymbolTable& copyOf);
 
     void setPreviousDefaultPrecisions(TPrecisionQualifier *p) { table[currentLevel()]->setPreviousDefaultPrecisions(p); }
diff --git a/glslang/MachineIndependent/Versions.cpp b/glslang/MachineIndependent/Versions.cpp
index eae0a59..b0b901a 100644
--- a/glslang/MachineIndependent/Versions.cpp
+++ b/glslang/MachineIndependent/Versions.cpp
@@ -1,7 +1,7 @@
 //
 // Copyright (C) 2002-2005  3Dlabs Inc. Ltd.
 // Copyright (C) 2012-2013 LunarG, Inc.
-// Copyright (C) 2017 ARM Limited.
+// Copyright (C) 2017, 2022-2024 Arm Limited.
 // Copyright (C) 2015-2020 Google, Inc.
 // Modifications Copyright (C) 2020 Advanced Micro Devices, Inc. All rights reserved.
 //
@@ -151,8 +151,6 @@
 
 namespace glslang {
 
-#ifndef GLSLANG_WEB
-
 //
 // Initialize all extensions, almost always to 'disable', as once their features
 // are incorporated into a core version, their features are supported through allowing that
@@ -237,6 +235,7 @@
     extensionBehavior[E_GL_KHR_shader_subgroup_ballot]           = EBhDisable;
     extensionBehavior[E_GL_KHR_shader_subgroup_shuffle]          = EBhDisable;
     extensionBehavior[E_GL_KHR_shader_subgroup_shuffle_relative] = EBhDisable;
+    extensionBehavior[E_GL_KHR_shader_subgroup_rotate]           = EBhDisable;
     extensionBehavior[E_GL_KHR_shader_subgroup_clustered]        = EBhDisable;
     extensionBehavior[E_GL_KHR_shader_subgroup_quad]             = EBhDisable;
     extensionBehavior[E_GL_KHR_memory_scope_semantics]           = EBhDisable;
@@ -260,9 +259,12 @@
     extensionBehavior[E_GL_EXT_shader_16bit_storage]                    = EBhDisable;
     extensionBehavior[E_GL_EXT_shader_8bit_storage]                     = EBhDisable;
     extensionBehavior[E_GL_EXT_subgroup_uniform_control_flow]           = EBhDisable;
+    extensionBehavior[E_GL_EXT_maximal_reconvergence]                   = EBhDisable;
 
     extensionBehavior[E_GL_EXT_fragment_shader_barycentric]             = EBhDisable;
 
+    extensionBehavior[E_GL_KHR_cooperative_matrix]                      = EBhDisable;
+
     // #line and #include
     extensionBehavior[E_GL_GOOGLE_cpp_style_line_directive]          = EBhDisable;
     extensionBehavior[E_GL_GOOGLE_include_directive]                 = EBhDisable;
@@ -297,16 +299,18 @@
     extensionBehavior[E_GL_NV_compute_shader_derivatives]            = EBhDisable;
     extensionBehavior[E_GL_NV_shader_texture_footprint]              = EBhDisable;
     extensionBehavior[E_GL_NV_mesh_shader]                           = EBhDisable;
-
     extensionBehavior[E_GL_NV_cooperative_matrix]                    = EBhDisable;
     extensionBehavior[E_GL_NV_shader_sm_builtins]                    = EBhDisable;
     extensionBehavior[E_GL_NV_integer_cooperative_matrix]            = EBhDisable;
-
     extensionBehavior[E_GL_NV_shader_invocation_reorder]             = EBhDisable;
+    extensionBehavior[E_GL_NV_displacement_micromap]                 = EBhDisable;
 
     // ARM
     extensionBehavior[E_GL_ARM_shader_core_builtins]                 = EBhDisable;
 
+    // QCOM
+    extensionBehavior[E_GL_QCOM_image_processing]                    = EBhDisable;
+
     // AEP
     extensionBehavior[E_GL_ANDROID_extension_pack_es31a]             = EBhDisable;
     extensionBehavior[E_GL_KHR_blend_equation_advanced]              = EBhDisable;
@@ -354,8 +358,12 @@
     extensionBehavior[E_GL_EXT_spirv_intrinsics]            = EBhDisable;
     extensionBehavior[E_GL_EXT_mesh_shader]                 = EBhDisable;
     extensionBehavior[E_GL_EXT_opacity_micromap]            = EBhDisable;
+    extensionBehavior[E_GL_EXT_shader_quad_control]         = EBhDisable;
     extensionBehavior[E_GL_EXT_ray_tracing_position_fetch]  = EBhDisable;
     extensionBehavior[E_GL_EXT_shader_tile_image]           = EBhDisable;
+    extensionBehavior[E_GL_EXT_texture_shadow_lod]          = EBhDisable;
+    extensionBehavior[E_GL_EXT_draw_instanced]              = EBhDisable;
+    extensionBehavior[E_GL_EXT_texture_array]               = EBhDisable;
 
     // OVR extensions
     extensionBehavior[E_GL_OVR_multiview]                = EBhDisable;
@@ -383,8 +391,6 @@
     spvUnsupportedExt.push_back(E_GL_ARB_bindless_texture);
 }
 
-#endif // GLSLANG_WEB
-
 // Get code that is not part of a shared symbol table, is specific to this shader,
 // or needed by the preprocessor (which does not use a shared symbol table).
 void TParseVersions::getPreamble(std::string& preamble)
@@ -393,9 +399,6 @@
         preamble =
             "#define GL_ES 1\n"
             "#define GL_FRAGMENT_PRECISION_HIGH 1\n"
-#ifdef GLSLANG_WEB
-            ;
-#else
             "#define GL_OES_texture_3D 1\n"
             "#define GL_OES_standard_derivatives 1\n"
             "#define GL_EXT_frag_depth 1\n"
@@ -436,6 +439,8 @@
             "#define GL_OES_texture_buffer 1\n"
             "#define GL_OES_texture_cube_map_array 1\n"
             "#define GL_EXT_shader_non_constant_global_initializers 1\n"
+
+            "#define GL_QCOM_image_processing 1\n"
             ;
 
             if (version >= 300) {
@@ -444,6 +449,7 @@
             if (version >= 310) {
                 preamble += "#define GL_EXT_null_initializer 1\n";
                 preamble += "#define GL_EXT_subgroup_uniform_control_flow 1\n";
+                preamble += "#define GL_EXT_maximal_reconvergence 1\n";
             }
 
     } else { // !isEsProfile()
@@ -487,7 +493,7 @@
             "#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"
@@ -517,6 +523,8 @@
             "#define GL_KHR_shader_subgroup_clustered 1\n"
             "#define GL_KHR_shader_subgroup_quad 1\n"
 
+            "#define GL_KHR_cooperative_matrix 1\n"
+
             "#define GL_EXT_shader_image_int64 1\n"
             "#define GL_EXT_shader_atomic_int64 1\n"
             "#define GL_EXT_shader_realtime_clock 1\n"
@@ -558,6 +566,8 @@
             "#define GL_NV_integer_cooperative_matrix 1\n"
             "#define GL_NV_shader_invocation_reorder 1\n"
 
+            "#define GL_QCOM_image_processing 1\n"
+
             "#define GL_EXT_shader_explicit_arithmetic_types 1\n"
             "#define GL_EXT_shader_explicit_arithmetic_types_int8 1\n"
             "#define GL_EXT_shader_explicit_arithmetic_types_int16 1\n"
@@ -576,8 +586,14 @@
             "#define GL_EXT_shader_atomic_float2 1\n"
 
             "#define GL_EXT_fragment_shader_barycentric 1\n"
+            "#define GL_EXT_shader_quad_control 1\n"
+            "#define GL_EXT_texture_array 1\n"
             ;
 
+        if (spvVersion.spv == 0) {
+            preamble += "#define GL_ARB_bindless_texture 1\n";
+        }
+
         if (version >= 150) {
             // define GL_core_profile and GL_compatibility_profile
             preamble += "#define GL_core_profile 1\n";
@@ -588,15 +604,13 @@
         if (version >= 140) {
             preamble += "#define GL_EXT_null_initializer 1\n";
             preamble += "#define GL_EXT_subgroup_uniform_control_flow 1\n";
+            preamble += "#define GL_EXT_maximal_reconvergence 1\n";
         }
         if (version >= 130) {
             preamble +="#define GL_FRAGMENT_PRECISION_HIGH 1\n";
         }
-
-#endif // GLSLANG_WEB
     }
 
-#ifndef GLSLANG_WEB
     if ((!isEsProfile() && version >= 140) ||
         (isEsProfile() && version >= 310)) {
         preamble +=
@@ -624,7 +638,6 @@
     preamble +=
             "#define GL_EXT_terminate_invocation 1\n"
             ;
-#endif
 
     // #define VULKAN XXXX
     const int numberBufSize = 12;
@@ -636,7 +649,6 @@
         preamble += "\n";
     }
 
-#ifndef GLSLANG_WEB
     // #define GL_SPIRV XXXX
     if (spvVersion.openGl > 0) {
         preamble += "#define GL_SPIRV ";
@@ -644,9 +656,7 @@
         preamble += numberBuf;
         preamble += "\n";
     }
-#endif
 
-#ifndef GLSLANG_WEB
     // GL_EXT_spirv_intrinsics
     if (!isEsProfile()) {
         switch (language) {
@@ -667,7 +677,6 @@
         default:                                                                                    break;
         }
     }
-#endif
 }
 
 //
@@ -679,7 +688,6 @@
     case EShLangVertex:         return "vertex";
     case EShLangFragment:       return "fragment";
     case EShLangCompute:        return "compute";
-#ifndef GLSLANG_WEB
     case EShLangTessControl:    return "tessellation control";
     case EShLangTessEvaluation: return "tessellation evaluation";
     case EShLangGeometry:       return "geometry";
@@ -691,7 +699,6 @@
     case EShLangCallable:       return "callable";
     case EShLangMesh:           return "mesh";
     case EShLangTask:           return "task";
-#endif
     default:                    return "unknown stage";
     }
 }
@@ -716,7 +723,6 @@
     requireStage(loc, static_cast<EShLanguageMask>(1 << stage), featureDesc);
 }
 
-#ifndef GLSLANG_WEB
 //
 // When to use requireProfile():
 //
@@ -754,7 +760,6 @@
 {
     if (profile & profileMask) {
         bool okay = minVersion > 0 && version >= minVersion;
-#ifndef GLSLANG_WEB
         for (int i = 0; i < numExtensions; ++i) {
             switch (getExtensionBehavior(extensions[i])) {
             case EBhWarn:
@@ -767,7 +772,6 @@
             default: break; // some compilers want this
             }
         }
-#endif
         if (! okay)
             error(loc, "not supported for this version or the enabled extensions", featureDesc, "");
     }
@@ -1335,7 +1339,7 @@
     }
 }
 
-void TParseVersions::fcoopmatCheck(const TSourceLoc& loc, const char* op, bool builtIn)
+void TParseVersions::fcoopmatCheckNV(const TSourceLoc& loc, const char* op, bool builtIn)
 {
     if (!builtIn) {
         const char* const extensions[] = {E_GL_NV_cooperative_matrix};
@@ -1343,14 +1347,22 @@
     }
 }
 
-void TParseVersions::intcoopmatCheck(const TSourceLoc& loc, const char* op, bool builtIn)
+void TParseVersions::intcoopmatCheckNV(const TSourceLoc& loc, const char* op, bool builtIn)
 {
     if (!builtIn) {
         const char* const extensions[] = {E_GL_NV_integer_cooperative_matrix};
         requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, op);
     }
 }
-#endif // GLSLANG_WEB
+
+void TParseVersions::coopmatCheck(const TSourceLoc& loc, const char* op, bool builtIn)
+{
+    if (!builtIn) {
+        const char* const extensions[] = {E_GL_KHR_cooperative_matrix};
+        requireExtensions(loc, sizeof(extensions)/sizeof(extensions[0]), extensions, op);
+    }
+}
+
 // Call for any operation removed because SPIR-V is in use.
 void TParseVersions::spvRemoved(const TSourceLoc& loc, const char* op)
 {
@@ -1368,26 +1380,20 @@
 // Call for any operation that requires Vulkan.
 void TParseVersions::requireVulkan(const TSourceLoc& loc, const char* op)
 {
-#ifndef GLSLANG_WEB
     if (spvVersion.vulkan == 0)
         error(loc, "only allowed when using GLSL for Vulkan", op, "");
-#endif
 }
 
 // Call for any operation that requires SPIR-V.
 void TParseVersions::requireSpv(const TSourceLoc& loc, const char* op)
 {
-#ifndef GLSLANG_WEB
     if (spvVersion.spv == 0)
         error(loc, "only allowed when generating SPIR-V", op, "");
-#endif
 }
 void TParseVersions::requireSpv(const TSourceLoc& loc, const char *op, unsigned int version)
 {
-#ifndef GLSLANG_WEB
     if (spvVersion.spv < version)
         error(loc, "not supported for current targeted SPIR-V version", op, "");
-#endif
 }
 
 } // end namespace glslang
diff --git a/glslang/MachineIndependent/Versions.h b/glslang/MachineIndependent/Versions.h
index 01b8b5d..380c6f1 100755
--- a/glslang/MachineIndependent/Versions.h
+++ b/glslang/MachineIndependent/Versions.h
@@ -1,7 +1,7 @@
 //
 // Copyright (C) 2002-2005  3Dlabs Inc. Ltd.
 // Copyright (C) 2012-2013 LunarG, Inc.
-// Copyright (C) 2017 ARM Limited.
+// Copyright (C) 2017, 2022-2024 Arm Limited.
 // Copyright (C) 2015-2018 Google, Inc.
 // Modifications Copyright (C) 2020 Advanced Micro Devices, Inc. All rights reserved.
 //
@@ -171,9 +171,11 @@
 const char* const E_GL_KHR_shader_subgroup_ballot           = "GL_KHR_shader_subgroup_ballot";
 const char* const E_GL_KHR_shader_subgroup_shuffle          = "GL_KHR_shader_subgroup_shuffle";
 const char* const E_GL_KHR_shader_subgroup_shuffle_relative = "GL_KHR_shader_subgroup_shuffle_relative";
+const char* const E_GL_KHR_shader_subgroup_rotate           = "GL_KHR_shader_subgroup_rotate";
 const char* const E_GL_KHR_shader_subgroup_clustered        = "GL_KHR_shader_subgroup_clustered";
 const char* const E_GL_KHR_shader_subgroup_quad             = "GL_KHR_shader_subgroup_quad";
 const char* const E_GL_KHR_memory_scope_semantics           = "GL_KHR_memory_scope_semantics";
+const char* const E_GL_KHR_cooperative_matrix               = "GL_KHR_cooperative_matrix";
 
 const char* const E_GL_EXT_shader_atomic_int64              = "GL_EXT_shader_atomic_int64";
 
@@ -214,6 +216,10 @@
 const char* const E_GL_EXT_fragment_shader_barycentric      = "GL_EXT_fragment_shader_barycentric";
 const char* const E_GL_EXT_mesh_shader                      = "GL_EXT_mesh_shader";
 const char* const E_GL_EXT_opacity_micromap                 = "GL_EXT_opacity_micromap";
+const char* const E_GL_EXT_shader_quad_control              = "GL_EXT_shader_quad_control";
+const char* const E_GL_EXT_draw_instanced                   = "GL_EXT_draw_instanced";
+const char* const E_GL_EXT_texture_array                    = "GL_EXT_texture_array";
+const char* const E_GL_EXT_maximal_reconvergence            = "GL_EXT_maximal_reconvergence";
 
 // Arrays of extensions for the above viewportEXTs duplications
 
@@ -265,7 +271,12 @@
 const char* const E_GL_NV_compute_shader_derivatives            = "GL_NV_compute_shader_derivatives";
 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";
+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";
 const char* const E_GL_EXT_ray_tracing_position_fetch           = "GL_EXT_ray_tracing_position_fetch";
+const char* const E_GL_NV_displacement_micromap                 = "GL_NV_displacement_micromap";
 
 // ARM
 const char* const E_GL_ARM_shader_core_builtins                 = "GL_ARM_shader_core_builtins";
@@ -275,10 +286,8 @@
 const char* const viewportEXTs[] = { E_GL_ARB_shader_viewport_layer_array, E_GL_NV_viewport_array2 };
 const int Num_viewportEXTs = sizeof(viewportEXTs) / sizeof(viewportEXTs[0]);
 
-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";
+
+const char* const E_GL_QCOM_image_processing                    = "GL_QCOM_image_processing";
 
 // AEP
 const char* const E_GL_ANDROID_extension_pack_es31a             = "GL_ANDROID_extension_pack_es31a";
@@ -330,6 +339,8 @@
 
 const char* const E_GL_EXT_shader_tile_image = "GL_EXT_shader_tile_image";
 
+const char* const E_GL_EXT_texture_shadow_lod = "GL_EXT_texture_shadow_lod";
+
 // Arrays of extensions for the above AEP duplications
 
 const char* const AEP_geometry_shader[] = { E_GL_EXT_geometry_shader, E_GL_OES_geometry_shader };
diff --git a/glslang/MachineIndependent/attribute.cpp b/glslang/MachineIndependent/attribute.cpp
index df7fdc2..19e8faa 100644
--- a/glslang/MachineIndependent/attribute.cpp
+++ b/glslang/MachineIndependent/attribute.cpp
@@ -34,8 +34,6 @@
 // POSSIBILITY OF SUCH DAMAGE.
 //
 
-#ifndef GLSLANG_WEB
-
 #include "attribute.h"
 #include "../Include/intermediate.h"
 #include "ParseHelper.h"
@@ -125,6 +123,10 @@
         return EatPartialCount;
     else if (name == "subgroup_uniform_control_flow")
         return EatSubgroupUniformControlFlow;
+    else if (name == "export")
+        return EatExport;
+    else if (name == "maximally_reconverges")
+        return EatMaximallyReconverges;
     else
         return EatNone;
 }
@@ -357,8 +359,13 @@
 
         switch (it->name) {
         case EatSubgroupUniformControlFlow:
+            requireExtensions(loc, 1, &E_GL_EXT_subgroup_uniform_control_flow, "attribute");
             intermediate.setSubgroupUniformControlFlow();
             break;
+        case EatMaximallyReconverges:
+            requireExtensions(loc, 1, &E_GL_EXT_maximal_reconvergence, "attribute");
+            intermediate.setMaximallyReconverges();
+            break;
         default:
             warn(loc, "attribute does not apply to a function", "", "");
             break;
@@ -367,5 +374,3 @@
 }
 
 } // end namespace glslang
-
-#endif // GLSLANG_WEB
diff --git a/glslang/MachineIndependent/attribute.h b/glslang/MachineIndependent/attribute.h
index c5b2917..3b480c6 100644
--- a/glslang/MachineIndependent/attribute.h
+++ b/glslang/MachineIndependent/attribute.h
@@ -120,6 +120,8 @@
         EatNonWritable,
         EatNonReadable,
         EatSubgroupUniformControlFlow,
+        EatExport,
+        EatMaximallyReconverges,
     };
 
     class TIntermAggregate;
diff --git a/glslang/MachineIndependent/glslang.m4 b/glslang/MachineIndependent/glslang.m4
deleted file mode 100644
index f6f36d6..0000000
--- a/glslang/MachineIndependent/glslang.m4
+++ /dev/null
@@ -1,4472 +0,0 @@
-//
-// Copyright (C) 2002-2005  3Dlabs Inc. Ltd.
-// Copyright (C) 2012-2013 LunarG, Inc.
-// Copyright (C) 2017 ARM Limited.
-// Copyright (C) 2015-2019 Google, Inc.
-// Modifications Copyright (C) 2020 Advanced Micro Devices, Inc. All rights reserved.
-//
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions
-// are met:
-//
-//    Redistributions of source code must retain the above copyright
-//    notice, this list of conditions and the following disclaimer.
-//
-//    Redistributions in binary form must reproduce the above
-//    copyright notice, this list of conditions and the following
-//    disclaimer in the documentation and/or other materials provided
-//    with the distribution.
-//
-//    Neither the name of 3Dlabs Inc. Ltd. nor the names of its
-//    contributors may be used to endorse or promote products derived
-//    from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-//
-// Do not edit the .y file, only edit the .m4 file.
-// The .y bison file is not a source file, it is a derivative of the .m4 file.
-// The m4 file needs to be processed by m4 to generate the .y bison file.
-//
-// Code sandwiched between a pair:
-//
-//    GLSLANG_WEB_EXCLUDE_ON
-//      ...
-//      ...
-//      ...
-//    GLSLANG_WEB_EXCLUDE_OFF
-//
-// Will be excluded from the grammar when m4 is executed as:
-//
-//    m4 -P -DGLSLANG_WEB
-//
-// It will be included when m4 is executed as:
-//
-//    m4 -P
-//
-
-m4_define(`GLSLANG_WEB_EXCLUDE_ON', `m4_ifdef(`GLSLANG_WEB', `m4_divert(`-1')')')
-m4_define(`GLSLANG_WEB_EXCLUDE_OFF', `m4_ifdef(`GLSLANG_WEB', `m4_divert')')
-
-/**
- * This is bison grammar and productions for parsing all versions of the
- * GLSL shading languages.
- */
-%{
-
-/* Based on:
-ANSI C Yacc grammar
-
-In 1985, Jeff Lee published his Yacc grammar (which is accompanied by a
-matching Lex specification) for the April 30, 1985 draft version of the
-ANSI C standard.  Tom Stockfisch reposted it to net.sources in 1987; that
-original, as mentioned in the answer to question 17.25 of the comp.lang.c
-FAQ, can be ftp'ed from ftp.uu.net, file usenet/net.sources/ansi.c.grammar.Z.
-
-I intend to keep this version as close to the current C Standard grammar as
-possible; please let me know if you discover discrepancies.
-
-Jutta Degener, 1995
-*/
-
-#include "SymbolTable.h"
-#include "ParseHelper.h"
-#include "../Public/ShaderLang.h"
-#include "attribute.h"
-
-using namespace glslang;
-
-%}
-
-%define parse.error verbose
-
-%union {
-    struct {
-        glslang::TSourceLoc loc;
-        union {
-            glslang::TString *string;
-            int i;
-            unsigned int u;
-            long long i64;
-            unsigned long long u64;
-            bool b;
-            double d;
-        };
-        glslang::TSymbol* symbol;
-    } lex;
-    struct {
-        glslang::TSourceLoc loc;
-        glslang::TOperator op;
-        union {
-            TIntermNode* intermNode;
-            glslang::TIntermNodePair nodePair;
-            glslang::TIntermTyped* intermTypedNode;
-            glslang::TAttributes* attributes;
-            glslang::TSpirvRequirement* spirvReq;
-            glslang::TSpirvInstruction* spirvInst;
-            glslang::TSpirvTypeParameters* spirvTypeParams;
-        };
-        union {
-            glslang::TPublicType type;
-            glslang::TFunction* function;
-            glslang::TParameter param;
-            glslang::TTypeLoc typeLine;
-            glslang::TTypeList* typeList;
-            glslang::TArraySizes* arraySizes;
-            glslang::TIdentifierList* identifierList;
-        };
-        glslang::TArraySizes* typeParameters;
-    } interm;
-}
-
-%{
-
-/* windows only pragma */
-#ifdef _MSC_VER
-    #pragma warning(disable : 4065)
-    #pragma warning(disable : 4127)
-    #pragma warning(disable : 4244)
-#endif
-
-#define parseContext (*pParseContext)
-#define yyerror(context, msg) context->parserError(msg)
-
-extern int yylex(YYSTYPE*, TParseContext&);
-
-%}
-
-%parse-param {glslang::TParseContext* pParseContext}
-%lex-param {parseContext}
-%pure-parser  // enable thread safety
-%expect 1     // One shift reduce conflict because of if | else
-
-%token <lex> CONST BOOL INT UINT FLOAT
-%token <lex> BVEC2 BVEC3 BVEC4
-%token <lex> IVEC2 IVEC3 IVEC4
-%token <lex> UVEC2 UVEC3 UVEC4
-%token <lex> VEC2 VEC3 VEC4
-%token <lex> MAT2 MAT3 MAT4
-%token <lex> MAT2X2 MAT2X3 MAT2X4
-%token <lex> MAT3X2 MAT3X3 MAT3X4
-%token <lex> MAT4X2 MAT4X3 MAT4X4
-
-// combined image/sampler
-%token <lex> SAMPLER2D SAMPLER3D SAMPLERCUBE SAMPLER2DSHADOW
-%token <lex> SAMPLERCUBESHADOW SAMPLER2DARRAY
-%token <lex> SAMPLER2DARRAYSHADOW ISAMPLER2D ISAMPLER3D ISAMPLERCUBE
-%token <lex> ISAMPLER2DARRAY USAMPLER2D USAMPLER3D
-%token <lex> USAMPLERCUBE USAMPLER2DARRAY
-
-// separate image/sampler
-%token <lex> SAMPLER SAMPLERSHADOW
-%token <lex>  TEXTURE2D  TEXTURE3D  TEXTURECUBE  TEXTURE2DARRAY
-%token <lex> ITEXTURE2D ITEXTURE3D ITEXTURECUBE ITEXTURE2DARRAY
-%token <lex> UTEXTURE2D UTEXTURE3D UTEXTURECUBE UTEXTURE2DARRAY
-
-GLSLANG_WEB_EXCLUDE_ON
-
-%token <lex> ATTRIBUTE VARYING
-%token <lex> FLOAT16_T FLOAT32_T DOUBLE FLOAT64_T
-%token <lex> INT64_T UINT64_T INT32_T UINT32_T INT16_T UINT16_T INT8_T UINT8_T
-%token <lex> I64VEC2 I64VEC3 I64VEC4
-%token <lex> U64VEC2 U64VEC3 U64VEC4
-%token <lex> I32VEC2 I32VEC3 I32VEC4
-%token <lex> U32VEC2 U32VEC3 U32VEC4
-%token <lex> I16VEC2 I16VEC3 I16VEC4
-%token <lex> U16VEC2 U16VEC3 U16VEC4
-%token <lex> I8VEC2  I8VEC3  I8VEC4
-%token <lex> U8VEC2  U8VEC3  U8VEC4
-%token <lex> DVEC2 DVEC3 DVEC4 DMAT2 DMAT3 DMAT4
-%token <lex> F16VEC2 F16VEC3 F16VEC4 F16MAT2 F16MAT3 F16MAT4
-%token <lex> F32VEC2 F32VEC3 F32VEC4 F32MAT2 F32MAT3 F32MAT4
-%token <lex> F64VEC2 F64VEC3 F64VEC4 F64MAT2 F64MAT3 F64MAT4
-%token <lex> DMAT2X2 DMAT2X3 DMAT2X4
-%token <lex> DMAT3X2 DMAT3X3 DMAT3X4
-%token <lex> DMAT4X2 DMAT4X3 DMAT4X4
-%token <lex> F16MAT2X2 F16MAT2X3 F16MAT2X4
-%token <lex> F16MAT3X2 F16MAT3X3 F16MAT3X4
-%token <lex> F16MAT4X2 F16MAT4X3 F16MAT4X4
-%token <lex> F32MAT2X2 F32MAT2X3 F32MAT2X4
-%token <lex> F32MAT3X2 F32MAT3X3 F32MAT3X4
-%token <lex> F32MAT4X2 F32MAT4X3 F32MAT4X4
-%token <lex> F64MAT2X2 F64MAT2X3 F64MAT2X4
-%token <lex> F64MAT3X2 F64MAT3X3 F64MAT3X4
-%token <lex> F64MAT4X2 F64MAT4X3 F64MAT4X4
-%token <lex> ATOMIC_UINT
-%token <lex> ACCSTRUCTNV
-%token <lex> ACCSTRUCTEXT
-%token <lex> RAYQUERYEXT
-%token <lex> FCOOPMATNV ICOOPMATNV UCOOPMATNV
-%token <lex> HITOBJECTNV HITOBJECTATTRNV
-
-// combined image/sampler
-%token <lex> SAMPLERCUBEARRAY SAMPLERCUBEARRAYSHADOW
-%token <lex> ISAMPLERCUBEARRAY USAMPLERCUBEARRAY
-%token <lex> SAMPLER1D SAMPLER1DARRAY SAMPLER1DARRAYSHADOW ISAMPLER1D SAMPLER1DSHADOW
-%token <lex> SAMPLER2DRECT SAMPLER2DRECTSHADOW ISAMPLER2DRECT USAMPLER2DRECT
-%token <lex> SAMPLERBUFFER ISAMPLERBUFFER USAMPLERBUFFER
-%token <lex> SAMPLER2DMS ISAMPLER2DMS USAMPLER2DMS
-%token <lex> SAMPLER2DMSARRAY ISAMPLER2DMSARRAY USAMPLER2DMSARRAY
-%token <lex> SAMPLEREXTERNALOES
-%token <lex> SAMPLEREXTERNAL2DY2YEXT
-%token <lex> ISAMPLER1DARRAY USAMPLER1D USAMPLER1DARRAY 
-%token <lex> F16SAMPLER1D F16SAMPLER2D F16SAMPLER3D F16SAMPLER2DRECT F16SAMPLERCUBE
-%token <lex> F16SAMPLER1DARRAY F16SAMPLER2DARRAY F16SAMPLERCUBEARRAY
-%token <lex> F16SAMPLERBUFFER F16SAMPLER2DMS F16SAMPLER2DMSARRAY
-%token <lex> F16SAMPLER1DSHADOW F16SAMPLER2DSHADOW F16SAMPLER1DARRAYSHADOW F16SAMPLER2DARRAYSHADOW
-%token <lex> F16SAMPLER2DRECTSHADOW F16SAMPLERCUBESHADOW F16SAMPLERCUBEARRAYSHADOW
-
-// images
-%token <lex> IMAGE1D IIMAGE1D UIMAGE1D IMAGE2D IIMAGE2D
-%token <lex> UIMAGE2D IMAGE3D IIMAGE3D UIMAGE3D
-%token <lex> IMAGE2DRECT IIMAGE2DRECT UIMAGE2DRECT
-%token <lex> IMAGECUBE IIMAGECUBE UIMAGECUBE
-%token <lex> IMAGEBUFFER IIMAGEBUFFER UIMAGEBUFFER
-%token <lex> IMAGE1DARRAY IIMAGE1DARRAY UIMAGE1DARRAY
-%token <lex> IMAGE2DARRAY IIMAGE2DARRAY UIMAGE2DARRAY
-%token <lex> IMAGECUBEARRAY IIMAGECUBEARRAY UIMAGECUBEARRAY
-%token <lex> IMAGE2DMS IIMAGE2DMS UIMAGE2DMS
-%token <lex> IMAGE2DMSARRAY IIMAGE2DMSARRAY UIMAGE2DMSARRAY
-
-%token <lex> F16IMAGE1D F16IMAGE2D F16IMAGE3D F16IMAGE2DRECT
-%token <lex> F16IMAGECUBE F16IMAGE1DARRAY F16IMAGE2DARRAY F16IMAGECUBEARRAY
-%token <lex> F16IMAGEBUFFER F16IMAGE2DMS F16IMAGE2DMSARRAY
-
-%token <lex> I64IMAGE1D U64IMAGE1D
-%token <lex> I64IMAGE2D U64IMAGE2D
-%token <lex> I64IMAGE3D U64IMAGE3D
-%token <lex> I64IMAGE2DRECT U64IMAGE2DRECT
-%token <lex> I64IMAGECUBE U64IMAGECUBE
-%token <lex> I64IMAGEBUFFER U64IMAGEBUFFER
-%token <lex> I64IMAGE1DARRAY U64IMAGE1DARRAY
-%token <lex> I64IMAGE2DARRAY U64IMAGE2DARRAY
-%token <lex> I64IMAGECUBEARRAY U64IMAGECUBEARRAY
-%token <lex> I64IMAGE2DMS U64IMAGE2DMS
-%token <lex> I64IMAGE2DMSARRAY U64IMAGE2DMSARRAY
-
-// texture without sampler
-%token <lex> TEXTURECUBEARRAY ITEXTURECUBEARRAY UTEXTURECUBEARRAY
-%token <lex> TEXTURE1D ITEXTURE1D UTEXTURE1D
-%token <lex> TEXTURE1DARRAY ITEXTURE1DARRAY UTEXTURE1DARRAY
-%token <lex> TEXTURE2DRECT ITEXTURE2DRECT UTEXTURE2DRECT
-%token <lex> TEXTUREBUFFER ITEXTUREBUFFER UTEXTUREBUFFER
-%token <lex> TEXTURE2DMS ITEXTURE2DMS UTEXTURE2DMS
-%token <lex> TEXTURE2DMSARRAY ITEXTURE2DMSARRAY UTEXTURE2DMSARRAY
-
-%token <lex> F16TEXTURE1D F16TEXTURE2D F16TEXTURE3D F16TEXTURE2DRECT F16TEXTURECUBE
-%token <lex> F16TEXTURE1DARRAY F16TEXTURE2DARRAY F16TEXTURECUBEARRAY
-%token <lex> F16TEXTUREBUFFER F16TEXTURE2DMS F16TEXTURE2DMSARRAY
-
-// input attachments
-%token <lex> SUBPASSINPUT SUBPASSINPUTMS ISUBPASSINPUT ISUBPASSINPUTMS USUBPASSINPUT USUBPASSINPUTMS
-%token <lex> F16SUBPASSINPUT F16SUBPASSINPUTMS
-
-// spirv intrinsics
-%token <lex> SPIRV_INSTRUCTION SPIRV_EXECUTION_MODE SPIRV_EXECUTION_MODE_ID
-%token <lex> SPIRV_DECORATE SPIRV_DECORATE_ID SPIRV_DECORATE_STRING
-%token <lex> SPIRV_TYPE SPIRV_STORAGE_CLASS SPIRV_BY_REFERENCE SPIRV_LITERAL
-%token <lex> ATTACHMENTEXT IATTACHMENTEXT UATTACHMENTEXT
-
-GLSLANG_WEB_EXCLUDE_OFF
-
-%token <lex> LEFT_OP RIGHT_OP
-%token <lex> INC_OP DEC_OP LE_OP GE_OP EQ_OP NE_OP
-%token <lex> AND_OP OR_OP XOR_OP MUL_ASSIGN DIV_ASSIGN ADD_ASSIGN
-%token <lex> MOD_ASSIGN LEFT_ASSIGN RIGHT_ASSIGN AND_ASSIGN XOR_ASSIGN OR_ASSIGN
-%token <lex> SUB_ASSIGN
-%token <lex> STRING_LITERAL
-
-%token <lex> LEFT_PAREN RIGHT_PAREN LEFT_BRACKET RIGHT_BRACKET LEFT_BRACE RIGHT_BRACE DOT
-%token <lex> COMMA COLON EQUAL SEMICOLON BANG DASH TILDE PLUS STAR SLASH PERCENT
-%token <lex> LEFT_ANGLE RIGHT_ANGLE VERTICAL_BAR CARET AMPERSAND QUESTION
-
-%token <lex> INVARIANT
-%token <lex> HIGH_PRECISION MEDIUM_PRECISION LOW_PRECISION PRECISION
-%token <lex> PACKED RESOURCE SUPERP
-
-%token <lex> FLOATCONSTANT INTCONSTANT UINTCONSTANT BOOLCONSTANT
-%token <lex> IDENTIFIER TYPE_NAME
-%token <lex> CENTROID IN OUT INOUT
-%token <lex> STRUCT VOID WHILE
-%token <lex> BREAK CONTINUE DO ELSE FOR IF DISCARD RETURN SWITCH CASE DEFAULT
-%token <lex> TERMINATE_INVOCATION
-%token <lex> TERMINATE_RAY IGNORE_INTERSECTION
-%token <lex> UNIFORM SHARED BUFFER TILEIMAGEEXT
-%token <lex> FLAT SMOOTH LAYOUT
-
-GLSLANG_WEB_EXCLUDE_ON
-%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> PAYLOADEXT PAYLOADINEXT HITATTREXT CALLDATAEXT CALLDATAINEXT
-%token <lex> PATCH SAMPLE NONUNIFORM
-%token <lex> COHERENT VOLATILE RESTRICT READONLY WRITEONLY DEVICECOHERENT QUEUEFAMILYCOHERENT WORKGROUPCOHERENT
-%token <lex> SUBGROUPCOHERENT NONPRIVATE SHADERCALLCOHERENT
-%token <lex> NOPERSPECTIVE EXPLICITINTERPAMD PERVERTEXEXT PERVERTEXNV PERPRIMITIVENV PERVIEWNV PERTASKNV PERPRIMITIVEEXT TASKPAYLOADWORKGROUPEXT
-%token <lex> PRECISE
-GLSLANG_WEB_EXCLUDE_OFF
-
-%type <interm> assignment_operator unary_operator
-%type <interm.intermTypedNode> variable_identifier primary_expression postfix_expression
-%type <interm.intermTypedNode> expression integer_expression assignment_expression
-%type <interm.intermTypedNode> unary_expression multiplicative_expression additive_expression
-%type <interm.intermTypedNode> relational_expression equality_expression
-%type <interm.intermTypedNode> conditional_expression constant_expression
-%type <interm.intermTypedNode> logical_or_expression logical_xor_expression logical_and_expression
-%type <interm.intermTypedNode> shift_expression and_expression exclusive_or_expression inclusive_or_expression
-%type <interm.intermTypedNode> function_call initializer condition conditionopt
-
-%type <interm.intermNode> translation_unit function_definition
-%type <interm.intermNode> statement simple_statement
-%type <interm.intermNode> statement_list switch_statement_list compound_statement
-%type <interm.intermNode> declaration_statement selection_statement selection_statement_nonattributed expression_statement
-%type <interm.intermNode> switch_statement switch_statement_nonattributed case_label
-%type <interm.intermNode> declaration external_declaration
-%type <interm.intermNode> for_init_statement compound_statement_no_new_scope
-%type <interm.nodePair> selection_rest_statement for_rest_statement
-%type <interm.intermNode> iteration_statement iteration_statement_nonattributed jump_statement statement_no_new_scope statement_scoped
-%type <interm> single_declaration init_declarator_list
-
-%type <interm> parameter_declaration parameter_declarator parameter_type_specifier
-
-%type <interm> array_specifier
-%type <interm.type> invariant_qualifier interpolation_qualifier storage_qualifier precision_qualifier
-%type <interm.type> layout_qualifier layout_qualifier_id_list layout_qualifier_id
-
-%type <interm.typeParameters> type_parameter_specifier
-%type <interm.typeParameters> type_parameter_specifier_opt
-%type <interm.typeParameters> type_parameter_specifier_list
-
-%type <interm.type> type_qualifier fully_specified_type type_specifier
-%type <interm.type> single_type_qualifier
-%type <interm.type> type_specifier_nonarray
-%type <interm.type> struct_specifier
-%type <interm.typeLine> struct_declarator
-%type <interm.typeList> struct_declarator_list struct_declaration struct_declaration_list
-%type <interm> block_structure
-%type <interm.function> function_header function_declarator
-%type <interm.function> function_header_with_parameters
-%type <interm> function_call_header_with_parameters function_call_header_no_parameters function_call_generic function_prototype
-%type <interm> function_call_or_method function_identifier function_call_header
-
-%type <interm.identifierList> identifier_list
-
-GLSLANG_WEB_EXCLUDE_ON
-%type <interm.type> precise_qualifier non_uniform_qualifier
-%type <interm.typeList> type_name_list
-%type <interm.attributes> attribute attribute_list single_attribute
-%type <interm.intermNode> demote_statement
-%type <interm.intermTypedNode> initializer_list
-%type <interm.spirvReq> spirv_requirements_list spirv_requirements_parameter
-%type <interm.intermNode> spirv_extension_list spirv_capability_list
-%type <interm.intermNode> spirv_execution_mode_qualifier
-%type <interm.intermNode> spirv_execution_mode_parameter_list spirv_execution_mode_parameter spirv_execution_mode_id_parameter_list
-%type <interm.type> spirv_storage_class_qualifier
-%type <interm.type> spirv_decorate_qualifier
-%type <interm.intermNode> spirv_decorate_parameter_list spirv_decorate_parameter
-%type <interm.intermNode> spirv_decorate_id_parameter_list spirv_decorate_id_parameter
-%type <interm.intermNode> spirv_decorate_string_parameter_list
-%type <interm.type> spirv_type_specifier
-%type <interm.spirvTypeParams> spirv_type_parameter_list spirv_type_parameter
-%type <interm.spirvInst> spirv_instruction_qualifier
-%type <interm.spirvInst> spirv_instruction_qualifier_list spirv_instruction_qualifier_id
-GLSLANG_WEB_EXCLUDE_OFF
-
-%start translation_unit
-%%
-
-variable_identifier
-    : IDENTIFIER {
-        $$ = parseContext.handleVariable($1.loc, $1.symbol, $1.string);
-    }
-    ;
-
-primary_expression
-    : variable_identifier {
-        $$ = $1;
-    }
-    | LEFT_PAREN expression RIGHT_PAREN {
-        $$ = $2;
-        if ($$->getAsConstantUnion())
-            $$->getAsConstantUnion()->setExpression();
-    }
-    | FLOATCONSTANT {
-        $$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat, $1.loc, true);
-    }
-    | INTCONSTANT {
-        $$ = parseContext.intermediate.addConstantUnion($1.i, $1.loc, true);
-    }
-    | UINTCONSTANT {
-        parseContext.fullIntegerCheck($1.loc, "unsigned literal");
-        $$ = parseContext.intermediate.addConstantUnion($1.u, $1.loc, true);
-    }
-    | BOOLCONSTANT {
-        $$ = parseContext.intermediate.addConstantUnion($1.b, $1.loc, true);
-    }
-GLSLANG_WEB_EXCLUDE_ON
-    | STRING_LITERAL {
-        $$ = parseContext.intermediate.addConstantUnion($1.string, $1.loc, true);
-    }
-    | INT32CONSTANT {
-        parseContext.explicitInt32Check($1.loc, "32-bit signed literal");
-        $$ = parseContext.intermediate.addConstantUnion($1.i, $1.loc, true);
-    }
-    | UINT32CONSTANT {
-        parseContext.explicitInt32Check($1.loc, "32-bit signed literal");
-        $$ = parseContext.intermediate.addConstantUnion($1.u, $1.loc, true);
-    }
-    | INT64CONSTANT {
-        parseContext.int64Check($1.loc, "64-bit integer literal");
-        $$ = parseContext.intermediate.addConstantUnion($1.i64, $1.loc, true);
-    }
-    | UINT64CONSTANT {
-        parseContext.int64Check($1.loc, "64-bit unsigned integer literal");
-        $$ = parseContext.intermediate.addConstantUnion($1.u64, $1.loc, true);
-    }
-    | INT16CONSTANT {
-        parseContext.explicitInt16Check($1.loc, "16-bit integer literal");
-        $$ = parseContext.intermediate.addConstantUnion((short)$1.i, $1.loc, true);
-    }
-    | UINT16CONSTANT {
-        parseContext.explicitInt16Check($1.loc, "16-bit unsigned integer literal");
-        $$ = parseContext.intermediate.addConstantUnion((unsigned short)$1.u, $1.loc, true);
-    }
-    | DOUBLECONSTANT {
-        parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double literal");
-        if (! parseContext.symbolTable.atBuiltInLevel())
-            parseContext.doubleCheck($1.loc, "double literal");
-        $$ = parseContext.intermediate.addConstantUnion($1.d, EbtDouble, $1.loc, true);
-    }
-    | FLOAT16CONSTANT {
-        parseContext.float16Check($1.loc, "half float literal");
-        $$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat16, $1.loc, true);
-    }
-GLSLANG_WEB_EXCLUDE_OFF
-    ;
-
-postfix_expression
-    : primary_expression {
-        $$ = $1;
-    }
-    | postfix_expression LEFT_BRACKET integer_expression RIGHT_BRACKET {
-        $$ = parseContext.handleBracketDereference($2.loc, $1, $3);
-    }
-    | function_call {
-        $$ = $1;
-    }
-    | postfix_expression DOT IDENTIFIER {
-        $$ = parseContext.handleDotDereference($3.loc, $1, *$3.string);
-    }
-    | postfix_expression INC_OP {
-        parseContext.variableCheck($1);
-        parseContext.lValueErrorCheck($2.loc, "++", $1);
-        $$ = parseContext.handleUnaryMath($2.loc, "++", EOpPostIncrement, $1);
-    }
-    | postfix_expression DEC_OP {
-        parseContext.variableCheck($1);
-        parseContext.lValueErrorCheck($2.loc, "--", $1);
-        $$ = parseContext.handleUnaryMath($2.loc, "--", EOpPostDecrement, $1);
-    }
-    ;
-
-integer_expression
-    : expression {
-        parseContext.integerCheck($1, "[]");
-        $$ = $1;
-    }
-    ;
-
-function_call
-    : function_call_or_method {
-        $$ = parseContext.handleFunctionCall($1.loc, $1.function, $1.intermNode);
-        delete $1.function;
-    }
-    ;
-
-function_call_or_method
-    : function_call_generic {
-        $$ = $1;
-    }
-    ;
-
-function_call_generic
-    : function_call_header_with_parameters RIGHT_PAREN {
-        $$ = $1;
-        $$.loc = $2.loc;
-    }
-    | function_call_header_no_parameters RIGHT_PAREN {
-        $$ = $1;
-        $$.loc = $2.loc;
-    }
-    ;
-
-function_call_header_no_parameters
-    : function_call_header VOID {
-        $$ = $1;
-    }
-    | function_call_header {
-        $$ = $1;
-    }
-    ;
-
-function_call_header_with_parameters
-    : function_call_header assignment_expression {
-        TParameter param = { 0, new TType };
-        param.type->shallowCopy($2->getType());
-        $1.function->addParameter(param);
-        $$.function = $1.function;
-        $$.intermNode = $2;
-    }
-    | function_call_header_with_parameters COMMA assignment_expression {
-        TParameter param = { 0, new TType };
-        param.type->shallowCopy($3->getType());
-        $1.function->addParameter(param);
-        $$.function = $1.function;
-        $$.intermNode = parseContext.intermediate.growAggregate($1.intermNode, $3, $2.loc);
-    }
-    ;
-
-function_call_header
-    : function_identifier LEFT_PAREN {
-        $$ = $1;
-    }
-    ;
-
-// Grammar Note:  Constructors look like functions, but are recognized as types.
-
-function_identifier
-    : type_specifier {
-        // Constructor
-        $$.intermNode = 0;
-        $$.function = parseContext.handleConstructorCall($1.loc, $1);
-    }
-    | postfix_expression {
-        //
-        // Should be a method or subroutine call, but we haven't recognized the arguments yet.
-        //
-        $$.function = 0;
-        $$.intermNode = 0;
-
-        TIntermMethod* method = $1->getAsMethodNode();
-        if (method) {
-            $$.function = new TFunction(&method->getMethodName(), TType(EbtInt), EOpArrayLength);
-            $$.intermNode = method->getObject();
-        } else {
-            TIntermSymbol* symbol = $1->getAsSymbolNode();
-            if (symbol) {
-                parseContext.reservedErrorCheck(symbol->getLoc(), symbol->getName());
-                TFunction *function = new TFunction(&symbol->getName(), TType(EbtVoid));
-                $$.function = function;
-            } else
-                parseContext.error($1->getLoc(), "function call, method, or subroutine call expected", "", "");
-        }
-
-        if ($$.function == 0) {
-            // error recover
-            TString* empty = NewPoolTString("");
-            $$.function = new TFunction(empty, TType(EbtVoid), EOpNull);
-        }
-    }
-GLSLANG_WEB_EXCLUDE_ON
-    | non_uniform_qualifier {
-        // Constructor
-        $$.intermNode = 0;
-        $$.function = parseContext.handleConstructorCall($1.loc, $1);
-    }
-GLSLANG_WEB_EXCLUDE_OFF
-    ;
-
-unary_expression
-    : postfix_expression {
-        parseContext.variableCheck($1);
-        $$ = $1;
-        if (TIntermMethod* method = $1->getAsMethodNode())
-            parseContext.error($1->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), "");
-    }
-    | INC_OP unary_expression {
-        parseContext.lValueErrorCheck($1.loc, "++", $2);
-        $$ = parseContext.handleUnaryMath($1.loc, "++", EOpPreIncrement, $2);
-    }
-    | DEC_OP unary_expression {
-        parseContext.lValueErrorCheck($1.loc, "--", $2);
-        $$ = parseContext.handleUnaryMath($1.loc, "--", EOpPreDecrement, $2);
-    }
-    | unary_operator unary_expression {
-        if ($1.op != EOpNull) {
-            char errorOp[2] = {0, 0};
-            switch($1.op) {
-            case EOpNegative:   errorOp[0] = '-'; break;
-            case EOpLogicalNot: errorOp[0] = '!'; break;
-            case EOpBitwiseNot: errorOp[0] = '~'; break;
-            default: break; // some compilers want this
-            }
-            $$ = parseContext.handleUnaryMath($1.loc, errorOp, $1.op, $2);
-        } else {
-            $$ = $2;
-            if ($$->getAsConstantUnion())
-                $$->getAsConstantUnion()->setExpression();
-        }
-    }
-    ;
-// Grammar Note:  No traditional style type casts.
-
-unary_operator
-    : PLUS  { $$.loc = $1.loc; $$.op = EOpNull; }
-    | DASH  { $$.loc = $1.loc; $$.op = EOpNegative; }
-    | BANG  { $$.loc = $1.loc; $$.op = EOpLogicalNot; }
-    | TILDE { $$.loc = $1.loc; $$.op = EOpBitwiseNot;
-              parseContext.fullIntegerCheck($1.loc, "bitwise not"); }
-    ;
-// Grammar Note:  No '*' or '&' unary ops.  Pointers are not supported.
-
-multiplicative_expression
-    : unary_expression { $$ = $1; }
-    | multiplicative_expression STAR unary_expression {
-        $$ = parseContext.handleBinaryMath($2.loc, "*", EOpMul, $1, $3);
-        if ($$ == 0)
-            $$ = $1;
-    }
-    | multiplicative_expression SLASH unary_expression {
-        $$ = parseContext.handleBinaryMath($2.loc, "/", EOpDiv, $1, $3);
-        if ($$ == 0)
-            $$ = $1;
-    }
-    | multiplicative_expression PERCENT unary_expression {
-        parseContext.fullIntegerCheck($2.loc, "%");
-        $$ = parseContext.handleBinaryMath($2.loc, "%", EOpMod, $1, $3);
-        if ($$ == 0)
-            $$ = $1;
-    }
-    ;
-
-additive_expression
-    : multiplicative_expression { $$ = $1; }
-    | additive_expression PLUS multiplicative_expression {
-        $$ = parseContext.handleBinaryMath($2.loc, "+", EOpAdd, $1, $3);
-        if ($$ == 0)
-            $$ = $1;
-    }
-    | additive_expression DASH multiplicative_expression {
-        $$ = parseContext.handleBinaryMath($2.loc, "-", EOpSub, $1, $3);
-        if ($$ == 0)
-            $$ = $1;
-    }
-    ;
-
-shift_expression
-    : additive_expression { $$ = $1; }
-    | shift_expression LEFT_OP additive_expression {
-        parseContext.fullIntegerCheck($2.loc, "bit shift left");
-        $$ = parseContext.handleBinaryMath($2.loc, "<<", EOpLeftShift, $1, $3);
-        if ($$ == 0)
-            $$ = $1;
-    }
-    | shift_expression RIGHT_OP additive_expression {
-        parseContext.fullIntegerCheck($2.loc, "bit shift right");
-        $$ = parseContext.handleBinaryMath($2.loc, ">>", EOpRightShift, $1, $3);
-        if ($$ == 0)
-            $$ = $1;
-    }
-    ;
-
-relational_expression
-    : shift_expression { $$ = $1; }
-    | relational_expression LEFT_ANGLE shift_expression {
-        $$ = parseContext.handleBinaryMath($2.loc, "<", EOpLessThan, $1, $3);
-        if ($$ == 0)
-            $$ = parseContext.intermediate.addConstantUnion(false, $2.loc);
-    }
-    | relational_expression RIGHT_ANGLE shift_expression  {
-        $$ = parseContext.handleBinaryMath($2.loc, ">", EOpGreaterThan, $1, $3);
-        if ($$ == 0)
-            $$ = parseContext.intermediate.addConstantUnion(false, $2.loc);
-    }
-    | relational_expression LE_OP shift_expression  {
-        $$ = parseContext.handleBinaryMath($2.loc, "<=", EOpLessThanEqual, $1, $3);
-        if ($$ == 0)
-            $$ = parseContext.intermediate.addConstantUnion(false, $2.loc);
-    }
-    | relational_expression GE_OP shift_expression  {
-        $$ = parseContext.handleBinaryMath($2.loc, ">=", EOpGreaterThanEqual, $1, $3);
-        if ($$ == 0)
-            $$ = parseContext.intermediate.addConstantUnion(false, $2.loc);
-    }
-    ;
-
-equality_expression
-    : relational_expression { $$ = $1; }
-    | equality_expression EQ_OP relational_expression  {
-        parseContext.arrayObjectCheck($2.loc, $1->getType(), "array comparison");
-        parseContext.opaqueCheck($2.loc, $1->getType(), "==");
-        parseContext.specializationCheck($2.loc, $1->getType(), "==");
-        parseContext.referenceCheck($2.loc, $1->getType(), "==");
-        $$ = parseContext.handleBinaryMath($2.loc, "==", EOpEqual, $1, $3);
-        if ($$ == 0)
-            $$ = parseContext.intermediate.addConstantUnion(false, $2.loc);
-    }
-    | equality_expression NE_OP relational_expression {
-        parseContext.arrayObjectCheck($2.loc, $1->getType(), "array comparison");
-        parseContext.opaqueCheck($2.loc, $1->getType(), "!=");
-        parseContext.specializationCheck($2.loc, $1->getType(), "!=");
-        parseContext.referenceCheck($2.loc, $1->getType(), "!=");
-        $$ = parseContext.handleBinaryMath($2.loc, "!=", EOpNotEqual, $1, $3);
-        if ($$ == 0)
-            $$ = parseContext.intermediate.addConstantUnion(false, $2.loc);
-    }
-    ;
-
-and_expression
-    : equality_expression { $$ = $1; }
-    | and_expression AMPERSAND equality_expression {
-        parseContext.fullIntegerCheck($2.loc, "bitwise and");
-        $$ = parseContext.handleBinaryMath($2.loc, "&", EOpAnd, $1, $3);
-        if ($$ == 0)
-            $$ = $1;
-    }
-    ;
-
-exclusive_or_expression
-    : and_expression { $$ = $1; }
-    | exclusive_or_expression CARET and_expression {
-        parseContext.fullIntegerCheck($2.loc, "bitwise exclusive or");
-        $$ = parseContext.handleBinaryMath($2.loc, "^", EOpExclusiveOr, $1, $3);
-        if ($$ == 0)
-            $$ = $1;
-    }
-    ;
-
-inclusive_or_expression
-    : exclusive_or_expression { $$ = $1; }
-    | inclusive_or_expression VERTICAL_BAR exclusive_or_expression {
-        parseContext.fullIntegerCheck($2.loc, "bitwise inclusive or");
-        $$ = parseContext.handleBinaryMath($2.loc, "|", EOpInclusiveOr, $1, $3);
-        if ($$ == 0)
-            $$ = $1;
-    }
-    ;
-
-logical_and_expression
-    : inclusive_or_expression { $$ = $1; }
-    | logical_and_expression AND_OP inclusive_or_expression {
-        $$ = parseContext.handleBinaryMath($2.loc, "&&", EOpLogicalAnd, $1, $3);
-        if ($$ == 0)
-            $$ = parseContext.intermediate.addConstantUnion(false, $2.loc);
-    }
-    ;
-
-logical_xor_expression
-    : logical_and_expression { $$ = $1; }
-    | logical_xor_expression XOR_OP logical_and_expression  {
-        $$ = parseContext.handleBinaryMath($2.loc, "^^", EOpLogicalXor, $1, $3);
-        if ($$ == 0)
-            $$ = parseContext.intermediate.addConstantUnion(false, $2.loc);
-    }
-    ;
-
-logical_or_expression
-    : logical_xor_expression { $$ = $1; }
-    | logical_or_expression OR_OP logical_xor_expression  {
-        $$ = parseContext.handleBinaryMath($2.loc, "||", EOpLogicalOr, $1, $3);
-        if ($$ == 0)
-            $$ = parseContext.intermediate.addConstantUnion(false, $2.loc);
-    }
-    ;
-
-conditional_expression
-    : logical_or_expression { $$ = $1; }
-    | logical_or_expression QUESTION {
-        ++parseContext.controlFlowNestingLevel;
-    }
-      expression COLON assignment_expression {
-        --parseContext.controlFlowNestingLevel;
-        parseContext.boolCheck($2.loc, $1);
-        parseContext.rValueErrorCheck($2.loc, "?", $1);
-        parseContext.rValueErrorCheck($5.loc, ":", $4);
-        parseContext.rValueErrorCheck($5.loc, ":", $6);
-        $$ = parseContext.intermediate.addSelection($1, $4, $6, $2.loc);
-        if ($$ == 0) {
-            parseContext.binaryOpError($2.loc, ":", $4->getCompleteString(parseContext.intermediate.getEnhancedMsgs()), $6->getCompleteString(parseContext.intermediate.getEnhancedMsgs()));
-            $$ = $6;
-        }
-    }
-    ;
-
-assignment_expression
-    : conditional_expression { $$ = $1; }
-    | unary_expression assignment_operator assignment_expression {
-        parseContext.arrayObjectCheck($2.loc, $1->getType(), "array assignment");
-        parseContext.opaqueCheck($2.loc, $1->getType(), "=");
-        parseContext.storage16BitAssignmentCheck($2.loc, $1->getType(), "=");
-        parseContext.specializationCheck($2.loc, $1->getType(), "=");
-        parseContext.lValueErrorCheck($2.loc, "assign", $1);
-        parseContext.rValueErrorCheck($2.loc, "assign", $3);
-        $$ = parseContext.addAssign($2.loc, $2.op, $1, $3);
-        if ($$ == 0) {
-            parseContext.assignError($2.loc, "assign", $1->getCompleteString(parseContext.intermediate.getEnhancedMsgs()), $3->getCompleteString(parseContext.intermediate.getEnhancedMsgs()));
-            $$ = $1;
-        }
-    }
-    ;
-
-assignment_operator
-    : EQUAL {
-        $$.loc = $1.loc;
-        $$.op = EOpAssign;
-    }
-    | MUL_ASSIGN {
-        $$.loc = $1.loc;
-        $$.op = EOpMulAssign;
-    }
-    | DIV_ASSIGN {
-        $$.loc = $1.loc;
-        $$.op = EOpDivAssign;
-    }
-    | MOD_ASSIGN {
-        parseContext.fullIntegerCheck($1.loc, "%=");
-        $$.loc = $1.loc;
-        $$.op = EOpModAssign;
-    }
-    | ADD_ASSIGN {
-        $$.loc = $1.loc;
-        $$.op = EOpAddAssign;
-    }
-    | SUB_ASSIGN {
-        $$.loc = $1.loc;
-        $$.op = EOpSubAssign;
-    }
-    | LEFT_ASSIGN {
-        parseContext.fullIntegerCheck($1.loc, "bit-shift left assign");
-        $$.loc = $1.loc; $$.op = EOpLeftShiftAssign;
-    }
-    | RIGHT_ASSIGN {
-        parseContext.fullIntegerCheck($1.loc, "bit-shift right assign");
-        $$.loc = $1.loc; $$.op = EOpRightShiftAssign;
-    }
-    | AND_ASSIGN {
-        parseContext.fullIntegerCheck($1.loc, "bitwise-and assign");
-        $$.loc = $1.loc; $$.op = EOpAndAssign;
-    }
-    | XOR_ASSIGN {
-        parseContext.fullIntegerCheck($1.loc, "bitwise-xor assign");
-        $$.loc = $1.loc; $$.op = EOpExclusiveOrAssign;
-    }
-    | OR_ASSIGN {
-        parseContext.fullIntegerCheck($1.loc, "bitwise-or assign");
-        $$.loc = $1.loc; $$.op = EOpInclusiveOrAssign;
-    }
-    ;
-
-expression
-    : assignment_expression {
-        $$ = $1;
-    }
-    | expression COMMA assignment_expression {
-        parseContext.samplerConstructorLocationCheck($2.loc, ",", $3);
-        $$ = parseContext.intermediate.addComma($1, $3, $2.loc);
-        if ($$ == 0) {
-            parseContext.binaryOpError($2.loc, ",", $1->getCompleteString(parseContext.intermediate.getEnhancedMsgs()), $3->getCompleteString(parseContext.intermediate.getEnhancedMsgs()));
-            $$ = $3;
-        }
-    }
-    ;
-
-constant_expression
-    : conditional_expression {
-        parseContext.constantValueCheck($1, "");
-        $$ = $1;
-    }
-    ;
-
-declaration
-    : function_prototype SEMICOLON {
-        parseContext.handleFunctionDeclarator($1.loc, *$1.function, true /* prototype */);
-        $$ = 0;
-        // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature
-    }
-GLSLANG_WEB_EXCLUDE_ON
-    | spirv_instruction_qualifier function_prototype SEMICOLON {
-        parseContext.requireExtensions($2.loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V instruction qualifier");
-        $2.function->setSpirvInstruction(*$1); // Attach SPIR-V intruction qualifier
-        parseContext.handleFunctionDeclarator($2.loc, *$2.function, true /* prototype */);
-        $$ = 0;
-        // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature
-    }
-    | spirv_execution_mode_qualifier SEMICOLON {
-        parseContext.globalCheck($2.loc, "SPIR-V execution mode qualifier");
-        parseContext.requireExtensions($2.loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V execution mode qualifier");
-        $$ = 0;
-    }
-GLSLANG_WEB_EXCLUDE_OFF
-    | init_declarator_list SEMICOLON {
-        if ($1.intermNode && $1.intermNode->getAsAggregate())
-            $1.intermNode->getAsAggregate()->setOperator(EOpSequence);
-        $$ = $1.intermNode;
-    }
-    | PRECISION precision_qualifier type_specifier SEMICOLON {
-        parseContext.profileRequires($1.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
-        parseContext.symbolTable.setPreviousDefaultPrecisions(&parseContext.defaultPrecision[0]);
-        parseContext.setDefaultPrecision($1.loc, $3, $2.qualifier.precision);
-        $$ = 0;
-    }
-    | block_structure SEMICOLON {
-        parseContext.declareBlock($1.loc, *$1.typeList);
-        $$ = 0;
-    }
-    | block_structure IDENTIFIER SEMICOLON {
-        parseContext.declareBlock($1.loc, *$1.typeList, $2.string);
-        $$ = 0;
-    }
-    | block_structure IDENTIFIER array_specifier SEMICOLON {
-        parseContext.declareBlock($1.loc, *$1.typeList, $2.string, $3.arraySizes);
-        $$ = 0;
-    }
-    | type_qualifier SEMICOLON {
-        parseContext.globalQualifierFixCheck($1.loc, $1.qualifier);
-        parseContext.updateStandaloneQualifierDefaults($1.loc, $1);
-        $$ = 0;
-    }
-    | type_qualifier IDENTIFIER SEMICOLON {
-        parseContext.checkNoShaderLayouts($1.loc, $1.shaderQualifiers);
-        parseContext.addQualifierToExisting($1.loc, $1.qualifier, *$2.string);
-        $$ = 0;
-    }
-    | type_qualifier IDENTIFIER identifier_list SEMICOLON {
-        parseContext.checkNoShaderLayouts($1.loc, $1.shaderQualifiers);
-        $3->push_back($2.string);
-        parseContext.addQualifierToExisting($1.loc, $1.qualifier, *$3);
-        $$ = 0;
-    }
-    ;
-
-block_structure
-    : type_qualifier IDENTIFIER LEFT_BRACE { parseContext.nestedBlockCheck($1.loc); } struct_declaration_list RIGHT_BRACE {
-        --parseContext.blockNestingLevel;
-        parseContext.blockName = $2.string;
-        parseContext.globalQualifierFixCheck($1.loc, $1.qualifier);
-        parseContext.checkNoShaderLayouts($1.loc, $1.shaderQualifiers);
-        parseContext.currentBlockQualifier = $1.qualifier;
-        $$.loc = $1.loc;
-        $$.typeList = $5;
-    }
-
-identifier_list
-    : COMMA IDENTIFIER {
-        $$ = new TIdentifierList;
-        $$->push_back($2.string);
-    }
-    | identifier_list COMMA IDENTIFIER {
-        $$ = $1;
-        $$->push_back($3.string);
-    }
-    ;
-
-function_prototype
-    : function_declarator RIGHT_PAREN  {
-        $$.function = $1;
-        $$.loc = $2.loc;
-    }
-    | function_declarator RIGHT_PAREN attribute {
-        $$.function = $1;
-        $$.loc = $2.loc;
-        parseContext.requireExtensions($2.loc, 1, &E_GL_EXT_subgroup_uniform_control_flow, "attribute");
-        parseContext.handleFunctionAttributes($2.loc, *$3);
-    }
-    | attribute function_declarator RIGHT_PAREN {
-        $$.function = $2;
-        $$.loc = $3.loc;
-        parseContext.requireExtensions($3.loc, 1, &E_GL_EXT_subgroup_uniform_control_flow, "attribute");
-        parseContext.handleFunctionAttributes($3.loc, *$1);
-    }
-    | attribute function_declarator RIGHT_PAREN attribute {
-        $$.function = $2;
-        $$.loc = $3.loc;
-        parseContext.requireExtensions($3.loc, 1, &E_GL_EXT_subgroup_uniform_control_flow, "attribute");
-        parseContext.handleFunctionAttributes($3.loc, *$1);
-        parseContext.handleFunctionAttributes($3.loc, *$4);
-    }
-    ;
-
-function_declarator
-    : function_header {
-        $$ = $1;
-    }
-    | function_header_with_parameters {
-        $$ = $1;
-    }
-    ;
-
-
-function_header_with_parameters
-    : function_header parameter_declaration {
-        // Add the parameter
-        $$ = $1;
-        if ($2.param.type->getBasicType() != EbtVoid)
-            $1->addParameter($2.param);
-        else
-            delete $2.param.type;
-    }
-    | function_header_with_parameters COMMA parameter_declaration {
-        //
-        // Only first parameter of one-parameter functions can be void
-        // The check for named parameters not being void is done in parameter_declarator
-        //
-        if ($3.param.type->getBasicType() == EbtVoid) {
-            //
-            // This parameter > first is void
-            //
-            parseContext.error($2.loc, "cannot be an argument type except for '(void)'", "void", "");
-            delete $3.param.type;
-        } else {
-            // Add the parameter
-            $$ = $1;
-            $1->addParameter($3.param);
-        }
-    }
-    ;
-
-function_header
-    : fully_specified_type IDENTIFIER LEFT_PAREN {
-        if ($1.qualifier.storage != EvqGlobal && $1.qualifier.storage != EvqTemporary) {
-            parseContext.error($2.loc, "no qualifiers allowed for function return",
-                               GetStorageQualifierString($1.qualifier.storage), "");
-        }
-        if ($1.arraySizes)
-            parseContext.arraySizeRequiredCheck($1.loc, *$1.arraySizes);
-
-        // Add the function as a prototype after parsing it (we do not support recursion)
-        TFunction *function;
-        TType type($1);
-
-        // Potentially rename shader entry point function.  No-op most of the time.
-        parseContext.renameShaderFunction($2.string);
-
-        // Make the function
-        function = new TFunction($2.string, type);
-        $$ = function;
-    }
-    ;
-
-parameter_declarator
-    // Type + name
-    : type_specifier IDENTIFIER {
-        if ($1.arraySizes) {
-            parseContext.profileRequires($1.loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
-            parseContext.profileRequires($1.loc, EEsProfile, 300, 0, "arrayed type");
-            parseContext.arraySizeRequiredCheck($1.loc, *$1.arraySizes);
-        }
-        if ($1.basicType == EbtVoid) {
-            parseContext.error($2.loc, "illegal use of type 'void'", $2.string->c_str(), "");
-        }
-        parseContext.reservedErrorCheck($2.loc, *$2.string);
-
-        TParameter param = {$2.string, new TType($1)};
-        $$.loc = $2.loc;
-        $$.param = param;
-    }
-    | type_specifier IDENTIFIER array_specifier {
-        if ($1.arraySizes) {
-            parseContext.profileRequires($1.loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
-            parseContext.profileRequires($1.loc, EEsProfile, 300, 0, "arrayed type");
-            parseContext.arraySizeRequiredCheck($1.loc, *$1.arraySizes);
-        }
-        TType* type = new TType($1);
-        type->transferArraySizes($3.arraySizes);
-        type->copyArrayInnerSizes($1.arraySizes);
-
-        parseContext.arrayOfArrayVersionCheck($2.loc, type->getArraySizes());
-        parseContext.arraySizeRequiredCheck($3.loc, *$3.arraySizes);
-        parseContext.reservedErrorCheck($2.loc, *$2.string);
-
-        TParameter param = { $2.string, type };
-
-        $$.loc = $2.loc;
-        $$.param = param;
-    }
-    ;
-
-parameter_declaration
-    //
-    // With name
-    //
-    : type_qualifier parameter_declarator {
-        $$ = $2;
-        if ($1.qualifier.precision != EpqNone)
-            $$.param.type->getQualifier().precision = $1.qualifier.precision;
-        parseContext.precisionQualifierCheck($$.loc, $$.param.type->getBasicType(), $$.param.type->getQualifier());
-
-        parseContext.checkNoShaderLayouts($1.loc, $1.shaderQualifiers);
-        parseContext.parameterTypeCheck($2.loc, $1.qualifier.storage, *$$.param.type);
-        parseContext.paramCheckFix($1.loc, $1.qualifier, *$$.param.type);
-
-    }
-    | parameter_declarator {
-        $$ = $1;
-
-        parseContext.parameterTypeCheck($1.loc, EvqIn, *$1.param.type);
-        parseContext.paramCheckFixStorage($1.loc, EvqTemporary, *$$.param.type);
-        parseContext.precisionQualifierCheck($$.loc, $$.param.type->getBasicType(), $$.param.type->getQualifier());
-    }
-    //
-    // Without name
-    //
-    | type_qualifier parameter_type_specifier {
-        $$ = $2;
-        if ($1.qualifier.precision != EpqNone)
-            $$.param.type->getQualifier().precision = $1.qualifier.precision;
-        parseContext.precisionQualifierCheck($1.loc, $$.param.type->getBasicType(), $$.param.type->getQualifier());
-
-        parseContext.checkNoShaderLayouts($1.loc, $1.shaderQualifiers);
-        parseContext.parameterTypeCheck($2.loc, $1.qualifier.storage, *$$.param.type);
-        parseContext.paramCheckFix($1.loc, $1.qualifier, *$$.param.type);
-    }
-    | parameter_type_specifier {
-        $$ = $1;
-
-        parseContext.parameterTypeCheck($1.loc, EvqIn, *$1.param.type);
-        parseContext.paramCheckFixStorage($1.loc, EvqTemporary, *$$.param.type);
-        parseContext.precisionQualifierCheck($$.loc, $$.param.type->getBasicType(), $$.param.type->getQualifier());
-    }
-    ;
-
-parameter_type_specifier
-    : type_specifier {
-        TParameter param = { 0, new TType($1) };
-        $$.param = param;
-        if ($1.arraySizes)
-            parseContext.arraySizeRequiredCheck($1.loc, *$1.arraySizes);
-    }
-    ;
-
-init_declarator_list
-    : single_declaration {
-        $$ = $1;
-    }
-    | init_declarator_list COMMA IDENTIFIER {
-        $$ = $1;
-        parseContext.declareVariable($3.loc, *$3.string, $1.type);
-    }
-    | init_declarator_list COMMA IDENTIFIER array_specifier {
-        $$ = $1;
-        parseContext.declareVariable($3.loc, *$3.string, $1.type, $4.arraySizes);
-    }
-    | init_declarator_list COMMA IDENTIFIER array_specifier EQUAL initializer {
-        $$.type = $1.type;
-        TIntermNode* initNode = parseContext.declareVariable($3.loc, *$3.string, $1.type, $4.arraySizes, $6);
-        $$.intermNode = parseContext.intermediate.growAggregate($1.intermNode, initNode, $5.loc);
-    }
-    | init_declarator_list COMMA IDENTIFIER EQUAL initializer {
-        $$.type = $1.type;
-        TIntermNode* initNode = parseContext.declareVariable($3.loc, *$3.string, $1.type, 0, $5);
-        $$.intermNode = parseContext.intermediate.growAggregate($1.intermNode, initNode, $4.loc);
-    }
-    ;
-
-single_declaration
-    : fully_specified_type {
-        $$.type = $1;
-        $$.intermNode = 0;
-GLSLANG_WEB_EXCLUDE_ON
-        parseContext.declareTypeDefaults($$.loc, $$.type);
-GLSLANG_WEB_EXCLUDE_OFF
-    }
-    | fully_specified_type IDENTIFIER {
-        $$.type = $1;
-        $$.intermNode = 0;
-        parseContext.declareVariable($2.loc, *$2.string, $1);
-    }
-    | fully_specified_type IDENTIFIER array_specifier {
-        $$.type = $1;
-        $$.intermNode = 0;
-        parseContext.declareVariable($2.loc, *$2.string, $1, $3.arraySizes);
-    }
-    | fully_specified_type IDENTIFIER array_specifier EQUAL initializer {
-        $$.type = $1;
-        TIntermNode* initNode = parseContext.declareVariable($2.loc, *$2.string, $1, $3.arraySizes, $5);
-        $$.intermNode = parseContext.intermediate.growAggregate(0, initNode, $4.loc);
-    }
-    | fully_specified_type IDENTIFIER EQUAL initializer {
-        $$.type = $1;
-        TIntermNode* initNode = parseContext.declareVariable($2.loc, *$2.string, $1, 0, $4);
-        $$.intermNode = parseContext.intermediate.growAggregate(0, initNode, $3.loc);
-    }
-
-// Grammar Note:  No 'enum', or 'typedef'.
-
-fully_specified_type
-    : type_specifier {
-        $$ = $1;
-
-        parseContext.globalQualifierTypeCheck($1.loc, $1.qualifier, $$);
-        if ($1.arraySizes) {
-            parseContext.profileRequires($1.loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
-            parseContext.profileRequires($1.loc, EEsProfile, 300, 0, "arrayed type");
-        }
-        parseContext.precisionQualifierCheck($$.loc, $$.basicType, $$.qualifier);
-    }
-    | type_qualifier type_specifier  {
-        parseContext.globalQualifierFixCheck($1.loc, $1.qualifier, false, &$2);
-        parseContext.globalQualifierTypeCheck($1.loc, $1.qualifier, $2);
-
-        if ($2.arraySizes) {
-            parseContext.profileRequires($2.loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
-            parseContext.profileRequires($2.loc, EEsProfile, 300, 0, "arrayed type");
-        }
-
-        if ($2.arraySizes && parseContext.arrayQualifierError($2.loc, $1.qualifier))
-            $2.arraySizes = nullptr;
-
-        parseContext.checkNoShaderLayouts($2.loc, $1.shaderQualifiers);
-        $2.shaderQualifiers.merge($1.shaderQualifiers);
-        parseContext.mergeQualifiers($2.loc, $2.qualifier, $1.qualifier, true);
-        parseContext.precisionQualifierCheck($2.loc, $2.basicType, $2.qualifier);
-
-        $$ = $2;
-
-        if (! $$.qualifier.isInterpolation() &&
-            ((parseContext.language == EShLangVertex   && $$.qualifier.storage == EvqVaryingOut) ||
-             (parseContext.language == EShLangFragment && $$.qualifier.storage == EvqVaryingIn)))
-            $$.qualifier.smooth = true;
-    }
-    ;
-
-invariant_qualifier
-    : INVARIANT {
-        parseContext.globalCheck($1.loc, "invariant");
-        parseContext.profileRequires($$.loc, ENoProfile, 120, 0, "invariant");
-        $$.init($1.loc);
-        $$.qualifier.invariant = true;
-    }
-    ;
-
-interpolation_qualifier
-    : SMOOTH {
-        parseContext.globalCheck($1.loc, "smooth");
-        parseContext.profileRequires($1.loc, ENoProfile, 130, 0, "smooth");
-        parseContext.profileRequires($1.loc, EEsProfile, 300, 0, "smooth");
-        $$.init($1.loc);
-        $$.qualifier.smooth = true;
-    }
-    | FLAT {
-        parseContext.globalCheck($1.loc, "flat");
-        parseContext.profileRequires($1.loc, ENoProfile, 130, 0, "flat");
-        parseContext.profileRequires($1.loc, EEsProfile, 300, 0, "flat");
-        $$.init($1.loc);
-        $$.qualifier.flat = true;
-    }
-GLSLANG_WEB_EXCLUDE_ON
-    | NOPERSPECTIVE {
-        parseContext.globalCheck($1.loc, "noperspective");
-        parseContext.profileRequires($1.loc, EEsProfile, 0, E_GL_NV_shader_noperspective_interpolation, "noperspective");
-        parseContext.profileRequires($1.loc, ENoProfile, 130, 0, "noperspective");
-        $$.init($1.loc);
-        $$.qualifier.nopersp = true;
-    }
-    | EXPLICITINTERPAMD {
-        parseContext.globalCheck($1.loc, "__explicitInterpAMD");
-        parseContext.profileRequires($1.loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
-        parseContext.profileRequires($1.loc, ECompatibilityProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
-        $$.init($1.loc);
-        $$.qualifier.explicitInterp = true;
-    }
-    | PERVERTEXNV {
-        parseContext.globalCheck($1.loc, "pervertexNV");
-        parseContext.profileRequires($1.loc, ECoreProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
-        parseContext.profileRequires($1.loc, ECompatibilityProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
-        parseContext.profileRequires($1.loc, EEsProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
-        $$.init($1.loc);
-        $$.qualifier.pervertexNV = true;
-    }
-    | PERVERTEXEXT {
-        parseContext.globalCheck($1.loc, "pervertexEXT");
-        parseContext.profileRequires($1.loc, ECoreProfile, 0, E_GL_EXT_fragment_shader_barycentric, "fragment shader barycentric");
-        parseContext.profileRequires($1.loc, ECompatibilityProfile, 0, E_GL_EXT_fragment_shader_barycentric, "fragment shader barycentric");
-        parseContext.profileRequires($1.loc, EEsProfile, 0, E_GL_EXT_fragment_shader_barycentric, "fragment shader barycentric");
-        $$.init($1.loc);
-        $$.qualifier.pervertexEXT = true;
-    }
-    | PERPRIMITIVENV {
-        // No need for profile version or extension check. Shader stage already checks both.
-        parseContext.globalCheck($1.loc, "perprimitiveNV");
-        parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangFragmentMask | EShLangMeshMask), "perprimitiveNV");
-        // Fragment shader stage doesn't check for extension. So we explicitly add below extension check.
-        if (parseContext.language == EShLangFragment)
-            parseContext.requireExtensions($1.loc, 1, &E_GL_NV_mesh_shader, "perprimitiveNV");
-        $$.init($1.loc);
-        $$.qualifier.perPrimitiveNV = true;
-    }
-    | PERPRIMITIVEEXT {
-        // No need for profile version or extension check. Shader stage already checks both.
-        parseContext.globalCheck($1.loc, "perprimitiveEXT");
-        parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangFragmentMask | EShLangMeshMask), "perprimitiveEXT");
-        // Fragment shader stage doesn't check for extension. So we explicitly add below extension check.
-        if (parseContext.language == EShLangFragment)
-            parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_mesh_shader, "perprimitiveEXT");
-        $$.init($1.loc);
-        $$.qualifier.perPrimitiveNV = true;
-    }
-    | PERVIEWNV {
-        // No need for profile version or extension check. Shader stage already checks both.
-        parseContext.globalCheck($1.loc, "perviewNV");
-        parseContext.requireStage($1.loc, EShLangMesh, "perviewNV");
-        $$.init($1.loc);
-        $$.qualifier.perViewNV = true;
-    }
-    | PERTASKNV {
-        // No need for profile version or extension check. Shader stage already checks both.
-        parseContext.globalCheck($1.loc, "taskNV");
-        parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangTaskMask | EShLangMeshMask), "taskNV");
-        $$.init($1.loc);
-        $$.qualifier.perTaskNV = true;
-    }
-GLSLANG_WEB_EXCLUDE_OFF
-    ;
-
-layout_qualifier
-    : LAYOUT LEFT_PAREN layout_qualifier_id_list RIGHT_PAREN {
-        $$ = $3;
-    }
-    ;
-
-layout_qualifier_id_list
-    : layout_qualifier_id {
-        $$ = $1;
-    }
-    | layout_qualifier_id_list COMMA layout_qualifier_id {
-        $$ = $1;
-        $$.shaderQualifiers.merge($3.shaderQualifiers);
-        parseContext.mergeObjectLayoutQualifiers($$.qualifier, $3.qualifier, false);
-    }
-
-layout_qualifier_id
-    : IDENTIFIER {
-        $$.init($1.loc);
-        parseContext.setLayoutQualifier($1.loc, $$, *$1.string);
-    }
-    | IDENTIFIER EQUAL constant_expression {
-        $$.init($1.loc);
-        parseContext.setLayoutQualifier($1.loc, $$, *$1.string, $3);
-    }
-    | SHARED { // because "shared" is both an identifier and a keyword
-        $$.init($1.loc);
-        TString strShared("shared");
-        parseContext.setLayoutQualifier($1.loc, $$, strShared);
-    }
-    ;
-
-GLSLANG_WEB_EXCLUDE_ON
-precise_qualifier
-    : PRECISE {
-        parseContext.profileRequires($$.loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise");
-        parseContext.profileRequires($1.loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise");
-        $$.init($1.loc);
-        $$.qualifier.noContraction = true;
-    }
-    ;
-GLSLANG_WEB_EXCLUDE_OFF
-
-type_qualifier
-    : single_type_qualifier {
-        $$ = $1;
-    }
-    | type_qualifier single_type_qualifier {
-        $$ = $1;
-        if ($$.basicType == EbtVoid)
-            $$.basicType = $2.basicType;
-
-        $$.shaderQualifiers.merge($2.shaderQualifiers);
-        parseContext.mergeQualifiers($$.loc, $$.qualifier, $2.qualifier, false);
-    }
-    ;
-
-single_type_qualifier
-    : storage_qualifier {
-        $$ = $1;
-    }
-    | layout_qualifier {
-        $$ = $1;
-    }
-    | precision_qualifier {
-        parseContext.checkPrecisionQualifier($1.loc, $1.qualifier.precision);
-        $$ = $1;
-    }
-    | interpolation_qualifier {
-        // allow inheritance of storage qualifier from block declaration
-        $$ = $1;
-    }
-    | invariant_qualifier {
-        // allow inheritance of storage qualifier from block declaration
-        $$ = $1;
-    }
-GLSLANG_WEB_EXCLUDE_ON
-    | precise_qualifier {
-        // allow inheritance of storage qualifier from block declaration
-        $$ = $1;
-    }
-    | non_uniform_qualifier {
-        $$ = $1;
-    }
-    | spirv_storage_class_qualifier {
-        parseContext.globalCheck($1.loc, "spirv_storage_class");
-        parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V storage class qualifier");
-        $$ = $1;
-    }
-    | spirv_decorate_qualifier {
-        parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V decorate qualifier");
-        $$ = $1;
-    }
-    | SPIRV_BY_REFERENCE {
-        parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_spirv_intrinsics, "spirv_by_reference");
-        $$.init($1.loc);
-        $$.qualifier.setSpirvByReference();
-    }
-    | SPIRV_LITERAL {
-        parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_spirv_intrinsics, "spirv_by_literal");
-        $$.init($1.loc);
-        $$.qualifier.setSpirvLiteral();
-    }
-GLSLANG_WEB_EXCLUDE_OFF
-    ;
-
-storage_qualifier
-    : CONST {
-        $$.init($1.loc);
-        $$.qualifier.storage = EvqConst;  // will later turn into EvqConstReadOnly, if the initializer is not constant
-    }
-    | INOUT {
-        parseContext.globalCheck($1.loc, "inout");
-        $$.init($1.loc);
-        $$.qualifier.storage = EvqInOut;
-    }
-    | IN {
-        parseContext.globalCheck($1.loc, "in");
-        $$.init($1.loc);
-        // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later
-        $$.qualifier.storage = EvqIn;
-    }
-    | OUT {
-        parseContext.globalCheck($1.loc, "out");
-        $$.init($1.loc);
-        // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later
-        $$.qualifier.storage = EvqOut;
-    }
-    | CENTROID {
-        parseContext.profileRequires($1.loc, ENoProfile, 120, 0, "centroid");
-        parseContext.profileRequires($1.loc, EEsProfile, 300, 0, "centroid");
-        parseContext.globalCheck($1.loc, "centroid");
-        $$.init($1.loc);
-        $$.qualifier.centroid = true;
-    }
-    | UNIFORM {
-        parseContext.globalCheck($1.loc, "uniform");
-        $$.init($1.loc);
-        $$.qualifier.storage = EvqUniform;
-    }
-    | TILEIMAGEEXT {
-        parseContext.globalCheck($1.loc, "tileImageEXT");
-        $$.init($1.loc);
-        $$.qualifier.storage = EvqTileImageEXT;
-    }
-    | SHARED {
-        parseContext.globalCheck($1.loc, "shared");
-        parseContext.profileRequires($1.loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared");
-        parseContext.profileRequires($1.loc, EEsProfile, 310, 0, "shared");
-        parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangComputeMask | EShLangMeshMask | EShLangTaskMask), "shared");
-        $$.init($1.loc);
-        $$.qualifier.storage = EvqShared;
-    }
-    | BUFFER {
-        parseContext.globalCheck($1.loc, "buffer");
-        $$.init($1.loc);
-        $$.qualifier.storage = EvqBuffer;
-    }
-GLSLANG_WEB_EXCLUDE_ON
-    | ATTRIBUTE {
-        parseContext.requireStage($1.loc, EShLangVertex, "attribute");
-        parseContext.checkDeprecated($1.loc, ECoreProfile, 130, "attribute");
-        parseContext.checkDeprecated($1.loc, ENoProfile, 130, "attribute");
-        parseContext.requireNotRemoved($1.loc, ECoreProfile, 420, "attribute");
-        parseContext.requireNotRemoved($1.loc, EEsProfile, 300, "attribute");
-
-        parseContext.globalCheck($1.loc, "attribute");
-
-        $$.init($1.loc);
-        $$.qualifier.storage = EvqVaryingIn;
-    }
-    | VARYING {
-        parseContext.checkDeprecated($1.loc, ENoProfile, 130, "varying");
-        parseContext.checkDeprecated($1.loc, ECoreProfile, 130, "varying");
-        parseContext.requireNotRemoved($1.loc, ECoreProfile, 420, "varying");
-        parseContext.requireNotRemoved($1.loc, EEsProfile, 300, "varying");
-
-        parseContext.globalCheck($1.loc, "varying");
-
-        $$.init($1.loc);
-        if (parseContext.language == EShLangVertex)
-            $$.qualifier.storage = EvqVaryingOut;
-        else
-            $$.qualifier.storage = EvqVaryingIn;
-    }
-    | PATCH {
-        parseContext.globalCheck($1.loc, "patch");
-        parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch");
-        $$.init($1.loc);
-        $$.qualifier.patch = true;
-    }
-    | SAMPLE {
-        parseContext.globalCheck($1.loc, "sample");
-        $$.init($1.loc);
-        $$.qualifier.sample = true;
-    }
-    | HITATTRNV {
-        parseContext.globalCheck($1.loc, "hitAttributeNV");
-        parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
-            | EShLangAnyHitMask), "hitAttributeNV");
-        parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "hitAttributeNV");
-        $$.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
-            | EShLangAnyHitMask), "hitAttributeEXT");
-        parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "hitAttributeNV");
-        $$.init($1.loc);
-        $$.qualifier.storage = EvqHitAttr;
-    }
-    | PAYLOADNV {
-        parseContext.globalCheck($1.loc, "rayPayloadNV");
-        parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask |
-            EShLangAnyHitMask | EShLangMissMask), "rayPayloadNV");
-        parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadNV");
-        $$.init($1.loc);
-        $$.qualifier.storage = EvqPayload;
-    }
-    | PAYLOADEXT {
-        parseContext.globalCheck($1.loc, "rayPayloadEXT");
-        parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask |
-            EShLangAnyHitMask | EShLangMissMask), "rayPayloadEXT");
-        parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "rayPayloadEXT");
-        $$.init($1.loc);
-        $$.qualifier.storage = EvqPayload;
-    }
-    | PAYLOADINNV {
-        parseContext.globalCheck($1.loc, "rayPayloadInNV");
-        parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangClosestHitMask |
-            EShLangAnyHitMask | EShLangMissMask), "rayPayloadInNV");
-        parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadInNV");
-        $$.init($1.loc);
-        $$.qualifier.storage = EvqPayloadIn;
-    }
-    | PAYLOADINEXT {
-        parseContext.globalCheck($1.loc, "rayPayloadInEXT");
-        parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangClosestHitMask |
-            EShLangAnyHitMask | EShLangMissMask), "rayPayloadInEXT");
-        parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "rayPayloadInEXT");
-        $$.init($1.loc);
-        $$.qualifier.storage = EvqPayloadIn;
-    }
-    | CALLDATANV {
-        parseContext.globalCheck($1.loc, "callableDataNV");
-        parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangRayGenMask |
-            EShLangClosestHitMask | EShLangMissMask | EShLangCallableMask), "callableDataNV");
-        parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataNV");
-        $$.init($1.loc);
-        $$.qualifier.storage = EvqCallableData;
-    }
-    | CALLDATAEXT {
-        parseContext.globalCheck($1.loc, "callableDataEXT");
-        parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangRayGenMask |
-            EShLangClosestHitMask | EShLangMissMask | EShLangCallableMask), "callableDataEXT");
-        parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "callableDataEXT");
-        $$.init($1.loc);
-        $$.qualifier.storage = EvqCallableData;
-    }
-    | CALLDATAINNV {
-        parseContext.globalCheck($1.loc, "callableDataInNV");
-        parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInNV");
-        parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataInNV");
-        $$.init($1.loc);
-        $$.qualifier.storage = EvqCallableDataIn;
-    }
-    | CALLDATAINEXT {
-        parseContext.globalCheck($1.loc, "callableDataInEXT");
-        parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInEXT");
-        parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "callableDataInEXT");
-        $$.init($1.loc);
-        $$.qualifier.storage = EvqCallableDataIn;
-    }
-    | COHERENT {
-        $$.init($1.loc);
-        $$.qualifier.coherent = true;
-    }
-    | DEVICECOHERENT {
-        $$.init($1.loc);
-        parseContext.requireExtensions($1.loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent");
-        $$.qualifier.devicecoherent = true;
-    }
-    | QUEUEFAMILYCOHERENT {
-        $$.init($1.loc);
-        parseContext.requireExtensions($1.loc, 1, &E_GL_KHR_memory_scope_semantics, "queuefamilycoherent");
-        $$.qualifier.queuefamilycoherent = true;
-    }
-    | WORKGROUPCOHERENT {
-        $$.init($1.loc);
-        parseContext.requireExtensions($1.loc, 1, &E_GL_KHR_memory_scope_semantics, "workgroupcoherent");
-        $$.qualifier.workgroupcoherent = true;
-    }
-    | SUBGROUPCOHERENT {
-        $$.init($1.loc);
-        parseContext.requireExtensions($1.loc, 1, &E_GL_KHR_memory_scope_semantics, "subgroupcoherent");
-        $$.qualifier.subgroupcoherent = true;
-    }
-    | NONPRIVATE {
-        $$.init($1.loc);
-        parseContext.requireExtensions($1.loc, 1, &E_GL_KHR_memory_scope_semantics, "nonprivate");
-        $$.qualifier.nonprivate = true;
-    }
-    | SHADERCALLCOHERENT {
-        $$.init($1.loc);
-        parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_ray_tracing, "shadercallcoherent");
-        $$.qualifier.shadercallcoherent = true;
-    }
-    | VOLATILE {
-        $$.init($1.loc);
-        $$.qualifier.volatil = true;
-    }
-    | RESTRICT {
-        $$.init($1.loc);
-        $$.qualifier.restrict = true;
-    }
-    | READONLY {
-        $$.init($1.loc);
-        $$.qualifier.readonly = true;
-    }
-    | WRITEONLY {
-        $$.init($1.loc);
-        $$.qualifier.writeonly = true;
-    }
-    | SUBROUTINE {
-        parseContext.spvRemoved($1.loc, "subroutine");
-        parseContext.globalCheck($1.loc, "subroutine");
-        parseContext.unimplemented($1.loc, "subroutine");
-        $$.init($1.loc);
-    }
-    | SUBROUTINE LEFT_PAREN type_name_list RIGHT_PAREN {
-        parseContext.spvRemoved($1.loc, "subroutine");
-        parseContext.globalCheck($1.loc, "subroutine");
-        parseContext.unimplemented($1.loc, "subroutine");
-        $$.init($1.loc);
-    }
-    | TASKPAYLOADWORKGROUPEXT {
-        // No need for profile version or extension check. Shader stage already checks both.
-        parseContext.globalCheck($1.loc, "taskPayloadSharedEXT");
-        parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangTaskMask | EShLangMeshMask), "taskPayloadSharedEXT  ");
-        $$.init($1.loc);
-        $$.qualifier.storage = EvqtaskPayloadSharedEXT;
-    }
-GLSLANG_WEB_EXCLUDE_OFF
-    ;
-
-GLSLANG_WEB_EXCLUDE_ON
-non_uniform_qualifier
-    : NONUNIFORM {
-        $$.init($1.loc);
-        $$.qualifier.nonUniform = true;
-    }
-    ;
-
-type_name_list
-    : IDENTIFIER {
-        // TODO
-    }
-    | type_name_list COMMA IDENTIFIER {
-        // 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
-    }
-    ;
-GLSLANG_WEB_EXCLUDE_OFF
-
-type_specifier
-    : type_specifier_nonarray type_parameter_specifier_opt {
-        $$ = $1;
-        $$.qualifier.precision = parseContext.getDefaultPrecision($$);
-        $$.typeParameters = $2;
-    }
-    | type_specifier_nonarray type_parameter_specifier_opt array_specifier {
-        parseContext.arrayOfArrayVersionCheck($3.loc, $3.arraySizes);
-        $$ = $1;
-        $$.qualifier.precision = parseContext.getDefaultPrecision($$);
-        $$.typeParameters = $2;
-        $$.arraySizes = $3.arraySizes;
-    }
-    ;
-
-array_specifier
-    : LEFT_BRACKET RIGHT_BRACKET {
-        $$.loc = $1.loc;
-        $$.arraySizes = new TArraySizes;
-        $$.arraySizes->addInnerSize();
-    }
-    | LEFT_BRACKET conditional_expression RIGHT_BRACKET {
-        $$.loc = $1.loc;
-        $$.arraySizes = new TArraySizes;
-
-        TArraySize size;
-        parseContext.arraySizeCheck($2->getLoc(), $2, size, "array size");
-        $$.arraySizes->addInnerSize(size);
-    }
-    | array_specifier LEFT_BRACKET RIGHT_BRACKET {
-        $$ = $1;
-        $$.arraySizes->addInnerSize();
-    }
-    | array_specifier LEFT_BRACKET conditional_expression RIGHT_BRACKET {
-        $$ = $1;
-
-        TArraySize size;
-        parseContext.arraySizeCheck($3->getLoc(), $3, size, "array size");
-        $$.arraySizes->addInnerSize(size);
-    }
-    ;
-
-type_parameter_specifier_opt
-    : type_parameter_specifier {
-        $$ = $1;
-    }
-    | /* May be null */ {
-        $$ = 0;
-    }
-    ;
-
-type_parameter_specifier
-    : LEFT_ANGLE type_parameter_specifier_list RIGHT_ANGLE {
-        $$ = $2;
-    }
-    ;
-
-type_parameter_specifier_list
-    : unary_expression {
-        $$ = new TArraySizes;
-
-        TArraySize size;
-        parseContext.arraySizeCheck($1->getLoc(), $1, size, "type parameter");
-        $$->addInnerSize(size);
-    }
-    | type_parameter_specifier_list COMMA unary_expression {
-        $$ = $1;
-
-        TArraySize size;
-        parseContext.arraySizeCheck($3->getLoc(), $3, size, "type parameter");
-        $$->addInnerSize(size);
-    }
-    ;
-
-type_specifier_nonarray
-    : VOID {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtVoid;
-    }
-    | FLOAT {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat;
-    }
-    | INT {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtInt;
-    }
-    | UINT {
-        parseContext.fullIntegerCheck($1.loc, "unsigned integer");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtUint;
-    }
-    | BOOL {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtBool;
-    }
-    | VEC2 {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat;
-        $$.setVector(2);
-    }
-    | VEC3 {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat;
-        $$.setVector(3);
-    }
-    | VEC4 {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat;
-        $$.setVector(4);
-    }
-    | BVEC2 {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtBool;
-        $$.setVector(2);
-    }
-    | BVEC3 {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtBool;
-        $$.setVector(3);
-    }
-    | BVEC4 {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtBool;
-        $$.setVector(4);
-    }
-    | IVEC2 {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtInt;
-        $$.setVector(2);
-    }
-    | IVEC3 {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtInt;
-        $$.setVector(3);
-    }
-    | IVEC4 {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtInt;
-        $$.setVector(4);
-    }
-    | UVEC2 {
-        parseContext.fullIntegerCheck($1.loc, "unsigned integer vector");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtUint;
-        $$.setVector(2);
-    }
-    | UVEC3 {
-        parseContext.fullIntegerCheck($1.loc, "unsigned integer vector");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtUint;
-        $$.setVector(3);
-    }
-    | UVEC4 {
-        parseContext.fullIntegerCheck($1.loc, "unsigned integer vector");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtUint;
-        $$.setVector(4);
-    }
-    | MAT2 {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat;
-        $$.setMatrix(2, 2);
-    }
-    | MAT3 {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat;
-        $$.setMatrix(3, 3);
-    }
-    | MAT4 {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat;
-        $$.setMatrix(4, 4);
-    }
-    | MAT2X2 {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat;
-        $$.setMatrix(2, 2);
-    }
-    | MAT2X3 {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat;
-        $$.setMatrix(2, 3);
-    }
-    | MAT2X4 {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat;
-        $$.setMatrix(2, 4);
-    }
-    | MAT3X2 {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat;
-        $$.setMatrix(3, 2);
-    }
-    | MAT3X3 {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat;
-        $$.setMatrix(3, 3);
-    }
-    | MAT3X4 {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat;
-        $$.setMatrix(3, 4);
-    }
-    | MAT4X2 {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat;
-        $$.setMatrix(4, 2);
-    }
-    | MAT4X3 {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat;
-        $$.setMatrix(4, 3);
-    }
-    | MAT4X4 {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat;
-        $$.setMatrix(4, 4);
-    }
-GLSLANG_WEB_EXCLUDE_ON
-    | DOUBLE {
-        parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double");
-        if (! parseContext.symbolTable.atBuiltInLevel())
-            parseContext.doubleCheck($1.loc, "double");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtDouble;
-    }
-    | FLOAT16_T {
-        parseContext.float16ScalarVectorCheck($1.loc, "float16_t", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat16;
-    }
-    | FLOAT32_T {
-        parseContext.explicitFloat32Check($1.loc, "float32_t", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat;
-    }
-    | FLOAT64_T {
-        parseContext.explicitFloat64Check($1.loc, "float64_t", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtDouble;
-    }
-    | INT8_T {
-        parseContext.int8ScalarVectorCheck($1.loc, "8-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtInt8;
-    }
-    | UINT8_T {
-        parseContext.int8ScalarVectorCheck($1.loc, "8-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtUint8;
-    }
-    | INT16_T {
-        parseContext.int16ScalarVectorCheck($1.loc, "16-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtInt16;
-    }
-    | UINT16_T {
-        parseContext.int16ScalarVectorCheck($1.loc, "16-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtUint16;
-    }
-    | INT32_T {
-        parseContext.explicitInt32Check($1.loc, "32-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtInt;
-    }
-    | UINT32_T {
-        parseContext.explicitInt32Check($1.loc, "32-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtUint;
-    }
-    | INT64_T {
-        parseContext.int64Check($1.loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtInt64;
-    }
-    | UINT64_T {
-        parseContext.int64Check($1.loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtUint64;
-    }
-    | DVEC2 {
-        parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double vector");
-        if (! parseContext.symbolTable.atBuiltInLevel())
-            parseContext.doubleCheck($1.loc, "double vector");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtDouble;
-        $$.setVector(2);
-    }
-    | DVEC3 {
-        parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double vector");
-        if (! parseContext.symbolTable.atBuiltInLevel())
-            parseContext.doubleCheck($1.loc, "double vector");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtDouble;
-        $$.setVector(3);
-    }
-    | DVEC4 {
-        parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double vector");
-        if (! parseContext.symbolTable.atBuiltInLevel())
-            parseContext.doubleCheck($1.loc, "double vector");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtDouble;
-        $$.setVector(4);
-    }
-    | F16VEC2 {
-        parseContext.float16ScalarVectorCheck($1.loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat16;
-        $$.setVector(2);
-    }
-    | F16VEC3 {
-        parseContext.float16ScalarVectorCheck($1.loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat16;
-        $$.setVector(3);
-    }
-    | F16VEC4 {
-        parseContext.float16ScalarVectorCheck($1.loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat16;
-        $$.setVector(4);
-    }
-    | F32VEC2 {
-        parseContext.explicitFloat32Check($1.loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat;
-        $$.setVector(2);
-    }
-    | F32VEC3 {
-        parseContext.explicitFloat32Check($1.loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat;
-        $$.setVector(3);
-    }
-    | F32VEC4 {
-        parseContext.explicitFloat32Check($1.loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat;
-        $$.setVector(4);
-    }
-    | F64VEC2 {
-        parseContext.explicitFloat64Check($1.loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtDouble;
-        $$.setVector(2);
-    }
-    | F64VEC3 {
-        parseContext.explicitFloat64Check($1.loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtDouble;
-        $$.setVector(3);
-    }
-    | F64VEC4 {
-        parseContext.explicitFloat64Check($1.loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtDouble;
-        $$.setVector(4);
-    }
-    | I8VEC2 {
-        parseContext.int8ScalarVectorCheck($1.loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtInt8;
-        $$.setVector(2);
-    }
-    | I8VEC3 {
-        parseContext.int8ScalarVectorCheck($1.loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtInt8;
-        $$.setVector(3);
-    }
-    | I8VEC4 {
-        parseContext.int8ScalarVectorCheck($1.loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtInt8;
-        $$.setVector(4);
-    }
-    | I16VEC2 {
-        parseContext.int16ScalarVectorCheck($1.loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtInt16;
-        $$.setVector(2);
-    }
-    | I16VEC3 {
-        parseContext.int16ScalarVectorCheck($1.loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtInt16;
-        $$.setVector(3);
-    }
-    | I16VEC4 {
-        parseContext.int16ScalarVectorCheck($1.loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtInt16;
-        $$.setVector(4);
-    }
-    | I32VEC2 {
-        parseContext.explicitInt32Check($1.loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtInt;
-        $$.setVector(2);
-    }
-    | I32VEC3 {
-        parseContext.explicitInt32Check($1.loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtInt;
-        $$.setVector(3);
-    }
-    | I32VEC4 {
-        parseContext.explicitInt32Check($1.loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtInt;
-        $$.setVector(4);
-    }
-    | I64VEC2 {
-        parseContext.int64Check($1.loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtInt64;
-        $$.setVector(2);
-    }
-    | I64VEC3 {
-        parseContext.int64Check($1.loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtInt64;
-        $$.setVector(3);
-    }
-    | I64VEC4 {
-        parseContext.int64Check($1.loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtInt64;
-        $$.setVector(4);
-    }
-    | U8VEC2 {
-        parseContext.int8ScalarVectorCheck($1.loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtUint8;
-        $$.setVector(2);
-    }
-    | U8VEC3 {
-        parseContext.int8ScalarVectorCheck($1.loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtUint8;
-        $$.setVector(3);
-    }
-    | U8VEC4 {
-        parseContext.int8ScalarVectorCheck($1.loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtUint8;
-        $$.setVector(4);
-    }
-    | U16VEC2 {
-        parseContext.int16ScalarVectorCheck($1.loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtUint16;
-        $$.setVector(2);
-    }
-    | U16VEC3 {
-        parseContext.int16ScalarVectorCheck($1.loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtUint16;
-        $$.setVector(3);
-    }
-    | U16VEC4 {
-        parseContext.int16ScalarVectorCheck($1.loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtUint16;
-        $$.setVector(4);
-    }
-    | U32VEC2 {
-        parseContext.explicitInt32Check($1.loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtUint;
-        $$.setVector(2);
-    }
-    | U32VEC3 {
-        parseContext.explicitInt32Check($1.loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtUint;
-        $$.setVector(3);
-    }
-    | U32VEC4 {
-        parseContext.explicitInt32Check($1.loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtUint;
-        $$.setVector(4);
-    }
-    | U64VEC2 {
-        parseContext.int64Check($1.loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtUint64;
-        $$.setVector(2);
-    }
-    | U64VEC3 {
-        parseContext.int64Check($1.loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtUint64;
-        $$.setVector(3);
-    }
-    | U64VEC4 {
-        parseContext.int64Check($1.loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtUint64;
-        $$.setVector(4);
-    }
-    | DMAT2 {
-        parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
-        if (! parseContext.symbolTable.atBuiltInLevel())
-            parseContext.doubleCheck($1.loc, "double matrix");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtDouble;
-        $$.setMatrix(2, 2);
-    }
-    | DMAT3 {
-        parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
-        if (! parseContext.symbolTable.atBuiltInLevel())
-            parseContext.doubleCheck($1.loc, "double matrix");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtDouble;
-        $$.setMatrix(3, 3);
-    }
-    | DMAT4 {
-        parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
-        if (! parseContext.symbolTable.atBuiltInLevel())
-            parseContext.doubleCheck($1.loc, "double matrix");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtDouble;
-        $$.setMatrix(4, 4);
-    }
-    | DMAT2X2 {
-        parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
-        if (! parseContext.symbolTable.atBuiltInLevel())
-            parseContext.doubleCheck($1.loc, "double matrix");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtDouble;
-        $$.setMatrix(2, 2);
-    }
-    | DMAT2X3 {
-        parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
-        if (! parseContext.symbolTable.atBuiltInLevel())
-            parseContext.doubleCheck($1.loc, "double matrix");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtDouble;
-        $$.setMatrix(2, 3);
-    }
-    | DMAT2X4 {
-        parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
-        if (! parseContext.symbolTable.atBuiltInLevel())
-            parseContext.doubleCheck($1.loc, "double matrix");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtDouble;
-        $$.setMatrix(2, 4);
-    }
-    | DMAT3X2 {
-        parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
-        if (! parseContext.symbolTable.atBuiltInLevel())
-            parseContext.doubleCheck($1.loc, "double matrix");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtDouble;
-        $$.setMatrix(3, 2);
-    }
-    | DMAT3X3 {
-        parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
-        if (! parseContext.symbolTable.atBuiltInLevel())
-            parseContext.doubleCheck($1.loc, "double matrix");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtDouble;
-        $$.setMatrix(3, 3);
-    }
-    | DMAT3X4 {
-        parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
-        if (! parseContext.symbolTable.atBuiltInLevel())
-            parseContext.doubleCheck($1.loc, "double matrix");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtDouble;
-        $$.setMatrix(3, 4);
-    }
-    | DMAT4X2 {
-        parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
-        if (! parseContext.symbolTable.atBuiltInLevel())
-            parseContext.doubleCheck($1.loc, "double matrix");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtDouble;
-        $$.setMatrix(4, 2);
-    }
-    | DMAT4X3 {
-        parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
-        if (! parseContext.symbolTable.atBuiltInLevel())
-            parseContext.doubleCheck($1.loc, "double matrix");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtDouble;
-        $$.setMatrix(4, 3);
-    }
-    | DMAT4X4 {
-        parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double matrix");
-        if (! parseContext.symbolTable.atBuiltInLevel())
-            parseContext.doubleCheck($1.loc, "double matrix");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtDouble;
-        $$.setMatrix(4, 4);
-    }
-    | F16MAT2 {
-        parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat16;
-        $$.setMatrix(2, 2);
-    }
-    | F16MAT3 {
-        parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat16;
-        $$.setMatrix(3, 3);
-    }
-    | F16MAT4 {
-        parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat16;
-        $$.setMatrix(4, 4);
-    }
-    | F16MAT2X2 {
-        parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat16;
-        $$.setMatrix(2, 2);
-    }
-    | F16MAT2X3 {
-        parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat16;
-        $$.setMatrix(2, 3);
-    }
-    | F16MAT2X4 {
-        parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat16;
-        $$.setMatrix(2, 4);
-    }
-    | F16MAT3X2 {
-        parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat16;
-        $$.setMatrix(3, 2);
-    }
-    | F16MAT3X3 {
-        parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat16;
-        $$.setMatrix(3, 3);
-    }
-    | F16MAT3X4 {
-        parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat16;
-        $$.setMatrix(3, 4);
-    }
-    | F16MAT4X2 {
-        parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat16;
-        $$.setMatrix(4, 2);
-    }
-    | F16MAT4X3 {
-        parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat16;
-        $$.setMatrix(4, 3);
-    }
-    | F16MAT4X4 {
-        parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat16;
-        $$.setMatrix(4, 4);
-    }
-    | F32MAT2 {
-        parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat;
-        $$.setMatrix(2, 2);
-    }
-    | F32MAT3 {
-        parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat;
-        $$.setMatrix(3, 3);
-    }
-    | F32MAT4 {
-        parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat;
-        $$.setMatrix(4, 4);
-    }
-    | F32MAT2X2 {
-        parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat;
-        $$.setMatrix(2, 2);
-    }
-    | F32MAT2X3 {
-        parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat;
-        $$.setMatrix(2, 3);
-    }
-    | F32MAT2X4 {
-        parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat;
-        $$.setMatrix(2, 4);
-    }
-    | F32MAT3X2 {
-        parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat;
-        $$.setMatrix(3, 2);
-    }
-    | F32MAT3X3 {
-        parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat;
-        $$.setMatrix(3, 3);
-    }
-    | F32MAT3X4 {
-        parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat;
-        $$.setMatrix(3, 4);
-    }
-    | F32MAT4X2 {
-        parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat;
-        $$.setMatrix(4, 2);
-    }
-    | F32MAT4X3 {
-        parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat;
-        $$.setMatrix(4, 3);
-    }
-    | F32MAT4X4 {
-        parseContext.explicitFloat32Check($1.loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat;
-        $$.setMatrix(4, 4);
-    }
-    | F64MAT2 {
-        parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtDouble;
-        $$.setMatrix(2, 2);
-    }
-    | F64MAT3 {
-        parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtDouble;
-        $$.setMatrix(3, 3);
-    }
-    | F64MAT4 {
-        parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtDouble;
-        $$.setMatrix(4, 4);
-    }
-    | F64MAT2X2 {
-        parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtDouble;
-        $$.setMatrix(2, 2);
-    }
-    | F64MAT2X3 {
-        parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtDouble;
-        $$.setMatrix(2, 3);
-    }
-    | F64MAT2X4 {
-        parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtDouble;
-        $$.setMatrix(2, 4);
-    }
-    | F64MAT3X2 {
-        parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtDouble;
-        $$.setMatrix(3, 2);
-    }
-    | F64MAT3X3 {
-        parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtDouble;
-        $$.setMatrix(3, 3);
-    }
-    | F64MAT3X4 {
-        parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtDouble;
-        $$.setMatrix(3, 4);
-    }
-    | F64MAT4X2 {
-        parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtDouble;
-        $$.setMatrix(4, 2);
-    }
-    | F64MAT4X3 {
-        parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtDouble;
-        $$.setMatrix(4, 3);
-    }
-    | F64MAT4X4 {
-        parseContext.explicitFloat64Check($1.loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtDouble;
-        $$.setMatrix(4, 4);
-    }
-    | ACCSTRUCTNV {
-       $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-       $$.basicType = EbtAccStruct;
-    }
-    | ACCSTRUCTEXT {
-       $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-       $$.basicType = EbtAccStruct;
-    }
-    | RAYQUERYEXT {
-       $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-       $$.basicType = EbtRayQuery;
-    }
-    | ATOMIC_UINT {
-        parseContext.vulkanRemoved($1.loc, "atomic counter types");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtAtomicUint;
-    }
-    | SAMPLER1D {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat, Esd1D);
-    }
-GLSLANG_WEB_EXCLUDE_OFF
-    | SAMPLER2D {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat, Esd2D);
-    }
-    | SAMPLER3D {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat, Esd3D);
-    }
-    | SAMPLERCUBE {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat, EsdCube);
-    }
-    | SAMPLER2DSHADOW {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat, Esd2D, false, true);
-    }
-    | SAMPLERCUBESHADOW {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat, EsdCube, false, true);
-    }
-    | SAMPLER2DARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat, Esd2D, true);
-    }
-    | SAMPLER2DARRAYSHADOW {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat, Esd2D, true, true);
-    }
-GLSLANG_WEB_EXCLUDE_ON
-    | SAMPLER1DSHADOW {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat, Esd1D, false, true);
-    }
-    | SAMPLER1DARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat, Esd1D, true);
-    }
-    | SAMPLER1DARRAYSHADOW {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat, Esd1D, true, true);
-    }
-    | SAMPLERCUBEARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat, EsdCube, true);
-    }
-    | SAMPLERCUBEARRAYSHADOW {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat, EsdCube, true, true);
-    }
-    | F16SAMPLER1D {
-        parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat16, Esd1D);
-    }
-    | F16SAMPLER2D {
-        parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat16, Esd2D);
-    }
-    | F16SAMPLER3D {
-        parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat16, Esd3D);
-    }
-    | F16SAMPLERCUBE {
-        parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat16, EsdCube);
-    }
-    | F16SAMPLER1DSHADOW {
-        parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat16, Esd1D, false, true);
-    }
-    | F16SAMPLER2DSHADOW {
-        parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat16, Esd2D, false, true);
-    }
-    | F16SAMPLERCUBESHADOW {
-        parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat16, EsdCube, false, true);
-    }
-    | F16SAMPLER1DARRAY {
-        parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat16, Esd1D, true);
-    }
-    | F16SAMPLER2DARRAY {
-        parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat16, Esd2D, true);
-    }
-    | F16SAMPLER1DARRAYSHADOW {
-        parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat16, Esd1D, true, true);
-    }
-    | F16SAMPLER2DARRAYSHADOW {
-        parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat16, Esd2D, true, true);
-    }
-    | F16SAMPLERCUBEARRAY {
-        parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat16, EsdCube, true);
-    }
-    | F16SAMPLERCUBEARRAYSHADOW {
-        parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat16, EsdCube, true, true);
-    }
-    | ISAMPLER1D {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtInt, Esd1D);
-    }
-GLSLANG_WEB_EXCLUDE_OFF
-    | ISAMPLER2D {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtInt, Esd2D);
-    }
-    | ISAMPLER3D {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtInt, Esd3D);
-    }
-    | ISAMPLERCUBE {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtInt, EsdCube);
-    }
-    | ISAMPLER2DARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtInt, Esd2D, true);
-    }
-    | USAMPLER2D {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtUint, Esd2D);
-    }
-    | USAMPLER3D {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtUint, Esd3D);
-    }
-    | USAMPLERCUBE {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtUint, EsdCube);
-    }
-GLSLANG_WEB_EXCLUDE_ON
-    | ISAMPLER1DARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtInt, Esd1D, true);
-    }
-    | ISAMPLERCUBEARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtInt, EsdCube, true);
-    }
-    | USAMPLER1D {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtUint, Esd1D);
-    }
-    | USAMPLER1DARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtUint, Esd1D, true);
-    }
-    | USAMPLERCUBEARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtUint, EsdCube, true);
-    }
-    | TEXTURECUBEARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtFloat, EsdCube, true);
-    }
-    | ITEXTURECUBEARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtInt, EsdCube, true);
-    }
-    | UTEXTURECUBEARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtUint, EsdCube, true);
-    }
-GLSLANG_WEB_EXCLUDE_OFF
-    | USAMPLER2DARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtUint, Esd2D, true);
-    }
-    | TEXTURE2D {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtFloat, Esd2D);
-    }
-    | TEXTURE3D {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtFloat, Esd3D);
-    }
-    | TEXTURE2DARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtFloat, Esd2D, true);
-    }
-    | TEXTURECUBE {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtFloat, EsdCube);
-    }
-    | ITEXTURE2D {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtInt, Esd2D);
-    }
-    | ITEXTURE3D {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtInt, Esd3D);
-    }
-    | ITEXTURECUBE {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtInt, EsdCube);
-    }
-    | ITEXTURE2DARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtInt, Esd2D, true);
-    }
-    | UTEXTURE2D {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtUint, Esd2D);
-    }
-    | UTEXTURE3D {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtUint, Esd3D);
-    }
-    | UTEXTURECUBE {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtUint, EsdCube);
-    }
-    | UTEXTURE2DARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtUint, Esd2D, true);
-    }
-    | SAMPLER {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setPureSampler(false);
-    }
-    | SAMPLERSHADOW {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setPureSampler(true);
-    }
-GLSLANG_WEB_EXCLUDE_ON
-    | SAMPLER2DRECT {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat, EsdRect);
-    }
-    | SAMPLER2DRECTSHADOW {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat, EsdRect, false, true);
-    }
-    | F16SAMPLER2DRECT {
-        parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat16, EsdRect);
-    }
-    | F16SAMPLER2DRECTSHADOW {
-        parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat16, EsdRect, false, true);
-    }
-    | ISAMPLER2DRECT {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtInt, EsdRect);
-    }
-    | USAMPLER2DRECT {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtUint, EsdRect);
-    }
-    | SAMPLERBUFFER {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat, EsdBuffer);
-    }
-    | F16SAMPLERBUFFER {
-        parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat16, EsdBuffer);
-    }
-    | ISAMPLERBUFFER {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtInt, EsdBuffer);
-    }
-    | USAMPLERBUFFER {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtUint, EsdBuffer);
-    }
-    | SAMPLER2DMS {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat, Esd2D, false, false, true);
-    }
-    | F16SAMPLER2DMS {
-        parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat16, Esd2D, false, false, true);
-    }
-    | ISAMPLER2DMS {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtInt, Esd2D, false, false, true);
-    }
-    | USAMPLER2DMS {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtUint, Esd2D, false, false, true);
-    }
-    | SAMPLER2DMSARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat, Esd2D, true, false, true);
-    }
-    | F16SAMPLER2DMSARRAY {
-        parseContext.float16OpaqueCheck($1.loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat16, Esd2D, true, false, true);
-    }
-    | ISAMPLER2DMSARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtInt, Esd2D, true, false, true);
-    }
-    | USAMPLER2DMSARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtUint, Esd2D, true, false, true);
-    }
-    | TEXTURE1D {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtFloat, Esd1D);
-    }
-    | F16TEXTURE1D {
-        parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtFloat16, Esd1D);
-    }
-    | F16TEXTURE2D {
-        parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtFloat16, Esd2D);
-    }
-    | F16TEXTURE3D {
-        parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtFloat16, Esd3D);
-    }
-    | F16TEXTURECUBE {
-        parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtFloat16, EsdCube);
-    }
-    | TEXTURE1DARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtFloat, Esd1D, true);
-    }
-    | F16TEXTURE1DARRAY {
-        parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtFloat16, Esd1D, true);
-    }
-    | F16TEXTURE2DARRAY {
-        parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtFloat16, Esd2D, true);
-    }
-    | F16TEXTURECUBEARRAY {
-        parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtFloat16, EsdCube, true);
-    }
-    | ITEXTURE1D {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtInt, Esd1D);
-    }
-    | ITEXTURE1DARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtInt, Esd1D, true);
-    }
-    | UTEXTURE1D {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtUint, Esd1D);
-    }
-    | UTEXTURE1DARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtUint, Esd1D, true);
-    }
-    | TEXTURE2DRECT {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtFloat, EsdRect);
-    }
-    | F16TEXTURE2DRECT {
-        parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtFloat16, EsdRect);
-    }
-    | ITEXTURE2DRECT {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtInt, EsdRect);
-    }
-    | UTEXTURE2DRECT {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtUint, EsdRect);
-    }
-    | TEXTUREBUFFER {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtFloat, EsdBuffer);
-    }
-    | F16TEXTUREBUFFER {
-        parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtFloat16, EsdBuffer);
-    }
-    | ITEXTUREBUFFER {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtInt, EsdBuffer);
-    }
-    | UTEXTUREBUFFER {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtUint, EsdBuffer);
-    }
-    | TEXTURE2DMS {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtFloat, Esd2D, false, false, true);
-    }
-    | F16TEXTURE2DMS {
-        parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtFloat16, Esd2D, false, false, true);
-    }
-    | ITEXTURE2DMS {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtInt, Esd2D, false, false, true);
-    }
-    | UTEXTURE2DMS {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtUint, Esd2D, false, false, true);
-    }
-    | TEXTURE2DMSARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtFloat, Esd2D, true, false, true);
-    }
-    | F16TEXTURE2DMSARRAY {
-        parseContext.float16OpaqueCheck($1.loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtFloat16, Esd2D, true, false, true);
-    }
-    | ITEXTURE2DMSARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtInt, Esd2D, true, false, true);
-    }
-    | UTEXTURE2DMSARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setTexture(EbtUint, Esd2D, true, false, true);
-    }
-    | IMAGE1D {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtFloat, Esd1D);
-    }
-    | F16IMAGE1D {
-        parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtFloat16, Esd1D);
-    }
-    | IIMAGE1D {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtInt, Esd1D);
-    }
-    | UIMAGE1D {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtUint, Esd1D);
-    }
-    | IMAGE2D {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtFloat, Esd2D);
-    }
-    | F16IMAGE2D {
-        parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtFloat16, Esd2D);
-    }
-    | IIMAGE2D {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtInt, Esd2D);
-    }
-    | UIMAGE2D {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtUint, Esd2D);
-    }
-    | IMAGE3D {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtFloat, Esd3D);
-    }
-    | F16IMAGE3D {
-        parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtFloat16, Esd3D);
-    }
-    | IIMAGE3D {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtInt, Esd3D);
-    }
-    | UIMAGE3D {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtUint, Esd3D);
-    }
-    | IMAGE2DRECT {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtFloat, EsdRect);
-    }
-    | F16IMAGE2DRECT {
-        parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtFloat16, EsdRect);
-    }
-    | IIMAGE2DRECT {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtInt, EsdRect);
-    }
-    | UIMAGE2DRECT {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtUint, EsdRect);
-    }
-    | IMAGECUBE {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtFloat, EsdCube);
-    }
-    | F16IMAGECUBE {
-        parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtFloat16, EsdCube);
-    }
-    | IIMAGECUBE {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtInt, EsdCube);
-    }
-    | UIMAGECUBE {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtUint, EsdCube);
-    }
-    | IMAGEBUFFER {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtFloat, EsdBuffer);
-    }
-    | F16IMAGEBUFFER {
-        parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtFloat16, EsdBuffer);
-    }
-    | IIMAGEBUFFER {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtInt, EsdBuffer);
-    }
-    | UIMAGEBUFFER {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtUint, EsdBuffer);
-    }
-    | IMAGE1DARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtFloat, Esd1D, true);
-    }
-    | F16IMAGE1DARRAY {
-        parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtFloat16, Esd1D, true);
-    }
-    | IIMAGE1DARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtInt, Esd1D, true);
-    }
-    | UIMAGE1DARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtUint, Esd1D, true);
-    }
-    | IMAGE2DARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtFloat, Esd2D, true);
-    }
-    | F16IMAGE2DARRAY {
-        parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtFloat16, Esd2D, true);
-    }
-    | IIMAGE2DARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtInt, Esd2D, true);
-    }
-    | UIMAGE2DARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtUint, Esd2D, true);
-    }
-    | IMAGECUBEARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtFloat, EsdCube, true);
-    }
-    | F16IMAGECUBEARRAY {
-        parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtFloat16, EsdCube, true);
-    }
-    | IIMAGECUBEARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtInt, EsdCube, true);
-    }
-    | UIMAGECUBEARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtUint, EsdCube, true);
-    }
-    | IMAGE2DMS {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtFloat, Esd2D, false, false, true);
-    }
-    | F16IMAGE2DMS {
-        parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtFloat16, Esd2D, false, false, true);
-    }
-    | IIMAGE2DMS {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtInt, Esd2D, false, false, true);
-    }
-    | UIMAGE2DMS {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtUint, Esd2D, false, false, true);
-    }
-    | IMAGE2DMSARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtFloat, Esd2D, true, false, true);
-    }
-    | F16IMAGE2DMSARRAY {
-        parseContext.float16OpaqueCheck($1.loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtFloat16, Esd2D, true, false, true);
-    }
-    | IIMAGE2DMSARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtInt, Esd2D, true, false, true);
-    }
-    | UIMAGE2DMSARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtUint, Esd2D, true, false, true);
-    }
-    | I64IMAGE1D {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtInt64, Esd1D);
-    }
-    | U64IMAGE1D {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtUint64, Esd1D);
-    }
-    | I64IMAGE2D {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtInt64, Esd2D);
-    }
-    | U64IMAGE2D {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtUint64, Esd2D);
-    }
-    | I64IMAGE3D {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtInt64, Esd3D);
-    }
-    | U64IMAGE3D {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtUint64, Esd3D);
-    }
-    | I64IMAGE2DRECT {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtInt64, EsdRect);
-    }
-    | U64IMAGE2DRECT {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtUint64, EsdRect);
-    }
-    | I64IMAGECUBE {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtInt64, EsdCube);
-    }
-    | U64IMAGECUBE {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtUint64, EsdCube);
-    }
-    | I64IMAGEBUFFER {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtInt64, EsdBuffer);
-    }
-    | U64IMAGEBUFFER {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtUint64, EsdBuffer);
-    }
-    | I64IMAGE1DARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtInt64, Esd1D, true);
-    }
-    | U64IMAGE1DARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtUint64, Esd1D, true);
-    }
-    | I64IMAGE2DARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtInt64, Esd2D, true);
-    }
-    | U64IMAGE2DARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtUint64, Esd2D, true);
-    }
-    | I64IMAGECUBEARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtInt64, EsdCube, true);
-    }
-    | U64IMAGECUBEARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtUint64, EsdCube, true);
-    }
-    | I64IMAGE2DMS {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtInt64, Esd2D, false, false, true);
-    }
-    | U64IMAGE2DMS {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtUint64, Esd2D, false, false, true);
-    }
-    | I64IMAGE2DMSARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtInt64, Esd2D, true, false, true);
-    }
-    | U64IMAGE2DMSARRAY {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setImage(EbtUint64, Esd2D, true, false, true);
-    }
-    | SAMPLEREXTERNALOES {  // GL_OES_EGL_image_external
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat, Esd2D);
-        $$.sampler.external = true;
-    }
-    | SAMPLEREXTERNAL2DY2YEXT { // GL_EXT_YUV_target
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.set(EbtFloat, Esd2D);
-        $$.sampler.yuv = true;
-    }
-    | ATTACHMENTEXT {
-        parseContext.requireStage($1.loc, EShLangFragment, "attachmentEXT input");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setAttachmentEXT(EbtFloat);
-    }
-    | IATTACHMENTEXT {
-        parseContext.requireStage($1.loc, EShLangFragment, "attachmentEXT input");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setAttachmentEXT(EbtInt);
-    }
-    | UATTACHMENTEXT {
-        parseContext.requireStage($1.loc, EShLangFragment, "attachmentEXT input");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setAttachmentEXT(EbtUint);
-    }
-    | SUBPASSINPUT {
-        parseContext.requireStage($1.loc, EShLangFragment, "subpass input");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setSubpass(EbtFloat);
-    }
-    | SUBPASSINPUTMS {
-        parseContext.requireStage($1.loc, EShLangFragment, "subpass input");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setSubpass(EbtFloat, true);
-    }
-    | F16SUBPASSINPUT {
-        parseContext.float16OpaqueCheck($1.loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
-        parseContext.requireStage($1.loc, EShLangFragment, "subpass input");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setSubpass(EbtFloat16);
-    }
-    | F16SUBPASSINPUTMS {
-        parseContext.float16OpaqueCheck($1.loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
-        parseContext.requireStage($1.loc, EShLangFragment, "subpass input");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setSubpass(EbtFloat16, true);
-    }
-    | ISUBPASSINPUT {
-        parseContext.requireStage($1.loc, EShLangFragment, "subpass input");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setSubpass(EbtInt);
-    }
-    | ISUBPASSINPUTMS {
-        parseContext.requireStage($1.loc, EShLangFragment, "subpass input");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setSubpass(EbtInt, true);
-    }
-    | USUBPASSINPUT {
-        parseContext.requireStage($1.loc, EShLangFragment, "subpass input");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setSubpass(EbtUint);
-    }
-    | USUBPASSINPUTMS {
-        parseContext.requireStage($1.loc, EShLangFragment, "subpass input");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtSampler;
-        $$.sampler.setSubpass(EbtUint, true);
-    }
-    | FCOOPMATNV {
-        parseContext.fcoopmatCheck($1.loc, "fcoopmatNV", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtFloat;
-        $$.coopmat = true;
-    }
-    | ICOOPMATNV {
-        parseContext.intcoopmatCheck($1.loc, "icoopmatNV", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtInt;
-        $$.coopmat = true;
-    }
-    | UCOOPMATNV {
-        parseContext.intcoopmatCheck($1.loc, "ucoopmatNV", parseContext.symbolTable.atBuiltInLevel());
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.basicType = EbtUint;
-        $$.coopmat = true;
-    }
-    | spirv_type_specifier {
-        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;
-        $$.qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
-        parseContext.structTypeCheck($$.loc, $$);
-    }
-    | TYPE_NAME {
-        //
-        // This is for user defined type names.  The lexical phase looked up the
-        // type.
-        //
-        if (const TVariable* variable = ($1.symbol)->getAsVariable()) {
-            const TType& structure = variable->getType();
-            $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-            $$.basicType = EbtStruct;
-            $$.userDef = &structure;
-        } else
-            parseContext.error($1.loc, "expected type name", $1.string->c_str(), "");
-    }
-    ;
-
-precision_qualifier
-    : HIGH_PRECISION {
-        parseContext.profileRequires($1.loc, ENoProfile, 130, 0, "highp precision qualifier");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        parseContext.handlePrecisionQualifier($1.loc, $$.qualifier, EpqHigh);
-    }
-    | MEDIUM_PRECISION {
-        parseContext.profileRequires($1.loc, ENoProfile, 130, 0, "mediump precision qualifier");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        parseContext.handlePrecisionQualifier($1.loc, $$.qualifier, EpqMedium);
-    }
-    | LOW_PRECISION {
-        parseContext.profileRequires($1.loc, ENoProfile, 130, 0, "lowp precision qualifier");
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        parseContext.handlePrecisionQualifier($1.loc, $$.qualifier, EpqLow);
-    }
-    ;
-
-struct_specifier
-    : STRUCT IDENTIFIER LEFT_BRACE { parseContext.nestedStructCheck($1.loc); } struct_declaration_list RIGHT_BRACE {
-        TType* structure = new TType($5, *$2.string);
-        parseContext.structArrayCheck($2.loc, *structure);
-        TVariable* userTypeDef = new TVariable($2.string, *structure, true);
-        if (! parseContext.symbolTable.insert(*userTypeDef))
-            parseContext.error($2.loc, "redefinition", $2.string->c_str(), "struct");
-        $$.init($1.loc);
-        $$.basicType = EbtStruct;
-        $$.userDef = structure;
-        --parseContext.structNestingLevel;
-    }
-    | STRUCT LEFT_BRACE { parseContext.nestedStructCheck($1.loc); } struct_declaration_list RIGHT_BRACE {
-        TType* structure = new TType($4, TString(""));
-        $$.init($1.loc);
-        $$.basicType = EbtStruct;
-        $$.userDef = structure;
-        --parseContext.structNestingLevel;
-    }
-    ;
-
-struct_declaration_list
-    : struct_declaration {
-        $$ = $1;
-    }
-    | struct_declaration_list struct_declaration {
-        $$ = $1;
-        for (unsigned int i = 0; i < $2->size(); ++i) {
-            for (unsigned int j = 0; j < $$->size(); ++j) {
-                if ((*$$)[j].type->getFieldName() == (*$2)[i].type->getFieldName())
-                    parseContext.error((*$2)[i].loc, "duplicate member name:", "", (*$2)[i].type->getFieldName().c_str());
-            }
-            $$->push_back((*$2)[i]);
-        }
-    }
-    ;
-
-struct_declaration
-    : type_specifier struct_declarator_list SEMICOLON {
-        if ($1.arraySizes) {
-            parseContext.profileRequires($1.loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
-            parseContext.profileRequires($1.loc, EEsProfile, 300, 0, "arrayed type");
-            if (parseContext.isEsProfile())
-                parseContext.arraySizeRequiredCheck($1.loc, *$1.arraySizes);
-        }
-
-        $$ = $2;
-
-        parseContext.voidErrorCheck($1.loc, (*$2)[0].type->getFieldName(), $1.basicType);
-        parseContext.precisionQualifierCheck($1.loc, $1.basicType, $1.qualifier);
-
-        for (unsigned int i = 0; i < $$->size(); ++i) {
-            TType type($1);
-            type.setFieldName((*$$)[i].type->getFieldName());
-            type.transferArraySizes((*$$)[i].type->getArraySizes());
-            type.copyArrayInnerSizes($1.arraySizes);
-            parseContext.arrayOfArrayVersionCheck((*$$)[i].loc, type.getArraySizes());
-            (*$$)[i].type->shallowCopy(type);
-        }
-    }
-    | type_qualifier type_specifier struct_declarator_list SEMICOLON {
-        if ($2.arraySizes) {
-            parseContext.profileRequires($2.loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
-            parseContext.profileRequires($2.loc, EEsProfile, 300, 0, "arrayed type");
-            if (parseContext.isEsProfile())
-                parseContext.arraySizeRequiredCheck($2.loc, *$2.arraySizes);
-        }
-
-        $$ = $3;
-
-        parseContext.memberQualifierCheck($1);
-        parseContext.voidErrorCheck($2.loc, (*$3)[0].type->getFieldName(), $2.basicType);
-        parseContext.mergeQualifiers($2.loc, $2.qualifier, $1.qualifier, true);
-        parseContext.precisionQualifierCheck($2.loc, $2.basicType, $2.qualifier);
-
-        for (unsigned int i = 0; i < $$->size(); ++i) {
-            TType type($2);
-            type.setFieldName((*$$)[i].type->getFieldName());
-            type.transferArraySizes((*$$)[i].type->getArraySizes());
-            type.copyArrayInnerSizes($2.arraySizes);
-            parseContext.arrayOfArrayVersionCheck((*$$)[i].loc, type.getArraySizes());
-            (*$$)[i].type->shallowCopy(type);
-        }
-    }
-    ;
-
-struct_declarator_list
-    : struct_declarator {
-        $$ = new TTypeList;
-        $$->push_back($1);
-    }
-    | struct_declarator_list COMMA struct_declarator {
-        $$->push_back($3);
-    }
-    ;
-
-struct_declarator
-    : IDENTIFIER {
-        $$.type = new TType(EbtVoid);
-        $$.loc = $1.loc;
-        $$.type->setFieldName(*$1.string);
-    }
-    | IDENTIFIER array_specifier {
-        parseContext.arrayOfArrayVersionCheck($1.loc, $2.arraySizes);
-
-        $$.type = new TType(EbtVoid);
-        $$.loc = $1.loc;
-        $$.type->setFieldName(*$1.string);
-        $$.type->transferArraySizes($2.arraySizes);
-    }
-    ;
-
-initializer
-    : assignment_expression {
-        $$ = $1;
-    }
-GLSLANG_WEB_EXCLUDE_ON
-    | LEFT_BRACE initializer_list RIGHT_BRACE {
-        const char* initFeature = "{ } style initializers";
-        parseContext.requireProfile($1.loc, ~EEsProfile, initFeature);
-        parseContext.profileRequires($1.loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
-        $$ = $2;
-    }
-    | LEFT_BRACE initializer_list COMMA RIGHT_BRACE {
-        const char* initFeature = "{ } style initializers";
-        parseContext.requireProfile($1.loc, ~EEsProfile, initFeature);
-        parseContext.profileRequires($1.loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
-        $$ = $2;
-    }
-    | LEFT_BRACE RIGHT_BRACE {
-        const char* initFeature = "empty { } initializer";
-        parseContext.profileRequires($1.loc, EEsProfile, 0, E_GL_EXT_null_initializer, initFeature);
-        parseContext.profileRequires($1.loc, ~EEsProfile, 0, E_GL_EXT_null_initializer, initFeature);
-        $$ = parseContext.intermediate.makeAggregate($1.loc);
-    }
-GLSLANG_WEB_EXCLUDE_OFF
-    ;
-
-GLSLANG_WEB_EXCLUDE_ON
-initializer_list
-    : initializer {
-        $$ = parseContext.intermediate.growAggregate(0, $1, $1->getLoc());
-    }
-    | initializer_list COMMA initializer {
-        $$ = parseContext.intermediate.growAggregate($1, $3);
-    }
-    ;
-GLSLANG_WEB_EXCLUDE_OFF
-
-declaration_statement
-    : declaration { $$ = $1; }
-    ;
-
-statement
-    : compound_statement  { $$ = $1; }
-    | simple_statement    { $$ = $1; }
-    ;
-
-// Grammar Note:  labeled statements for switch statements only; 'goto' is not supported.
-
-simple_statement
-    : declaration_statement { $$ = $1; }
-    | expression_statement  { $$ = $1; }
-    | selection_statement   { $$ = $1; }
-    | switch_statement      { $$ = $1; }
-    | case_label            { $$ = $1; }
-    | iteration_statement   { $$ = $1; }
-    | jump_statement        { $$ = $1; }
-GLSLANG_WEB_EXCLUDE_ON
-    | demote_statement      { $$ = $1; }
-GLSLANG_WEB_EXCLUDE_OFF
-    ;
-
-GLSLANG_WEB_EXCLUDE_ON
-demote_statement
-    : DEMOTE SEMICOLON {
-        parseContext.requireStage($1.loc, EShLangFragment, "demote");
-        parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_demote_to_helper_invocation, "demote");
-        $$ = parseContext.intermediate.addBranch(EOpDemote, $1.loc);
-    }
-    ;
-GLSLANG_WEB_EXCLUDE_OFF
-
-compound_statement
-    : LEFT_BRACE RIGHT_BRACE { $$ = 0; }
-    | LEFT_BRACE {
-        parseContext.symbolTable.push();
-        ++parseContext.statementNestingLevel;
-    }
-      statement_list {
-        parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
-        --parseContext.statementNestingLevel;
-    }
-      RIGHT_BRACE {
-        if ($3 && $3->getAsAggregate())
-            $3->getAsAggregate()->setOperator(parseContext.intermediate.getDebugInfo() ? EOpScope : EOpSequence);
-        $$ = $3;
-    }
-    ;
-
-statement_no_new_scope
-    : compound_statement_no_new_scope { $$ = $1; }
-    | simple_statement                { $$ = $1; }
-    ;
-
-statement_scoped
-    : {
-        ++parseContext.controlFlowNestingLevel;
-    }
-      compound_statement  {
-        --parseContext.controlFlowNestingLevel;
-        $$ = $2;
-    }
-    | {
-        parseContext.symbolTable.push();
-        ++parseContext.statementNestingLevel;
-        ++parseContext.controlFlowNestingLevel;
-    }
-      simple_statement {
-        parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
-        --parseContext.statementNestingLevel;
-        --parseContext.controlFlowNestingLevel;
-        $$ = $2;
-    }
-
-compound_statement_no_new_scope
-    // Statement that doesn't create a new scope, for selection_statement, iteration_statement
-    : LEFT_BRACE RIGHT_BRACE {
-        $$ = 0;
-    }
-    | LEFT_BRACE statement_list RIGHT_BRACE {
-        if ($2 && $2->getAsAggregate())
-            $2->getAsAggregate()->setOperator(EOpSequence);
-        $$ = $2;
-    }
-    ;
-
-statement_list
-    : statement {
-        $$ = parseContext.intermediate.makeAggregate($1);
-        if ($1 && $1->getAsBranchNode() && ($1->getAsBranchNode()->getFlowOp() == EOpCase ||
-                                            $1->getAsBranchNode()->getFlowOp() == EOpDefault)) {
-            parseContext.wrapupSwitchSubsequence(0, $1);
-            $$ = 0;  // start a fresh subsequence for what's after this case
-        }
-    }
-    | statement_list statement {
-        if ($2 && $2->getAsBranchNode() && ($2->getAsBranchNode()->getFlowOp() == EOpCase ||
-                                            $2->getAsBranchNode()->getFlowOp() == EOpDefault)) {
-            parseContext.wrapupSwitchSubsequence($1 ? $1->getAsAggregate() : 0, $2);
-            $$ = 0;  // start a fresh subsequence for what's after this case
-        } else
-            $$ = parseContext.intermediate.growAggregate($1, $2);
-    }
-    ;
-
-expression_statement
-    : SEMICOLON  { $$ = 0; }
-    | expression SEMICOLON  { $$ = static_cast<TIntermNode*>($1); }
-    ;
-
-selection_statement
-    : selection_statement_nonattributed {
-        $$ = $1;
-    }
-GLSLANG_WEB_EXCLUDE_ON
-    | attribute selection_statement_nonattributed {
-        parseContext.requireExtensions($2->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute");
-        parseContext.handleSelectionAttributes(*$1, $2);
-        $$ = $2;
-    }
-GLSLANG_WEB_EXCLUDE_OFF
-
-selection_statement_nonattributed
-    : IF LEFT_PAREN expression RIGHT_PAREN selection_rest_statement {
-        parseContext.boolCheck($1.loc, $3);
-        $$ = parseContext.intermediate.addSelection($3, $5, $1.loc);
-    }
-    ;
-
-selection_rest_statement
-    : statement_scoped ELSE statement_scoped {
-        $$.node1 = $1;
-        $$.node2 = $3;
-    }
-    | statement_scoped {
-        $$.node1 = $1;
-        $$.node2 = 0;
-    }
-    ;
-
-condition
-    // In 1996 c++ draft, conditions can include single declarations
-    : expression {
-        $$ = $1;
-        parseContext.boolCheck($1->getLoc(), $1);
-    }
-    | fully_specified_type IDENTIFIER EQUAL initializer {
-        parseContext.boolCheck($2.loc, $1);
-
-        TType type($1);
-        TIntermNode* initNode = parseContext.declareVariable($2.loc, *$2.string, $1, 0, $4);
-        if (initNode)
-            $$ = initNode->getAsTyped();
-        else
-            $$ = 0;
-    }
-    ;
-
-switch_statement
-    : switch_statement_nonattributed {
-        $$ = $1;
-    }
-GLSLANG_WEB_EXCLUDE_ON
-    | attribute switch_statement_nonattributed {
-        parseContext.requireExtensions($2->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute");
-        parseContext.handleSwitchAttributes(*$1, $2);
-        $$ = $2;
-    }
-GLSLANG_WEB_EXCLUDE_OFF
-
-switch_statement_nonattributed
-    : SWITCH LEFT_PAREN expression RIGHT_PAREN {
-        // start new switch sequence on the switch stack
-        ++parseContext.controlFlowNestingLevel;
-        ++parseContext.statementNestingLevel;
-        parseContext.switchSequenceStack.push_back(new TIntermSequence);
-        parseContext.switchLevel.push_back(parseContext.statementNestingLevel);
-        parseContext.symbolTable.push();
-    }
-    LEFT_BRACE switch_statement_list RIGHT_BRACE {
-        $$ = parseContext.addSwitch($1.loc, $3, $7 ? $7->getAsAggregate() : 0);
-        delete parseContext.switchSequenceStack.back();
-        parseContext.switchSequenceStack.pop_back();
-        parseContext.switchLevel.pop_back();
-        parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
-        --parseContext.statementNestingLevel;
-        --parseContext.controlFlowNestingLevel;
-    }
-    ;
-
-switch_statement_list
-    : /* nothing */ {
-        $$ = 0;
-    }
-    | statement_list {
-        $$ = $1;
-    }
-    ;
-
-case_label
-    : CASE expression COLON {
-        $$ = 0;
-        if (parseContext.switchLevel.size() == 0)
-            parseContext.error($1.loc, "cannot appear outside switch statement", "case", "");
-        else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
-            parseContext.error($1.loc, "cannot be nested inside control flow", "case", "");
-        else {
-            parseContext.constantValueCheck($2, "case");
-            parseContext.integerCheck($2, "case");
-            $$ = parseContext.intermediate.addBranch(EOpCase, $2, $1.loc);
-        }
-    }
-    | DEFAULT COLON {
-        $$ = 0;
-        if (parseContext.switchLevel.size() == 0)
-            parseContext.error($1.loc, "cannot appear outside switch statement", "default", "");
-        else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
-            parseContext.error($1.loc, "cannot be nested inside control flow", "default", "");
-        else
-            $$ = parseContext.intermediate.addBranch(EOpDefault, $1.loc);
-    }
-    ;
-
-iteration_statement
-    : iteration_statement_nonattributed {
-        $$ = $1;
-    }
-GLSLANG_WEB_EXCLUDE_ON
-    | attribute iteration_statement_nonattributed {
-        parseContext.requireExtensions($2->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute");
-        parseContext.handleLoopAttributes(*$1, $2);
-        $$ = $2;
-    }
-GLSLANG_WEB_EXCLUDE_OFF
-
-iteration_statement_nonattributed
-    : WHILE LEFT_PAREN {
-        if (! parseContext.limits.whileLoops)
-            parseContext.error($1.loc, "while loops not available", "limitation", "");
-        parseContext.symbolTable.push();
-        ++parseContext.loopNestingLevel;
-        ++parseContext.statementNestingLevel;
-        ++parseContext.controlFlowNestingLevel;
-    }
-      condition RIGHT_PAREN statement_no_new_scope {
-        parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
-        $$ = parseContext.intermediate.addLoop($6, $4, 0, true, $1.loc);
-        --parseContext.loopNestingLevel;
-        --parseContext.statementNestingLevel;
-        --parseContext.controlFlowNestingLevel;
-    }
-    | DO {
-        parseContext.symbolTable.push();
-        ++parseContext.loopNestingLevel;
-        ++parseContext.statementNestingLevel;
-        ++parseContext.controlFlowNestingLevel;
-    }
-      statement WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON {
-        if (! parseContext.limits.whileLoops)
-            parseContext.error($1.loc, "do-while loops not available", "limitation", "");
-
-        parseContext.boolCheck($8.loc, $6);
-
-        $$ = parseContext.intermediate.addLoop($3, $6, 0, false, $4.loc);
-        parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
-        --parseContext.loopNestingLevel;
-        --parseContext.statementNestingLevel;
-        --parseContext.controlFlowNestingLevel;
-    }
-    | FOR LEFT_PAREN {
-        parseContext.symbolTable.push();
-        ++parseContext.loopNestingLevel;
-        ++parseContext.statementNestingLevel;
-        ++parseContext.controlFlowNestingLevel;
-    }
-      for_init_statement for_rest_statement RIGHT_PAREN statement_no_new_scope {
-        parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
-        $$ = parseContext.intermediate.makeAggregate($4, $2.loc);
-        TIntermLoop* forLoop = parseContext.intermediate.addLoop($7, reinterpret_cast<TIntermTyped*>($5.node1), reinterpret_cast<TIntermTyped*>($5.node2), true, $1.loc);
-        if (! parseContext.limits.nonInductiveForLoops)
-            parseContext.inductiveLoopCheck($1.loc, $4, forLoop);
-        $$ = parseContext.intermediate.growAggregate($$, forLoop, $1.loc);
-        $$->getAsAggregate()->setOperator(EOpSequence);
-        --parseContext.loopNestingLevel;
-        --parseContext.statementNestingLevel;
-        --parseContext.controlFlowNestingLevel;
-    }
-    ;
-
-for_init_statement
-    : expression_statement {
-        $$ = $1;
-    }
-    | declaration_statement {
-        $$ = $1;
-    }
-    ;
-
-conditionopt
-    : condition {
-        $$ = $1;
-    }
-    | /* May be null */ {
-        $$ = 0;
-    }
-    ;
-
-for_rest_statement
-    : conditionopt SEMICOLON {
-        $$.node1 = $1;
-        $$.node2 = 0;
-    }
-    | conditionopt SEMICOLON expression  {
-        $$.node1 = $1;
-        $$.node2 = $3;
-    }
-    ;
-
-jump_statement
-    : CONTINUE SEMICOLON {
-        if (parseContext.loopNestingLevel <= 0)
-            parseContext.error($1.loc, "continue statement only allowed in loops", "", "");
-        $$ = parseContext.intermediate.addBranch(EOpContinue, $1.loc);
-    }
-    | BREAK SEMICOLON {
-        if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0)
-            parseContext.error($1.loc, "break statement only allowed in switch and loops", "", "");
-        $$ = parseContext.intermediate.addBranch(EOpBreak, $1.loc);
-    }
-    | RETURN SEMICOLON {
-        $$ = parseContext.intermediate.addBranch(EOpReturn, $1.loc);
-        if (parseContext.currentFunctionType->getBasicType() != EbtVoid)
-            parseContext.error($1.loc, "non-void function must return a value", "return", "");
-        if (parseContext.inMain)
-            parseContext.postEntryPointReturn = true;
-    }
-    | RETURN expression SEMICOLON {
-        $$ = parseContext.handleReturnValue($1.loc, $2);
-    }
-    | DISCARD SEMICOLON {
-        parseContext.requireStage($1.loc, EShLangFragment, "discard");
-        $$ = parseContext.intermediate.addBranch(EOpKill, $1.loc);
-    }
-    | TERMINATE_INVOCATION SEMICOLON {
-        parseContext.requireStage($1.loc, EShLangFragment, "terminateInvocation");
-        $$ = parseContext.intermediate.addBranch(EOpTerminateInvocation, $1.loc);
-    }
-GLSLANG_WEB_EXCLUDE_ON
-    | TERMINATE_RAY SEMICOLON {
-        parseContext.requireStage($1.loc, EShLangAnyHit, "terminateRayEXT");
-        $$ = parseContext.intermediate.addBranch(EOpTerminateRayKHR, $1.loc);
-    }
-    | IGNORE_INTERSECTION SEMICOLON {
-        parseContext.requireStage($1.loc, EShLangAnyHit, "ignoreIntersectionEXT");
-        $$ = parseContext.intermediate.addBranch(EOpIgnoreIntersectionKHR, $1.loc);
-    }
-GLSLANG_WEB_EXCLUDE_OFF
-    ;
-
-// Grammar Note:  No 'goto'.  Gotos are not supported.
-
-translation_unit
-    : external_declaration {
-        $$ = $1;
-        parseContext.intermediate.setTreeRoot($$);
-    }
-    | translation_unit external_declaration {
-        if ($2 != nullptr) {
-            $$ = parseContext.intermediate.growAggregate($1, $2);
-            parseContext.intermediate.setTreeRoot($$);
-        }
-    }
-    ;
-
-external_declaration
-    : function_definition {
-        $$ = $1;
-    }
-    | declaration {
-        $$ = $1;
-    }
-GLSLANG_WEB_EXCLUDE_ON
-    | SEMICOLON {
-        parseContext.requireProfile($1.loc, ~EEsProfile, "extraneous semicolon");
-        parseContext.profileRequires($1.loc, ~EEsProfile, 460, nullptr, "extraneous semicolon");
-        $$ = nullptr;
-    }
-GLSLANG_WEB_EXCLUDE_OFF
-    ;
-
-function_definition
-    : function_prototype {
-        $1.function = parseContext.handleFunctionDeclarator($1.loc, *$1.function, false /* not prototype */);
-        $1.intermNode = parseContext.handleFunctionDefinition($1.loc, *$1.function);
-
-        // For ES 100 only, according to ES shading language 100 spec: A function
-        // body has a scope nested inside the function's definition.
-        if (parseContext.profile == EEsProfile && parseContext.version == 100)
-        {
-            parseContext.symbolTable.push();
-            ++parseContext.statementNestingLevel;
-        }
-    }
-    compound_statement_no_new_scope {
-        //   May be best done as post process phase on intermediate code
-        if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue)
-            parseContext.error($1.loc, "function does not return a value:", "", $1.function->getName().c_str());
-        parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
-        $$ = parseContext.intermediate.growAggregate($1.intermNode, $3);
-        parseContext.intermediate.setAggregateOperator($$, EOpFunction, $1.function->getType(), $1.loc);
-        $$->getAsAggregate()->setName($1.function->getMangledName().c_str());
-
-        // store the pragma information for debug and optimize and other vendor specific
-        // information. This information can be queried from the parse tree
-        $$->getAsAggregate()->setOptimize(parseContext.contextPragma.optimize);
-        $$->getAsAggregate()->setDebug(parseContext.contextPragma.debug);
-        $$->getAsAggregate()->setPragmaTable(parseContext.contextPragma.pragmaTable);
-
-        // Set currentFunctionType to empty pointer when goes outside of the function
-        parseContext.currentFunctionType = nullptr;
-
-        // For ES 100 only, according to ES shading language 100 spec: A function
-        // body has a scope nested inside the function's definition.
-        if (parseContext.profile == EEsProfile && parseContext.version == 100)
-        {
-            parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
-            --parseContext.statementNestingLevel;
-        }
-    }
-    ;
-
-GLSLANG_WEB_EXCLUDE_ON
-attribute
-    : LEFT_BRACKET LEFT_BRACKET attribute_list RIGHT_BRACKET RIGHT_BRACKET {
-        $$ = $3;
-    }
-
-attribute_list
-    : single_attribute {
-        $$ = $1;
-    }
-    | attribute_list COMMA single_attribute {
-        $$ = parseContext.mergeAttributes($1, $3);
-    }
-
-single_attribute
-    : IDENTIFIER {
-        $$ = parseContext.makeAttributes(*$1.string);
-    }
-    | IDENTIFIER LEFT_PAREN constant_expression RIGHT_PAREN {
-        $$ = parseContext.makeAttributes(*$1.string, $3);
-    }
-GLSLANG_WEB_EXCLUDE_OFF
-
-GLSLANG_WEB_EXCLUDE_ON
-spirv_requirements_list
-    : spirv_requirements_parameter {
-        $$ = $1;
-    }
-    | spirv_requirements_list COMMA spirv_requirements_parameter {
-        $$ = parseContext.mergeSpirvRequirements($2.loc, $1, $3);
-    }
-
-spirv_requirements_parameter
-    : IDENTIFIER EQUAL LEFT_BRACKET spirv_extension_list RIGHT_BRACKET {
-        $$ = parseContext.makeSpirvRequirement($2.loc, *$1.string, $4->getAsAggregate(), nullptr);
-    }
-    | IDENTIFIER EQUAL LEFT_BRACKET spirv_capability_list RIGHT_BRACKET {
-        $$ = parseContext.makeSpirvRequirement($2.loc, *$1.string, nullptr, $4->getAsAggregate());
-    }
-
-spirv_extension_list
-    : STRING_LITERAL {
-        $$ = parseContext.intermediate.makeAggregate(parseContext.intermediate.addConstantUnion($1.string, $1.loc, true));
-    }
-    | spirv_extension_list COMMA STRING_LITERAL {
-        $$ = parseContext.intermediate.growAggregate($1, parseContext.intermediate.addConstantUnion($3.string, $3.loc, true));
-    }
-
-spirv_capability_list
-    : INTCONSTANT {
-        $$ = parseContext.intermediate.makeAggregate(parseContext.intermediate.addConstantUnion($1.i, $1.loc, true));
-    }
-    | spirv_capability_list COMMA INTCONSTANT {
-        $$ = parseContext.intermediate.growAggregate($1, parseContext.intermediate.addConstantUnion($3.i, $3.loc, true));
-    }
-
-spirv_execution_mode_qualifier
-    : SPIRV_EXECUTION_MODE LEFT_PAREN INTCONSTANT RIGHT_PAREN {
-        parseContext.intermediate.insertSpirvExecutionMode($3.i);
-        $$ = 0;
-    }
-    | SPIRV_EXECUTION_MODE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN {
-        parseContext.intermediate.insertSpirvRequirement($3);
-        parseContext.intermediate.insertSpirvExecutionMode($5.i);
-        $$ = 0;
-    }
-    | SPIRV_EXECUTION_MODE LEFT_PAREN INTCONSTANT COMMA spirv_execution_mode_parameter_list RIGHT_PAREN {
-        parseContext.intermediate.insertSpirvExecutionMode($3.i, $5->getAsAggregate());
-        $$ = 0;
-    }
-    | SPIRV_EXECUTION_MODE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_execution_mode_parameter_list RIGHT_PAREN {
-        parseContext.intermediate.insertSpirvRequirement($3);
-        parseContext.intermediate.insertSpirvExecutionMode($5.i, $7->getAsAggregate());
-        $$ = 0;
-    }
-    | SPIRV_EXECUTION_MODE_ID LEFT_PAREN INTCONSTANT COMMA spirv_execution_mode_id_parameter_list RIGHT_PAREN {
-        parseContext.intermediate.insertSpirvExecutionModeId($3.i, $5->getAsAggregate());
-        $$ = 0;
-    }
-    | SPIRV_EXECUTION_MODE_ID LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_execution_mode_id_parameter_list RIGHT_PAREN {
-        parseContext.intermediate.insertSpirvRequirement($3);
-        parseContext.intermediate.insertSpirvExecutionModeId($5.i, $7->getAsAggregate());
-        $$ = 0;
-    }
-
-spirv_execution_mode_parameter_list
-    : spirv_execution_mode_parameter {
-        $$ = parseContext.intermediate.makeAggregate($1);
-    }
-    | spirv_execution_mode_parameter_list COMMA spirv_execution_mode_parameter {
-        $$ = parseContext.intermediate.growAggregate($1, $3);
-    }
-
-spirv_execution_mode_parameter
-    : FLOATCONSTANT {
-        $$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat, $1.loc, true);
-    }
-    | INTCONSTANT {
-        $$ = parseContext.intermediate.addConstantUnion($1.i, $1.loc, true);
-    }
-    | UINTCONSTANT {
-        $$ = parseContext.intermediate.addConstantUnion($1.u, $1.loc, true);
-    }
-    | BOOLCONSTANT {
-        $$ = parseContext.intermediate.addConstantUnion($1.b, $1.loc, true);
-    }
-    | STRING_LITERAL {
-        $$ = parseContext.intermediate.addConstantUnion($1.string, $1.loc, true);
-    }
-
-spirv_execution_mode_id_parameter_list
-    : constant_expression {
-        if ($1->getBasicType() != EbtFloat &&
-            $1->getBasicType() != EbtInt &&
-            $1->getBasicType() != EbtUint &&
-            $1->getBasicType() != EbtBool &&
-            $1->getBasicType() != EbtString)
-            parseContext.error($1->getLoc(), "this type not allowed", $1->getType().getBasicString(), "");
-        $$ = parseContext.intermediate.makeAggregate($1);
-    }
-    | spirv_execution_mode_id_parameter_list COMMA constant_expression {
-        if ($3->getBasicType() != EbtFloat &&
-            $3->getBasicType() != EbtInt &&
-            $3->getBasicType() != EbtUint &&
-            $3->getBasicType() != EbtBool &&
-            $3->getBasicType() != EbtString)
-            parseContext.error($3->getLoc(), "this type not allowed", $3->getType().getBasicString(), "");
-        $$ = parseContext.intermediate.growAggregate($1, $3);
-    }
-
-spirv_storage_class_qualifier
-    : SPIRV_STORAGE_CLASS LEFT_PAREN INTCONSTANT RIGHT_PAREN {
-        $$.init($1.loc);
-        $$.qualifier.storage = EvqSpirvStorageClass;
-        $$.qualifier.spirvStorageClass = $3.i;
-    }
-    | SPIRV_STORAGE_CLASS LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN {
-        $$.init($1.loc);
-        parseContext.intermediate.insertSpirvRequirement($3);
-        $$.qualifier.storage = EvqSpirvStorageClass;
-        $$.qualifier.spirvStorageClass = $5.i;
-    }
-
-spirv_decorate_qualifier
-    : SPIRV_DECORATE LEFT_PAREN INTCONSTANT RIGHT_PAREN{
-        $$.init($1.loc);
-        $$.qualifier.setSpirvDecorate($3.i);
-    }
-    | SPIRV_DECORATE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN{
-        $$.init($1.loc);
-        parseContext.intermediate.insertSpirvRequirement($3);
-        $$.qualifier.setSpirvDecorate($5.i);
-    }
-    | SPIRV_DECORATE LEFT_PAREN INTCONSTANT COMMA spirv_decorate_parameter_list RIGHT_PAREN {
-        $$.init($1.loc);
-        $$.qualifier.setSpirvDecorate($3.i, $5->getAsAggregate());
-    }
-    | SPIRV_DECORATE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_parameter_list RIGHT_PAREN {
-        $$.init($1.loc);
-        parseContext.intermediate.insertSpirvRequirement($3);
-        $$.qualifier.setSpirvDecorate($5.i, $7->getAsAggregate());
-    }
-    | SPIRV_DECORATE_ID LEFT_PAREN INTCONSTANT COMMA spirv_decorate_id_parameter_list RIGHT_PAREN {
-        $$.init($1.loc);
-        $$.qualifier.setSpirvDecorateId($3.i, $5->getAsAggregate());
-    }
-    | SPIRV_DECORATE_ID LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_id_parameter_list RIGHT_PAREN {
-        $$.init($1.loc);
-        parseContext.intermediate.insertSpirvRequirement($3);
-        $$.qualifier.setSpirvDecorateId($5.i, $7->getAsAggregate());
-    }
-    | SPIRV_DECORATE_STRING LEFT_PAREN INTCONSTANT COMMA spirv_decorate_string_parameter_list RIGHT_PAREN {
-        $$.init($1.loc);
-        $$.qualifier.setSpirvDecorateString($3.i, $5->getAsAggregate());
-    }
-    | SPIRV_DECORATE_STRING LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_string_parameter_list RIGHT_PAREN {
-        $$.init($1.loc);
-        parseContext.intermediate.insertSpirvRequirement($3);
-        $$.qualifier.setSpirvDecorateString($5.i, $7->getAsAggregate());
-    }
-
-spirv_decorate_parameter_list
-    : spirv_decorate_parameter {
-        $$ = parseContext.intermediate.makeAggregate($1);
-    }
-    | spirv_decorate_parameter_list COMMA spirv_decorate_parameter {
-        $$ = parseContext.intermediate.growAggregate($1, $3);
-    }
-
-spirv_decorate_parameter
-    : FLOATCONSTANT {
-        $$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat, $1.loc, true);
-    }
-    | INTCONSTANT {
-        $$ = parseContext.intermediate.addConstantUnion($1.i, $1.loc, true);
-    }
-    | UINTCONSTANT {
-        $$ = parseContext.intermediate.addConstantUnion($1.u, $1.loc, true);
-    }
-    | BOOLCONSTANT {
-        $$ = parseContext.intermediate.addConstantUnion($1.b, $1.loc, true);
-    }
-
-spirv_decorate_id_parameter_list
-    : spirv_decorate_id_parameter {
-        $$ = parseContext.intermediate.makeAggregate($1);
-    }
-    | spirv_decorate_id_parameter_list COMMA spirv_decorate_id_parameter {
-        $$ = parseContext.intermediate.growAggregate($1, $3);
-    }
-
-spirv_decorate_id_parameter
-    : variable_identifier {
-        if ($1->getAsConstantUnion() || $1->getAsSymbolNode())
-            $$ = $1;
-        else
-            parseContext.error($1->getLoc(), "only allow constants or variables which are not elements of a composite", "", "");
-    }
-    | FLOATCONSTANT {
-        $$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat, $1.loc, true);
-    }
-    | INTCONSTANT {
-        $$ = parseContext.intermediate.addConstantUnion($1.i, $1.loc, true);
-    }
-    | UINTCONSTANT {
-        $$ = parseContext.intermediate.addConstantUnion($1.u, $1.loc, true);
-    }
-    | BOOLCONSTANT {
-        $$ = parseContext.intermediate.addConstantUnion($1.b, $1.loc, true);
-    }
-
-spirv_decorate_string_parameter_list
-    : STRING_LITERAL {
-        $$ = parseContext.intermediate.makeAggregate(
-            parseContext.intermediate.addConstantUnion($1.string, $1.loc, true));
-    }
-    | spirv_decorate_string_parameter_list COMMA STRING_LITERAL {
-        $$ = parseContext.intermediate.growAggregate($1, parseContext.intermediate.addConstantUnion($3.string, $3.loc, true));
-    }
-
-spirv_type_specifier
-    : SPIRV_TYPE LEFT_PAREN spirv_instruction_qualifier_list COMMA spirv_type_parameter_list RIGHT_PAREN {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.setSpirvType(*$3, $5);
-    }
-    | SPIRV_TYPE LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list COMMA spirv_type_parameter_list RIGHT_PAREN {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        parseContext.intermediate.insertSpirvRequirement($3);
-        $$.setSpirvType(*$5, $7);
-    }
-    | SPIRV_TYPE LEFT_PAREN spirv_instruction_qualifier_list RIGHT_PAREN {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        $$.setSpirvType(*$3);
-    }
-    | SPIRV_TYPE LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list RIGHT_PAREN {
-        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-        parseContext.intermediate.insertSpirvRequirement($3);
-        $$.setSpirvType(*$5);
-    }
-
-spirv_type_parameter_list
-    : spirv_type_parameter {
-        $$ = $1;
-    }
-    | spirv_type_parameter_list COMMA spirv_type_parameter {
-        $$ = parseContext.mergeSpirvTypeParameters($1, $3);
-    }
-
-spirv_type_parameter
-    : constant_expression {
-        $$ = parseContext.makeSpirvTypeParameters($1->getLoc(), $1->getAsConstantUnion());
-    }
-    | type_specifier_nonarray {
-        $$ = parseContext.makeSpirvTypeParameters($1.loc, $1);
-    }
-
-spirv_instruction_qualifier
-    : SPIRV_INSTRUCTION LEFT_PAREN spirv_instruction_qualifier_list RIGHT_PAREN {
-        $$ = $3;
-    }
-    | SPIRV_INSTRUCTION LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list RIGHT_PAREN {
-        parseContext.intermediate.insertSpirvRequirement($3);
-        $$ = $5;
-    }
-
-spirv_instruction_qualifier_list
-    : spirv_instruction_qualifier_id {
-        $$ = $1;
-    }
-    | spirv_instruction_qualifier_list COMMA spirv_instruction_qualifier_id {
-        $$ = parseContext.mergeSpirvInstruction($2.loc, $1, $3);
-    }
-
-spirv_instruction_qualifier_id
-    : IDENTIFIER EQUAL STRING_LITERAL {
-        $$ = parseContext.makeSpirvInstruction($2.loc, *$1.string, *$3.string);
-    }
-    | IDENTIFIER EQUAL INTCONSTANT {
-        $$ = parseContext.makeSpirvInstruction($2.loc, *$1.string, $3.i);
-    }
-GLSLANG_WEB_EXCLUDE_OFF
-
-%%
diff --git a/glslang/MachineIndependent/glslang.y b/glslang/MachineIndependent/glslang.y
index 4ab39f1..999dec0 100644
--- a/glslang/MachineIndependent/glslang.y
+++ b/glslang/MachineIndependent/glslang.y
@@ -37,31 +37,6 @@
 // POSSIBILITY OF SUCH DAMAGE.
 //
 
-//
-// Do not edit the .y file, only edit the .m4 file.
-// The .y bison file is not a source file, it is a derivative of the .m4 file.
-// The m4 file needs to be processed by m4 to generate the .y bison file.
-//
-// Code sandwiched between a pair:
-//
-//    GLSLANG_WEB_EXCLUDE_ON
-//      ...
-//      ...
-//      ...
-//    GLSLANG_WEB_EXCLUDE_OFF
-//
-// Will be excluded from the grammar when m4 is executed as:
-//
-//    m4 -P -DGLSLANG_WEB
-//
-// It will be included when m4 is executed as:
-//
-//    m4 -P
-//
-
-
-
-
 /**
  * This is bison grammar and productions for parsing all versions of the
  * GLSL shading languages.
@@ -129,19 +104,12 @@
             glslang::TArraySizes* arraySizes;
             glslang::TIdentifierList* identifierList;
         };
-        glslang::TArraySizes* typeParameters;
+        glslang::TTypeParameters* typeParameters;
     } interm;
 }
 
 %{
 
-/* windows only pragma */
-#ifdef _MSC_VER
-    #pragma warning(disable : 4065)
-    #pragma warning(disable : 4127)
-    #pragma warning(disable : 4244)
-#endif
-
 #define parseContext (*pParseContext)
 #define yyerror(context, msg) context->parserError(msg)
 
@@ -177,8 +145,6 @@
 %token <lex> ITEXTURE2D ITEXTURE3D ITEXTURECUBE ITEXTURE2DARRAY
 %token <lex> UTEXTURE2D UTEXTURE3D UTEXTURECUBE UTEXTURE2DARRAY
 
-
-
 %token <lex> ATTRIBUTE VARYING
 %token <lex> FLOAT16_T FLOAT32_T DOUBLE FLOAT64_T
 %token <lex> INT64_T UINT64_T INT32_T UINT32_T INT16_T UINT16_T INT8_T UINT8_T
@@ -211,6 +177,7 @@
 %token <lex> ACCSTRUCTEXT
 %token <lex> RAYQUERYEXT
 %token <lex> FCOOPMATNV ICOOPMATNV UCOOPMATNV
+%token <lex> COOPMAT
 %token <lex> HITOBJECTNV HITOBJECTATTRNV
 
 // combined image/sampler
@@ -281,8 +248,6 @@
 %token <lex> SPIRV_TYPE SPIRV_STORAGE_CLASS SPIRV_BY_REFERENCE SPIRV_LITERAL
 %token <lex> ATTACHMENTEXT IATTACHMENTEXT UATTACHMENTEXT
 
-
-
 %token <lex> LEFT_OP RIGHT_OP
 %token <lex> INC_OP DEC_OP LE_OP GE_OP EQ_OP NE_OP
 %token <lex> AND_OP OR_OP XOR_OP MUL_ASSIGN DIV_ASSIGN ADD_ASSIGN
@@ -308,7 +273,6 @@
 %token <lex> UNIFORM SHARED BUFFER TILEIMAGEEXT
 %token <lex> FLAT SMOOTH LAYOUT
 
-
 %token <lex> DOUBLECONSTANT INT16CONSTANT UINT16CONSTANT FLOAT16CONSTANT INT32CONSTANT UINT32CONSTANT
 %token <lex> INT64CONSTANT UINT64CONSTANT
 %token <lex> SUBROUTINE DEMOTE
@@ -320,7 +284,6 @@
 %token <lex> NOPERSPECTIVE EXPLICITINTERPAMD PERVERTEXEXT PERVERTEXNV PERPRIMITIVENV PERVIEWNV PERTASKNV PERPRIMITIVEEXT TASKPAYLOADWORKGROUPEXT
 %token <lex> PRECISE
 
-
 %type <interm> assignment_operator unary_operator
 %type <interm.intermTypedNode> variable_identifier primary_expression postfix_expression
 %type <interm.intermTypedNode> expression integer_expression assignment_expression
@@ -366,7 +329,6 @@
 
 %type <interm.identifierList> identifier_list
 
-
 %type <interm.type> precise_qualifier non_uniform_qualifier
 %type <interm.typeList> type_name_list
 %type <interm.attributes> attribute attribute_list single_attribute
@@ -386,7 +348,6 @@
 %type <interm.spirvInst> spirv_instruction_qualifier
 %type <interm.spirvInst> spirv_instruction_qualifier_list spirv_instruction_qualifier_id
 
-
 %start translation_unit
 %%
 
@@ -418,7 +379,6 @@
     | BOOLCONSTANT {
         $$ = parseContext.intermediate.addConstantUnion($1.b, $1.loc, true);
     }
-
     | STRING_LITERAL {
         $$ = parseContext.intermediate.addConstantUnion($1.string, $1.loc, true);
     }
@@ -456,7 +416,6 @@
         parseContext.float16Check($1.loc, "half float literal");
         $$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat16, $1.loc, true);
     }
-
     ;
 
 postfix_expression
@@ -526,18 +485,41 @@
 
 function_call_header_with_parameters
     : function_call_header assignment_expression {
-        TParameter param = { 0, new TType };
-        param.type->shallowCopy($2->getType());
-        $1.function->addParameter(param);
-        $$.function = $1.function;
-        $$.intermNode = $2;
+        if (parseContext.spvVersion.vulkan > 0
+            && parseContext.spvVersion.vulkanRelaxed
+            && $2->getType().containsOpaque())
+        {
+            $$.intermNode = parseContext.vkRelaxedRemapFunctionArgument($$.loc, $1.function, $2);
+            $$.function = $1.function;
+        }
+        else
+        {
+            TParameter param = { 0, new TType };
+            param.type->shallowCopy($2->getType());
+
+            $1.function->addParameter(param);
+            $$.function = $1.function;
+            $$.intermNode = $2;
+        }
     }
     | function_call_header_with_parameters COMMA assignment_expression {
-        TParameter param = { 0, new TType };
-        param.type->shallowCopy($3->getType());
-        $1.function->addParameter(param);
-        $$.function = $1.function;
-        $$.intermNode = parseContext.intermediate.growAggregate($1.intermNode, $3, $2.loc);
+        if (parseContext.spvVersion.vulkan > 0
+            && parseContext.spvVersion.vulkanRelaxed
+            && $3->getType().containsOpaque())
+        {
+            TIntermNode* remappedNode = parseContext.vkRelaxedRemapFunctionArgument($2.loc, $1.function, $3);
+            $$.intermNode = parseContext.intermediate.mergeAggregate($1.intermNode, remappedNode, $2.loc);
+            $$.function = $1.function;
+        }
+        else
+        {
+            TParameter param = { 0, new TType };
+            param.type->shallowCopy($3->getType());
+
+            $1.function->addParameter(param);
+            $$.function = $1.function;
+            $$.intermNode = parseContext.intermediate.growAggregate($1.intermNode, $3, $2.loc);
+        }
     }
     ;
 
@@ -582,13 +564,11 @@
             $$.function = new TFunction(empty, TType(EbtVoid), EOpNull);
         }
     }
-
     | non_uniform_qualifier {
         // Constructor
         $$.intermNode = 0;
         $$.function = parseContext.handleConstructorCall($1.loc, $1);
     }
-
     ;
 
 unary_expression
@@ -898,7 +878,6 @@
         $$ = 0;
         // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature
     }
-
     | spirv_instruction_qualifier function_prototype SEMICOLON {
         parseContext.requireExtensions($2.loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V instruction qualifier");
         $2.function->setSpirvInstruction(*$1); // Attach SPIR-V intruction qualifier
@@ -911,7 +890,6 @@
         parseContext.requireExtensions($2.loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V execution mode qualifier");
         $$ = 0;
     }
-
     | init_declarator_list SEMICOLON {
         if ($1.intermNode && $1.intermNode->getAsAggregate())
             $1.intermNode->getAsAggregate()->setOperator(EOpSequence);
@@ -979,24 +957,31 @@
 function_prototype
     : function_declarator RIGHT_PAREN  {
         $$.function = $1;
+        if (parseContext.compileOnly) $$.function->setExport();
         $$.loc = $2.loc;
     }
     | function_declarator RIGHT_PAREN attribute {
         $$.function = $1;
+        if (parseContext.compileOnly) $$.function->setExport();
         $$.loc = $2.loc;
-        parseContext.requireExtensions($2.loc, 1, &E_GL_EXT_subgroup_uniform_control_flow, "attribute");
+        const char * extensions[2] = { E_GL_EXT_subgroup_uniform_control_flow, E_GL_EXT_maximal_reconvergence };
+        parseContext.requireExtensions($2.loc, 2, extensions, "attribute");
         parseContext.handleFunctionAttributes($2.loc, *$3);
     }
     | attribute function_declarator RIGHT_PAREN {
         $$.function = $2;
+        if (parseContext.compileOnly) $$.function->setExport();
         $$.loc = $3.loc;
-        parseContext.requireExtensions($3.loc, 1, &E_GL_EXT_subgroup_uniform_control_flow, "attribute");
+        const char * extensions[2] = { E_GL_EXT_subgroup_uniform_control_flow, E_GL_EXT_maximal_reconvergence };
+        parseContext.requireExtensions($3.loc, 2, extensions, "attribute");
         parseContext.handleFunctionAttributes($3.loc, *$1);
     }
     | attribute function_declarator RIGHT_PAREN attribute {
         $$.function = $2;
+        if (parseContext.compileOnly) $$.function->setExport();
         $$.loc = $3.loc;
-        parseContext.requireExtensions($3.loc, 1, &E_GL_EXT_subgroup_uniform_control_flow, "attribute");
+        const char * extensions[2] = { E_GL_EXT_subgroup_uniform_control_flow, E_GL_EXT_maximal_reconvergence };
+        parseContext.requireExtensions($3.loc, 2, extensions, "attribute");
         parseContext.handleFunctionAttributes($3.loc, *$1);
         parseContext.handleFunctionAttributes($3.loc, *$4);
     }
@@ -1017,7 +1002,12 @@
         // Add the parameter
         $$ = $1;
         if ($2.param.type->getBasicType() != EbtVoid)
-            $1->addParameter($2.param);
+        {
+            if (!(parseContext.spvVersion.vulkan > 0 && parseContext.spvVersion.vulkanRelaxed))
+                $1->addParameter($2.param);
+            else
+                parseContext.vkRelaxedRemapFunctionParameter($1, $2.param);
+        }
         else
             delete $2.param.type;
     }
@@ -1035,7 +1025,10 @@
         } else {
             // Add the parameter
             $$ = $1;
-            $1->addParameter($3.param);
+            if (!(parseContext.spvVersion.vulkan > 0 && parseContext.spvVersion.vulkanRelaxed))
+                $1->addParameter($3.param);
+            else
+                parseContext.vkRelaxedRemapFunctionParameter($1, $3.param);
         }
     }
     ;
@@ -1108,7 +1101,7 @@
         $$ = $2;
         if ($1.qualifier.precision != EpqNone)
             $$.param.type->getQualifier().precision = $1.qualifier.precision;
-        parseContext.precisionQualifierCheck($$.loc, $$.param.type->getBasicType(), $$.param.type->getQualifier());
+        parseContext.precisionQualifierCheck($$.loc, $$.param.type->getBasicType(), $$.param.type->getQualifier(), $$.param.type->isCoopMat());
 
         parseContext.checkNoShaderLayouts($1.loc, $1.shaderQualifiers);
         parseContext.parameterTypeCheck($2.loc, $1.qualifier.storage, *$$.param.type);
@@ -1120,7 +1113,7 @@
 
         parseContext.parameterTypeCheck($1.loc, EvqIn, *$1.param.type);
         parseContext.paramCheckFixStorage($1.loc, EvqTemporary, *$$.param.type);
-        parseContext.precisionQualifierCheck($$.loc, $$.param.type->getBasicType(), $$.param.type->getQualifier());
+        parseContext.precisionQualifierCheck($$.loc, $$.param.type->getBasicType(), $$.param.type->getQualifier(), $$.param.type->isCoopMat());
     }
     //
     // Without name
@@ -1129,7 +1122,7 @@
         $$ = $2;
         if ($1.qualifier.precision != EpqNone)
             $$.param.type->getQualifier().precision = $1.qualifier.precision;
-        parseContext.precisionQualifierCheck($1.loc, $$.param.type->getBasicType(), $$.param.type->getQualifier());
+        parseContext.precisionQualifierCheck($1.loc, $$.param.type->getBasicType(), $$.param.type->getQualifier(), $$.param.type->isCoopMat());
 
         parseContext.checkNoShaderLayouts($1.loc, $1.shaderQualifiers);
         parseContext.parameterTypeCheck($2.loc, $1.qualifier.storage, *$$.param.type);
@@ -1140,7 +1133,7 @@
 
         parseContext.parameterTypeCheck($1.loc, EvqIn, *$1.param.type);
         parseContext.paramCheckFixStorage($1.loc, EvqTemporary, *$$.param.type);
-        parseContext.precisionQualifierCheck($$.loc, $$.param.type->getBasicType(), $$.param.type->getQualifier());
+        parseContext.precisionQualifierCheck($$.loc, $$.param.type->getBasicType(), $$.param.type->getQualifier(), $$.param.type->isCoopMat());
     }
     ;
 
@@ -1181,9 +1174,7 @@
     : fully_specified_type {
         $$.type = $1;
         $$.intermNode = 0;
-
         parseContext.declareTypeDefaults($$.loc, $$.type);
-
     }
     | fully_specified_type IDENTIFIER {
         $$.type = $1;
@@ -1217,7 +1208,7 @@
             parseContext.profileRequires($1.loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
             parseContext.profileRequires($1.loc, EEsProfile, 300, 0, "arrayed type");
         }
-        parseContext.precisionQualifierCheck($$.loc, $$.basicType, $$.qualifier);
+        parseContext.precisionQualifierCheck($$.loc, $$.basicType, $$.qualifier, $$.isCoopmat());
     }
     | type_qualifier type_specifier  {
         parseContext.globalQualifierFixCheck($1.loc, $1.qualifier, false, &$2);
@@ -1234,7 +1225,7 @@
         parseContext.checkNoShaderLayouts($2.loc, $1.shaderQualifiers);
         $2.shaderQualifiers.merge($1.shaderQualifiers);
         parseContext.mergeQualifiers($2.loc, $2.qualifier, $1.qualifier, true);
-        parseContext.precisionQualifierCheck($2.loc, $2.basicType, $2.qualifier);
+        parseContext.precisionQualifierCheck($2.loc, $2.basicType, $2.qualifier, $2.isCoopmat());
 
         $$ = $2;
 
@@ -1269,7 +1260,6 @@
         $$.init($1.loc);
         $$.qualifier.flat = true;
     }
-
     | NOPERSPECTIVE {
         parseContext.globalCheck($1.loc, "noperspective");
         parseContext.profileRequires($1.loc, EEsProfile, 0, E_GL_NV_shader_noperspective_interpolation, "noperspective");
@@ -1334,7 +1324,6 @@
         $$.init($1.loc);
         $$.qualifier.perTaskNV = true;
     }
-
     ;
 
 layout_qualifier
@@ -1369,7 +1358,6 @@
     }
     ;
 
-
 precise_qualifier
     : PRECISE {
         parseContext.profileRequires($$.loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise");
@@ -1379,7 +1367,6 @@
     }
     ;
 
-
 type_qualifier
     : single_type_qualifier {
         $$ = $1;
@@ -1413,7 +1400,6 @@
         // allow inheritance of storage qualifier from block declaration
         $$ = $1;
     }
-
     | precise_qualifier {
         // allow inheritance of storage qualifier from block declaration
         $$ = $1;
@@ -1440,7 +1426,6 @@
         $$.init($1.loc);
         $$.qualifier.setSpirvLiteral();
     }
-
     ;
 
 storage_qualifier
@@ -1495,7 +1480,6 @@
         $$.init($1.loc);
         $$.qualifier.storage = EvqBuffer;
     }
-
     | ATTRIBUTE {
         parseContext.requireStage($1.loc, EShLangVertex, "attribute");
         parseContext.checkDeprecated($1.loc, ECoreProfile, 130, "attribute");
@@ -1688,10 +1672,8 @@
         $$.init($1.loc);
         $$.qualifier.storage = EvqtaskPayloadSharedEXT;
     }
-
     ;
 
-
 non_uniform_qualifier
     : NONUNIFORM {
         $$.init($1.loc);
@@ -1710,12 +1692,13 @@
     }
     ;
 
-
 type_specifier
     : type_specifier_nonarray type_parameter_specifier_opt {
         $$ = $1;
         $$.qualifier.precision = parseContext.getDefaultPrecision($$);
         $$.typeParameters = $2;
+        parseContext.coopMatTypeParametersCheck($1.loc, $$);
+
     }
     | type_specifier_nonarray type_parameter_specifier_opt array_specifier {
         parseContext.arrayOfArrayVersionCheck($3.loc, $3.arraySizes);
@@ -1723,6 +1706,7 @@
         $$.qualifier.precision = parseContext.getDefaultPrecision($$);
         $$.typeParameters = $2;
         $$.arraySizes = $3.arraySizes;
+        parseContext.coopMatTypeParametersCheck($1.loc, $$);
     }
     ;
 
@@ -1769,19 +1753,25 @@
     ;
 
 type_parameter_specifier_list
-    : unary_expression {
-        $$ = new TArraySizes;
+    : type_specifier {
+        $$ = new TTypeParameters;
+        $$->arraySizes = new TArraySizes;
+        $$->basicType = $1.basicType;
+    }
+    | unary_expression {
+        $$ = new TTypeParameters;
+        $$->arraySizes = new TArraySizes;
 
         TArraySize size;
-        parseContext.arraySizeCheck($1->getLoc(), $1, size, "type parameter");
-        $$->addInnerSize(size);
+        parseContext.arraySizeCheck($1->getLoc(), $1, size, "type parameter", true);
+        $$->arraySizes->addInnerSize(size);
     }
     | type_parameter_specifier_list COMMA unary_expression {
         $$ = $1;
 
         TArraySize size;
-        parseContext.arraySizeCheck($3->getLoc(), $3, size, "type parameter");
-        $$->addInnerSize(size);
+        parseContext.arraySizeCheck($3->getLoc(), $3, size, "type parameter", true);
+        $$->arraySizes->addInnerSize(size);
     }
     ;
 
@@ -1930,7 +1920,6 @@
         $$.basicType = EbtFloat;
         $$.setMatrix(4, 4);
     }
-
     | DOUBLE {
         parseContext.requireProfile($1.loc, ECoreProfile | ECompatibilityProfile, "double");
         if (! parseContext.symbolTable.atBuiltInLevel())
@@ -2549,7 +2538,6 @@
         $$.basicType = EbtSampler;
         $$.sampler.set(EbtFloat, Esd1D);
     }
-
     | SAMPLER2D {
         $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
         $$.basicType = EbtSampler;
@@ -2585,7 +2573,6 @@
         $$.basicType = EbtSampler;
         $$.sampler.set(EbtFloat, Esd2D, true, true);
     }
-
     | SAMPLER1DSHADOW {
         $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
         $$.basicType = EbtSampler;
@@ -2694,7 +2681,6 @@
         $$.basicType = EbtSampler;
         $$.sampler.set(EbtInt, Esd1D);
     }
-
     | ISAMPLER2D {
         $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
         $$.basicType = EbtSampler;
@@ -2730,7 +2716,6 @@
         $$.basicType = EbtSampler;
         $$.sampler.set(EbtUint, EsdCube);
     }
-
     | ISAMPLER1DARRAY {
         $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
         $$.basicType = EbtSampler;
@@ -2771,7 +2756,6 @@
         $$.basicType = EbtSampler;
         $$.sampler.setTexture(EbtUint, EsdCube, true);
     }
-
     | USAMPLER2DARRAY {
         $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
         $$.basicType = EbtSampler;
@@ -2847,7 +2831,6 @@
         $$.basicType = EbtSampler;
         $$.sampler.setPureSampler(true);
     }
-
     | SAMPLER2DRECT {
         $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
         $$.basicType = EbtSampler;
@@ -3521,22 +3504,32 @@
         $$.sampler.setSubpass(EbtUint, true);
     }
     | FCOOPMATNV {
-        parseContext.fcoopmatCheck($1.loc, "fcoopmatNV", parseContext.symbolTable.atBuiltInLevel());
+        parseContext.fcoopmatCheckNV($1.loc, "fcoopmatNV", parseContext.symbolTable.atBuiltInLevel());
         $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
         $$.basicType = EbtFloat;
-        $$.coopmat = true;
+        $$.coopmatNV = true;
+        $$.coopmatKHR = false;
     }
     | ICOOPMATNV {
-        parseContext.intcoopmatCheck($1.loc, "icoopmatNV", parseContext.symbolTable.atBuiltInLevel());
+        parseContext.intcoopmatCheckNV($1.loc, "icoopmatNV", parseContext.symbolTable.atBuiltInLevel());
         $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
         $$.basicType = EbtInt;
-        $$.coopmat = true;
+        $$.coopmatNV = true;
+        $$.coopmatKHR = false;
     }
     | UCOOPMATNV {
-        parseContext.intcoopmatCheck($1.loc, "ucoopmatNV", parseContext.symbolTable.atBuiltInLevel());
+        parseContext.intcoopmatCheckNV($1.loc, "ucoopmatNV", parseContext.symbolTable.atBuiltInLevel());
         $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
         $$.basicType = EbtUint;
-        $$.coopmat = true;
+        $$.coopmatNV = true;
+        $$.coopmatKHR = false;
+    }
+    | COOPMAT {
+        parseContext.coopmatCheck($1.loc, "coopmat", parseContext.symbolTable.atBuiltInLevel());
+        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
+        $$.basicType = EbtCoopmat;
+        $$.coopmatNV = false;
+        $$.coopmatKHR = true;
     }
     | spirv_type_specifier {
         parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V type specifier");
@@ -3546,7 +3539,6 @@
        $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
        $$.basicType = EbtHitObjectNV;
 	}
-
     | struct_specifier {
         $$ = $1;
         $$.qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
@@ -3587,11 +3579,17 @@
 
 struct_specifier
     : STRUCT IDENTIFIER LEFT_BRACE { parseContext.nestedStructCheck($1.loc); } struct_declaration_list RIGHT_BRACE {
+
         TType* structure = new TType($5, *$2.string);
         parseContext.structArrayCheck($2.loc, *structure);
+
         TVariable* userTypeDef = new TVariable($2.string, *structure, true);
         if (! parseContext.symbolTable.insert(*userTypeDef))
             parseContext.error($2.loc, "redefinition", $2.string->c_str(), "struct");
+        else if (parseContext.spvVersion.vulkanRelaxed
+                 && structure->containsOpaque())
+            parseContext.relaxedSymbols.push_back(structure->getTypeName());
+
         $$.init($1.loc);
         $$.basicType = EbtStruct;
         $$.userDef = structure;
@@ -3634,7 +3632,7 @@
         $$ = $2;
 
         parseContext.voidErrorCheck($1.loc, (*$2)[0].type->getFieldName(), $1.basicType);
-        parseContext.precisionQualifierCheck($1.loc, $1.basicType, $1.qualifier);
+        parseContext.precisionQualifierCheck($1.loc, $1.basicType, $1.qualifier, $1.isCoopmat());
 
         for (unsigned int i = 0; i < $$->size(); ++i) {
             TType type($1);
@@ -3658,7 +3656,7 @@
         parseContext.memberQualifierCheck($1);
         parseContext.voidErrorCheck($2.loc, (*$3)[0].type->getFieldName(), $2.basicType);
         parseContext.mergeQualifiers($2.loc, $2.qualifier, $1.qualifier, true);
-        parseContext.precisionQualifierCheck($2.loc, $2.basicType, $2.qualifier);
+        parseContext.precisionQualifierCheck($2.loc, $2.basicType, $2.qualifier, $2.isCoopmat());
 
         for (unsigned int i = 0; i < $$->size(); ++i) {
             TType type($2);
@@ -3701,7 +3699,6 @@
     : assignment_expression {
         $$ = $1;
     }
-
     | LEFT_BRACE initializer_list RIGHT_BRACE {
         const char* initFeature = "{ } style initializers";
         parseContext.requireProfile($1.loc, ~EEsProfile, initFeature);
@@ -3720,10 +3717,8 @@
         parseContext.profileRequires($1.loc, ~EEsProfile, 0, E_GL_EXT_null_initializer, initFeature);
         $$ = parseContext.intermediate.makeAggregate($1.loc);
     }
-
     ;
 
-
 initializer_list
     : initializer {
         $$ = parseContext.intermediate.growAggregate(0, $1, $1->getLoc());
@@ -3733,7 +3728,6 @@
     }
     ;
 
-
 declaration_statement
     : declaration { $$ = $1; }
     ;
@@ -3753,12 +3747,9 @@
     | case_label            { $$ = $1; }
     | iteration_statement   { $$ = $1; }
     | jump_statement        { $$ = $1; }
-
     | demote_statement      { $$ = $1; }
-
     ;
 
-
 demote_statement
     : DEMOTE SEMICOLON {
         parseContext.requireStage($1.loc, EShLangFragment, "demote");
@@ -3767,7 +3758,6 @@
     }
     ;
 
-
 compound_statement
     : LEFT_BRACE RIGHT_BRACE { $$ = 0; }
     | LEFT_BRACE {
@@ -3850,14 +3840,12 @@
     : selection_statement_nonattributed {
         $$ = $1;
     }
-
     | attribute selection_statement_nonattributed {
         parseContext.requireExtensions($2->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute");
         parseContext.handleSelectionAttributes(*$1, $2);
         $$ = $2;
     }
 
-
 selection_statement_nonattributed
     : IF LEFT_PAREN expression RIGHT_PAREN selection_rest_statement {
         parseContext.boolCheck($1.loc, $3);
@@ -3898,14 +3886,12 @@
     : switch_statement_nonattributed {
         $$ = $1;
     }
-
     | attribute switch_statement_nonattributed {
         parseContext.requireExtensions($2->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute");
         parseContext.handleSwitchAttributes(*$1, $2);
         $$ = $2;
     }
 
-
 switch_statement_nonattributed
     : SWITCH LEFT_PAREN expression RIGHT_PAREN {
         // start new switch sequence on the switch stack
@@ -3963,14 +3949,12 @@
     : iteration_statement_nonattributed {
         $$ = $1;
     }
-
     | attribute iteration_statement_nonattributed {
         parseContext.requireExtensions($2->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute");
         parseContext.handleLoopAttributes(*$1, $2);
         $$ = $2;
     }
 
-
 iteration_statement_nonattributed
     : WHILE LEFT_PAREN {
         if (! parseContext.limits.whileLoops)
@@ -4083,7 +4067,6 @@
         parseContext.requireStage($1.loc, EShLangFragment, "terminateInvocation");
         $$ = parseContext.intermediate.addBranch(EOpTerminateInvocation, $1.loc);
     }
-
     | TERMINATE_RAY SEMICOLON {
         parseContext.requireStage($1.loc, EShLangAnyHit, "terminateRayEXT");
         $$ = parseContext.intermediate.addBranch(EOpTerminateRayKHR, $1.loc);
@@ -4092,7 +4075,6 @@
         parseContext.requireStage($1.loc, EShLangAnyHit, "ignoreIntersectionEXT");
         $$ = parseContext.intermediate.addBranch(EOpIgnoreIntersectionKHR, $1.loc);
     }
-
     ;
 
 // Grammar Note:  No 'goto'.  Gotos are not supported.
@@ -4117,13 +4099,11 @@
     | declaration {
         $$ = $1;
     }
-
     | SEMICOLON {
         parseContext.requireProfile($1.loc, ~EEsProfile, "extraneous semicolon");
         parseContext.profileRequires($1.loc, ~EEsProfile, 460, nullptr, "extraneous semicolon");
         $$ = nullptr;
     }
-
     ;
 
 function_definition
@@ -4145,6 +4125,7 @@
             parseContext.error($1.loc, "function does not return a value:", "", $1.function->getName().c_str());
         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
         $$ = parseContext.intermediate.growAggregate($1.intermNode, $3);
+        $$->getAsAggregate()->setLinkType($1.function->getLinkType());
         parseContext.intermediate.setAggregateOperator($$, EOpFunction, $1.function->getType(), $1.loc);
         $$->getAsAggregate()->setName($1.function->getMangledName().c_str());
 
@@ -4167,7 +4148,6 @@
     }
     ;
 
-
 attribute
     : LEFT_BRACKET LEFT_BRACKET attribute_list RIGHT_BRACKET RIGHT_BRACKET {
         $$ = $3;
@@ -4189,8 +4169,6 @@
         $$ = parseContext.makeAttributes(*$1.string, $3);
     }
 
-
-
 spirv_requirements_list
     : spirv_requirements_parameter {
         $$ = $1;
@@ -4468,5 +4446,4 @@
         $$ = parseContext.makeSpirvInstruction($2.loc, *$1.string, $3.i);
     }
 
-
 %%
diff --git a/glslang/MachineIndependent/glslang_tab.cpp b/glslang/MachineIndependent/glslang_tab.cpp
index cee8a63..cdc0c17 100644
--- a/glslang/MachineIndependent/glslang_tab.cpp
+++ b/glslang/MachineIndependent/glslang_tab.cpp
@@ -1,8 +1,8 @@
-/* A Bison parser, made by GNU Bison 3.7.4.  */
+/* A Bison parser, made by GNU Bison 3.8.2.  */
 
 /* Bison implementation for Yacc-like parsers in C
 
-   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
+   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
@@ -16,7 +16,7 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
 
 /* As a special exception, you may create a larger work that contains
    part or all of the Bison parser skeleton and distribute that work
@@ -46,10 +46,10 @@
    USER NAME SPACE" below.  */
 
 /* Identify Bison output, and Bison version.  */
-#define YYBISON 30704
+#define YYBISON 30802
 
 /* Bison version string.  */
-#define YYBISON_VERSION "3.7.4"
+#define YYBISON_VERSION "3.8.2"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
@@ -67,7 +67,7 @@
 
 
 /* First part of user prologue.  */
-#line 69 "MachineIndependent/glslang.y"
+#line 44 "MachineIndependent/glslang.y"
 
 
 /* Based on:
@@ -287,458 +287,452 @@
   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_ATTACHMENTEXT = 329,            /* ATTACHMENTEXT  */
-  YYSYMBOL_IATTACHMENTEXT = 330,           /* IATTACHMENTEXT  */
-  YYSYMBOL_UATTACHMENTEXT = 331,           /* UATTACHMENTEXT  */
-  YYSYMBOL_LEFT_OP = 332,                  /* LEFT_OP  */
-  YYSYMBOL_RIGHT_OP = 333,                 /* RIGHT_OP  */
-  YYSYMBOL_INC_OP = 334,                   /* INC_OP  */
-  YYSYMBOL_DEC_OP = 335,                   /* DEC_OP  */
-  YYSYMBOL_LE_OP = 336,                    /* LE_OP  */
-  YYSYMBOL_GE_OP = 337,                    /* GE_OP  */
-  YYSYMBOL_EQ_OP = 338,                    /* EQ_OP  */
-  YYSYMBOL_NE_OP = 339,                    /* NE_OP  */
-  YYSYMBOL_AND_OP = 340,                   /* AND_OP  */
-  YYSYMBOL_OR_OP = 341,                    /* OR_OP  */
-  YYSYMBOL_XOR_OP = 342,                   /* XOR_OP  */
-  YYSYMBOL_MUL_ASSIGN = 343,               /* MUL_ASSIGN  */
-  YYSYMBOL_DIV_ASSIGN = 344,               /* DIV_ASSIGN  */
-  YYSYMBOL_ADD_ASSIGN = 345,               /* ADD_ASSIGN  */
-  YYSYMBOL_MOD_ASSIGN = 346,               /* MOD_ASSIGN  */
-  YYSYMBOL_LEFT_ASSIGN = 347,              /* LEFT_ASSIGN  */
-  YYSYMBOL_RIGHT_ASSIGN = 348,             /* RIGHT_ASSIGN  */
-  YYSYMBOL_AND_ASSIGN = 349,               /* AND_ASSIGN  */
-  YYSYMBOL_XOR_ASSIGN = 350,               /* XOR_ASSIGN  */
-  YYSYMBOL_OR_ASSIGN = 351,                /* OR_ASSIGN  */
-  YYSYMBOL_SUB_ASSIGN = 352,               /* SUB_ASSIGN  */
-  YYSYMBOL_STRING_LITERAL = 353,           /* STRING_LITERAL  */
-  YYSYMBOL_LEFT_PAREN = 354,               /* LEFT_PAREN  */
-  YYSYMBOL_RIGHT_PAREN = 355,              /* RIGHT_PAREN  */
-  YYSYMBOL_LEFT_BRACKET = 356,             /* LEFT_BRACKET  */
-  YYSYMBOL_RIGHT_BRACKET = 357,            /* RIGHT_BRACKET  */
-  YYSYMBOL_LEFT_BRACE = 358,               /* LEFT_BRACE  */
-  YYSYMBOL_RIGHT_BRACE = 359,              /* RIGHT_BRACE  */
-  YYSYMBOL_DOT = 360,                      /* DOT  */
-  YYSYMBOL_COMMA = 361,                    /* COMMA  */
-  YYSYMBOL_COLON = 362,                    /* COLON  */
-  YYSYMBOL_EQUAL = 363,                    /* EQUAL  */
-  YYSYMBOL_SEMICOLON = 364,                /* SEMICOLON  */
-  YYSYMBOL_BANG = 365,                     /* BANG  */
-  YYSYMBOL_DASH = 366,                     /* DASH  */
-  YYSYMBOL_TILDE = 367,                    /* TILDE  */
-  YYSYMBOL_PLUS = 368,                     /* PLUS  */
-  YYSYMBOL_STAR = 369,                     /* STAR  */
-  YYSYMBOL_SLASH = 370,                    /* SLASH  */
-  YYSYMBOL_PERCENT = 371,                  /* PERCENT  */
-  YYSYMBOL_LEFT_ANGLE = 372,               /* LEFT_ANGLE  */
-  YYSYMBOL_RIGHT_ANGLE = 373,              /* RIGHT_ANGLE  */
-  YYSYMBOL_VERTICAL_BAR = 374,             /* VERTICAL_BAR  */
-  YYSYMBOL_CARET = 375,                    /* CARET  */
-  YYSYMBOL_AMPERSAND = 376,                /* AMPERSAND  */
-  YYSYMBOL_QUESTION = 377,                 /* QUESTION  */
-  YYSYMBOL_INVARIANT = 378,                /* INVARIANT  */
-  YYSYMBOL_HIGH_PRECISION = 379,           /* HIGH_PRECISION  */
-  YYSYMBOL_MEDIUM_PRECISION = 380,         /* MEDIUM_PRECISION  */
-  YYSYMBOL_LOW_PRECISION = 381,            /* LOW_PRECISION  */
-  YYSYMBOL_PRECISION = 382,                /* PRECISION  */
-  YYSYMBOL_PACKED = 383,                   /* PACKED  */
-  YYSYMBOL_RESOURCE = 384,                 /* RESOURCE  */
-  YYSYMBOL_SUPERP = 385,                   /* SUPERP  */
-  YYSYMBOL_FLOATCONSTANT = 386,            /* FLOATCONSTANT  */
-  YYSYMBOL_INTCONSTANT = 387,              /* INTCONSTANT  */
-  YYSYMBOL_UINTCONSTANT = 388,             /* UINTCONSTANT  */
-  YYSYMBOL_BOOLCONSTANT = 389,             /* BOOLCONSTANT  */
-  YYSYMBOL_IDENTIFIER = 390,               /* IDENTIFIER  */
-  YYSYMBOL_TYPE_NAME = 391,                /* TYPE_NAME  */
-  YYSYMBOL_CENTROID = 392,                 /* CENTROID  */
-  YYSYMBOL_IN = 393,                       /* IN  */
-  YYSYMBOL_OUT = 394,                      /* OUT  */
-  YYSYMBOL_INOUT = 395,                    /* INOUT  */
-  YYSYMBOL_STRUCT = 396,                   /* STRUCT  */
-  YYSYMBOL_VOID = 397,                     /* VOID  */
-  YYSYMBOL_WHILE = 398,                    /* WHILE  */
-  YYSYMBOL_BREAK = 399,                    /* BREAK  */
-  YYSYMBOL_CONTINUE = 400,                 /* CONTINUE  */
-  YYSYMBOL_DO = 401,                       /* DO  */
-  YYSYMBOL_ELSE = 402,                     /* ELSE  */
-  YYSYMBOL_FOR = 403,                      /* FOR  */
-  YYSYMBOL_IF = 404,                       /* IF  */
-  YYSYMBOL_DISCARD = 405,                  /* DISCARD  */
-  YYSYMBOL_RETURN = 406,                   /* RETURN  */
-  YYSYMBOL_SWITCH = 407,                   /* SWITCH  */
-  YYSYMBOL_CASE = 408,                     /* CASE  */
-  YYSYMBOL_DEFAULT = 409,                  /* DEFAULT  */
-  YYSYMBOL_TERMINATE_INVOCATION = 410,     /* TERMINATE_INVOCATION  */
-  YYSYMBOL_TERMINATE_RAY = 411,            /* TERMINATE_RAY  */
-  YYSYMBOL_IGNORE_INTERSECTION = 412,      /* IGNORE_INTERSECTION  */
-  YYSYMBOL_UNIFORM = 413,                  /* UNIFORM  */
-  YYSYMBOL_SHARED = 414,                   /* SHARED  */
-  YYSYMBOL_BUFFER = 415,                   /* BUFFER  */
-  YYSYMBOL_TILEIMAGEEXT = 416,             /* TILEIMAGEEXT  */
-  YYSYMBOL_FLAT = 417,                     /* FLAT  */
-  YYSYMBOL_SMOOTH = 418,                   /* SMOOTH  */
-  YYSYMBOL_LAYOUT = 419,                   /* LAYOUT  */
-  YYSYMBOL_DOUBLECONSTANT = 420,           /* DOUBLECONSTANT  */
-  YYSYMBOL_INT16CONSTANT = 421,            /* INT16CONSTANT  */
-  YYSYMBOL_UINT16CONSTANT = 422,           /* UINT16CONSTANT  */
-  YYSYMBOL_FLOAT16CONSTANT = 423,          /* FLOAT16CONSTANT  */
-  YYSYMBOL_INT32CONSTANT = 424,            /* INT32CONSTANT  */
-  YYSYMBOL_UINT32CONSTANT = 425,           /* UINT32CONSTANT  */
-  YYSYMBOL_INT64CONSTANT = 426,            /* INT64CONSTANT  */
-  YYSYMBOL_UINT64CONSTANT = 427,           /* UINT64CONSTANT  */
-  YYSYMBOL_SUBROUTINE = 428,               /* SUBROUTINE  */
-  YYSYMBOL_DEMOTE = 429,                   /* DEMOTE  */
-  YYSYMBOL_PAYLOADNV = 430,                /* PAYLOADNV  */
-  YYSYMBOL_PAYLOADINNV = 431,              /* PAYLOADINNV  */
-  YYSYMBOL_HITATTRNV = 432,                /* HITATTRNV  */
-  YYSYMBOL_CALLDATANV = 433,               /* CALLDATANV  */
-  YYSYMBOL_CALLDATAINNV = 434,             /* CALLDATAINNV  */
-  YYSYMBOL_PAYLOADEXT = 435,               /* PAYLOADEXT  */
-  YYSYMBOL_PAYLOADINEXT = 436,             /* PAYLOADINEXT  */
-  YYSYMBOL_HITATTREXT = 437,               /* HITATTREXT  */
-  YYSYMBOL_CALLDATAEXT = 438,              /* CALLDATAEXT  */
-  YYSYMBOL_CALLDATAINEXT = 439,            /* CALLDATAINEXT  */
-  YYSYMBOL_PATCH = 440,                    /* PATCH  */
-  YYSYMBOL_SAMPLE = 441,                   /* SAMPLE  */
-  YYSYMBOL_NONUNIFORM = 442,               /* NONUNIFORM  */
-  YYSYMBOL_COHERENT = 443,                 /* COHERENT  */
-  YYSYMBOL_VOLATILE = 444,                 /* VOLATILE  */
-  YYSYMBOL_RESTRICT = 445,                 /* RESTRICT  */
-  YYSYMBOL_READONLY = 446,                 /* READONLY  */
-  YYSYMBOL_WRITEONLY = 447,                /* WRITEONLY  */
-  YYSYMBOL_DEVICECOHERENT = 448,           /* DEVICECOHERENT  */
-  YYSYMBOL_QUEUEFAMILYCOHERENT = 449,      /* QUEUEFAMILYCOHERENT  */
-  YYSYMBOL_WORKGROUPCOHERENT = 450,        /* WORKGROUPCOHERENT  */
-  YYSYMBOL_SUBGROUPCOHERENT = 451,         /* SUBGROUPCOHERENT  */
-  YYSYMBOL_NONPRIVATE = 452,               /* NONPRIVATE  */
-  YYSYMBOL_SHADERCALLCOHERENT = 453,       /* SHADERCALLCOHERENT  */
-  YYSYMBOL_NOPERSPECTIVE = 454,            /* NOPERSPECTIVE  */
-  YYSYMBOL_EXPLICITINTERPAMD = 455,        /* EXPLICITINTERPAMD  */
-  YYSYMBOL_PERVERTEXEXT = 456,             /* PERVERTEXEXT  */
-  YYSYMBOL_PERVERTEXNV = 457,              /* PERVERTEXNV  */
-  YYSYMBOL_PERPRIMITIVENV = 458,           /* PERPRIMITIVENV  */
-  YYSYMBOL_PERVIEWNV = 459,                /* PERVIEWNV  */
-  YYSYMBOL_PERTASKNV = 460,                /* PERTASKNV  */
-  YYSYMBOL_PERPRIMITIVEEXT = 461,          /* PERPRIMITIVEEXT  */
-  YYSYMBOL_TASKPAYLOADWORKGROUPEXT = 462,  /* TASKPAYLOADWORKGROUPEXT  */
-  YYSYMBOL_PRECISE = 463,                  /* PRECISE  */
-  YYSYMBOL_YYACCEPT = 464,                 /* $accept  */
-  YYSYMBOL_variable_identifier = 465,      /* variable_identifier  */
-  YYSYMBOL_primary_expression = 466,       /* primary_expression  */
-  YYSYMBOL_postfix_expression = 467,       /* postfix_expression  */
-  YYSYMBOL_integer_expression = 468,       /* integer_expression  */
-  YYSYMBOL_function_call = 469,            /* function_call  */
-  YYSYMBOL_function_call_or_method = 470,  /* function_call_or_method  */
-  YYSYMBOL_function_call_generic = 471,    /* function_call_generic  */
-  YYSYMBOL_function_call_header_no_parameters = 472, /* function_call_header_no_parameters  */
-  YYSYMBOL_function_call_header_with_parameters = 473, /* function_call_header_with_parameters  */
-  YYSYMBOL_function_call_header = 474,     /* function_call_header  */
-  YYSYMBOL_function_identifier = 475,      /* function_identifier  */
-  YYSYMBOL_unary_expression = 476,         /* unary_expression  */
-  YYSYMBOL_unary_operator = 477,           /* unary_operator  */
-  YYSYMBOL_multiplicative_expression = 478, /* multiplicative_expression  */
-  YYSYMBOL_additive_expression = 479,      /* additive_expression  */
-  YYSYMBOL_shift_expression = 480,         /* shift_expression  */
-  YYSYMBOL_relational_expression = 481,    /* relational_expression  */
-  YYSYMBOL_equality_expression = 482,      /* equality_expression  */
-  YYSYMBOL_and_expression = 483,           /* and_expression  */
-  YYSYMBOL_exclusive_or_expression = 484,  /* exclusive_or_expression  */
-  YYSYMBOL_inclusive_or_expression = 485,  /* inclusive_or_expression  */
-  YYSYMBOL_logical_and_expression = 486,   /* logical_and_expression  */
-  YYSYMBOL_logical_xor_expression = 487,   /* logical_xor_expression  */
-  YYSYMBOL_logical_or_expression = 488,    /* logical_or_expression  */
-  YYSYMBOL_conditional_expression = 489,   /* conditional_expression  */
-  YYSYMBOL_490_1 = 490,                    /* $@1  */
-  YYSYMBOL_assignment_expression = 491,    /* assignment_expression  */
-  YYSYMBOL_assignment_operator = 492,      /* assignment_operator  */
-  YYSYMBOL_expression = 493,               /* expression  */
-  YYSYMBOL_constant_expression = 494,      /* constant_expression  */
-  YYSYMBOL_declaration = 495,              /* declaration  */
-  YYSYMBOL_block_structure = 496,          /* block_structure  */
-  YYSYMBOL_497_2 = 497,                    /* $@2  */
-  YYSYMBOL_identifier_list = 498,          /* identifier_list  */
-  YYSYMBOL_function_prototype = 499,       /* function_prototype  */
-  YYSYMBOL_function_declarator = 500,      /* function_declarator  */
-  YYSYMBOL_function_header_with_parameters = 501, /* function_header_with_parameters  */
-  YYSYMBOL_function_header = 502,          /* function_header  */
-  YYSYMBOL_parameter_declarator = 503,     /* parameter_declarator  */
-  YYSYMBOL_parameter_declaration = 504,    /* parameter_declaration  */
-  YYSYMBOL_parameter_type_specifier = 505, /* parameter_type_specifier  */
-  YYSYMBOL_init_declarator_list = 506,     /* init_declarator_list  */
-  YYSYMBOL_single_declaration = 507,       /* single_declaration  */
-  YYSYMBOL_fully_specified_type = 508,     /* fully_specified_type  */
-  YYSYMBOL_invariant_qualifier = 509,      /* invariant_qualifier  */
-  YYSYMBOL_interpolation_qualifier = 510,  /* interpolation_qualifier  */
-  YYSYMBOL_layout_qualifier = 511,         /* layout_qualifier  */
-  YYSYMBOL_layout_qualifier_id_list = 512, /* layout_qualifier_id_list  */
-  YYSYMBOL_layout_qualifier_id = 513,      /* layout_qualifier_id  */
-  YYSYMBOL_precise_qualifier = 514,        /* precise_qualifier  */
-  YYSYMBOL_type_qualifier = 515,           /* type_qualifier  */
-  YYSYMBOL_single_type_qualifier = 516,    /* single_type_qualifier  */
-  YYSYMBOL_storage_qualifier = 517,        /* storage_qualifier  */
-  YYSYMBOL_non_uniform_qualifier = 518,    /* non_uniform_qualifier  */
-  YYSYMBOL_type_name_list = 519,           /* type_name_list  */
-  YYSYMBOL_type_specifier = 520,           /* type_specifier  */
-  YYSYMBOL_array_specifier = 521,          /* array_specifier  */
-  YYSYMBOL_type_parameter_specifier_opt = 522, /* type_parameter_specifier_opt  */
-  YYSYMBOL_type_parameter_specifier = 523, /* type_parameter_specifier  */
-  YYSYMBOL_type_parameter_specifier_list = 524, /* type_parameter_specifier_list  */
-  YYSYMBOL_type_specifier_nonarray = 525,  /* type_specifier_nonarray  */
-  YYSYMBOL_precision_qualifier = 526,      /* precision_qualifier  */
-  YYSYMBOL_struct_specifier = 527,         /* struct_specifier  */
-  YYSYMBOL_528_3 = 528,                    /* $@3  */
-  YYSYMBOL_529_4 = 529,                    /* $@4  */
-  YYSYMBOL_struct_declaration_list = 530,  /* struct_declaration_list  */
-  YYSYMBOL_struct_declaration = 531,       /* struct_declaration  */
-  YYSYMBOL_struct_declarator_list = 532,   /* struct_declarator_list  */
-  YYSYMBOL_struct_declarator = 533,        /* struct_declarator  */
-  YYSYMBOL_initializer = 534,              /* initializer  */
-  YYSYMBOL_initializer_list = 535,         /* initializer_list  */
-  YYSYMBOL_declaration_statement = 536,    /* declaration_statement  */
-  YYSYMBOL_statement = 537,                /* statement  */
-  YYSYMBOL_simple_statement = 538,         /* simple_statement  */
-  YYSYMBOL_demote_statement = 539,         /* demote_statement  */
-  YYSYMBOL_compound_statement = 540,       /* compound_statement  */
-  YYSYMBOL_541_5 = 541,                    /* $@5  */
-  YYSYMBOL_542_6 = 542,                    /* $@6  */
-  YYSYMBOL_statement_no_new_scope = 543,   /* statement_no_new_scope  */
-  YYSYMBOL_statement_scoped = 544,         /* statement_scoped  */
-  YYSYMBOL_545_7 = 545,                    /* $@7  */
-  YYSYMBOL_546_8 = 546,                    /* $@8  */
-  YYSYMBOL_compound_statement_no_new_scope = 547, /* compound_statement_no_new_scope  */
-  YYSYMBOL_statement_list = 548,           /* statement_list  */
-  YYSYMBOL_expression_statement = 549,     /* expression_statement  */
-  YYSYMBOL_selection_statement = 550,      /* selection_statement  */
-  YYSYMBOL_selection_statement_nonattributed = 551, /* selection_statement_nonattributed  */
-  YYSYMBOL_selection_rest_statement = 552, /* selection_rest_statement  */
-  YYSYMBOL_condition = 553,                /* condition  */
-  YYSYMBOL_switch_statement = 554,         /* switch_statement  */
-  YYSYMBOL_switch_statement_nonattributed = 555, /* switch_statement_nonattributed  */
-  YYSYMBOL_556_9 = 556,                    /* $@9  */
-  YYSYMBOL_switch_statement_list = 557,    /* switch_statement_list  */
-  YYSYMBOL_case_label = 558,               /* case_label  */
-  YYSYMBOL_iteration_statement = 559,      /* iteration_statement  */
-  YYSYMBOL_iteration_statement_nonattributed = 560, /* iteration_statement_nonattributed  */
-  YYSYMBOL_561_10 = 561,                   /* $@10  */
-  YYSYMBOL_562_11 = 562,                   /* $@11  */
-  YYSYMBOL_563_12 = 563,                   /* $@12  */
-  YYSYMBOL_for_init_statement = 564,       /* for_init_statement  */
-  YYSYMBOL_conditionopt = 565,             /* conditionopt  */
-  YYSYMBOL_for_rest_statement = 566,       /* for_rest_statement  */
-  YYSYMBOL_jump_statement = 567,           /* jump_statement  */
-  YYSYMBOL_translation_unit = 568,         /* translation_unit  */
-  YYSYMBOL_external_declaration = 569,     /* external_declaration  */
-  YYSYMBOL_function_definition = 570,      /* function_definition  */
-  YYSYMBOL_571_13 = 571,                   /* $@13  */
-  YYSYMBOL_attribute = 572,                /* attribute  */
-  YYSYMBOL_attribute_list = 573,           /* attribute_list  */
-  YYSYMBOL_single_attribute = 574,         /* single_attribute  */
-  YYSYMBOL_spirv_requirements_list = 575,  /* spirv_requirements_list  */
-  YYSYMBOL_spirv_requirements_parameter = 576, /* spirv_requirements_parameter  */
-  YYSYMBOL_spirv_extension_list = 577,     /* spirv_extension_list  */
-  YYSYMBOL_spirv_capability_list = 578,    /* spirv_capability_list  */
-  YYSYMBOL_spirv_execution_mode_qualifier = 579, /* spirv_execution_mode_qualifier  */
-  YYSYMBOL_spirv_execution_mode_parameter_list = 580, /* spirv_execution_mode_parameter_list  */
-  YYSYMBOL_spirv_execution_mode_parameter = 581, /* spirv_execution_mode_parameter  */
-  YYSYMBOL_spirv_execution_mode_id_parameter_list = 582, /* spirv_execution_mode_id_parameter_list  */
-  YYSYMBOL_spirv_storage_class_qualifier = 583, /* spirv_storage_class_qualifier  */
-  YYSYMBOL_spirv_decorate_qualifier = 584, /* spirv_decorate_qualifier  */
-  YYSYMBOL_spirv_decorate_parameter_list = 585, /* spirv_decorate_parameter_list  */
-  YYSYMBOL_spirv_decorate_parameter = 586, /* spirv_decorate_parameter  */
-  YYSYMBOL_spirv_decorate_id_parameter_list = 587, /* spirv_decorate_id_parameter_list  */
-  YYSYMBOL_spirv_decorate_id_parameter = 588, /* spirv_decorate_id_parameter  */
-  YYSYMBOL_spirv_decorate_string_parameter_list = 589, /* spirv_decorate_string_parameter_list  */
-  YYSYMBOL_spirv_type_specifier = 590,     /* spirv_type_specifier  */
-  YYSYMBOL_spirv_type_parameter_list = 591, /* spirv_type_parameter_list  */
-  YYSYMBOL_spirv_type_parameter = 592,     /* spirv_type_parameter  */
-  YYSYMBOL_spirv_instruction_qualifier = 593, /* spirv_instruction_qualifier  */
-  YYSYMBOL_spirv_instruction_qualifier_list = 594, /* spirv_instruction_qualifier_list  */
-  YYSYMBOL_spirv_instruction_qualifier_id = 595 /* spirv_instruction_qualifier_id  */
+  YYSYMBOL_COOPMAT = 166,                  /* COOPMAT  */
+  YYSYMBOL_HITOBJECTNV = 167,              /* HITOBJECTNV  */
+  YYSYMBOL_HITOBJECTATTRNV = 168,          /* HITOBJECTATTRNV  */
+  YYSYMBOL_SAMPLERCUBEARRAY = 169,         /* SAMPLERCUBEARRAY  */
+  YYSYMBOL_SAMPLERCUBEARRAYSHADOW = 170,   /* SAMPLERCUBEARRAYSHADOW  */
+  YYSYMBOL_ISAMPLERCUBEARRAY = 171,        /* ISAMPLERCUBEARRAY  */
+  YYSYMBOL_USAMPLERCUBEARRAY = 172,        /* USAMPLERCUBEARRAY  */
+  YYSYMBOL_SAMPLER1D = 173,                /* SAMPLER1D  */
+  YYSYMBOL_SAMPLER1DARRAY = 174,           /* SAMPLER1DARRAY  */
+  YYSYMBOL_SAMPLER1DARRAYSHADOW = 175,     /* SAMPLER1DARRAYSHADOW  */
+  YYSYMBOL_ISAMPLER1D = 176,               /* ISAMPLER1D  */
+  YYSYMBOL_SAMPLER1DSHADOW = 177,          /* SAMPLER1DSHADOW  */
+  YYSYMBOL_SAMPLER2DRECT = 178,            /* SAMPLER2DRECT  */
+  YYSYMBOL_SAMPLER2DRECTSHADOW = 179,      /* SAMPLER2DRECTSHADOW  */
+  YYSYMBOL_ISAMPLER2DRECT = 180,           /* ISAMPLER2DRECT  */
+  YYSYMBOL_USAMPLER2DRECT = 181,           /* USAMPLER2DRECT  */
+  YYSYMBOL_SAMPLERBUFFER = 182,            /* SAMPLERBUFFER  */
+  YYSYMBOL_ISAMPLERBUFFER = 183,           /* ISAMPLERBUFFER  */
+  YYSYMBOL_USAMPLERBUFFER = 184,           /* USAMPLERBUFFER  */
+  YYSYMBOL_SAMPLER2DMS = 185,              /* SAMPLER2DMS  */
+  YYSYMBOL_ISAMPLER2DMS = 186,             /* ISAMPLER2DMS  */
+  YYSYMBOL_USAMPLER2DMS = 187,             /* USAMPLER2DMS  */
+  YYSYMBOL_SAMPLER2DMSARRAY = 188,         /* SAMPLER2DMSARRAY  */
+  YYSYMBOL_ISAMPLER2DMSARRAY = 189,        /* ISAMPLER2DMSARRAY  */
+  YYSYMBOL_USAMPLER2DMSARRAY = 190,        /* USAMPLER2DMSARRAY  */
+  YYSYMBOL_SAMPLEREXTERNALOES = 191,       /* SAMPLEREXTERNALOES  */
+  YYSYMBOL_SAMPLEREXTERNAL2DY2YEXT = 192,  /* SAMPLEREXTERNAL2DY2YEXT  */
+  YYSYMBOL_ISAMPLER1DARRAY = 193,          /* ISAMPLER1DARRAY  */
+  YYSYMBOL_USAMPLER1D = 194,               /* USAMPLER1D  */
+  YYSYMBOL_USAMPLER1DARRAY = 195,          /* USAMPLER1DARRAY  */
+  YYSYMBOL_F16SAMPLER1D = 196,             /* F16SAMPLER1D  */
+  YYSYMBOL_F16SAMPLER2D = 197,             /* F16SAMPLER2D  */
+  YYSYMBOL_F16SAMPLER3D = 198,             /* F16SAMPLER3D  */
+  YYSYMBOL_F16SAMPLER2DRECT = 199,         /* F16SAMPLER2DRECT  */
+  YYSYMBOL_F16SAMPLERCUBE = 200,           /* F16SAMPLERCUBE  */
+  YYSYMBOL_F16SAMPLER1DARRAY = 201,        /* F16SAMPLER1DARRAY  */
+  YYSYMBOL_F16SAMPLER2DARRAY = 202,        /* F16SAMPLER2DARRAY  */
+  YYSYMBOL_F16SAMPLERCUBEARRAY = 203,      /* F16SAMPLERCUBEARRAY  */
+  YYSYMBOL_F16SAMPLERBUFFER = 204,         /* F16SAMPLERBUFFER  */
+  YYSYMBOL_F16SAMPLER2DMS = 205,           /* F16SAMPLER2DMS  */
+  YYSYMBOL_F16SAMPLER2DMSARRAY = 206,      /* F16SAMPLER2DMSARRAY  */
+  YYSYMBOL_F16SAMPLER1DSHADOW = 207,       /* F16SAMPLER1DSHADOW  */
+  YYSYMBOL_F16SAMPLER2DSHADOW = 208,       /* F16SAMPLER2DSHADOW  */
+  YYSYMBOL_F16SAMPLER1DARRAYSHADOW = 209,  /* F16SAMPLER1DARRAYSHADOW  */
+  YYSYMBOL_F16SAMPLER2DARRAYSHADOW = 210,  /* F16SAMPLER2DARRAYSHADOW  */
+  YYSYMBOL_F16SAMPLER2DRECTSHADOW = 211,   /* F16SAMPLER2DRECTSHADOW  */
+  YYSYMBOL_F16SAMPLERCUBESHADOW = 212,     /* F16SAMPLERCUBESHADOW  */
+  YYSYMBOL_F16SAMPLERCUBEARRAYSHADOW = 213, /* F16SAMPLERCUBEARRAYSHADOW  */
+  YYSYMBOL_IMAGE1D = 214,                  /* IMAGE1D  */
+  YYSYMBOL_IIMAGE1D = 215,                 /* IIMAGE1D  */
+  YYSYMBOL_UIMAGE1D = 216,                 /* UIMAGE1D  */
+  YYSYMBOL_IMAGE2D = 217,                  /* IMAGE2D  */
+  YYSYMBOL_IIMAGE2D = 218,                 /* IIMAGE2D  */
+  YYSYMBOL_UIMAGE2D = 219,                 /* UIMAGE2D  */
+  YYSYMBOL_IMAGE3D = 220,                  /* IMAGE3D  */
+  YYSYMBOL_IIMAGE3D = 221,                 /* IIMAGE3D  */
+  YYSYMBOL_UIMAGE3D = 222,                 /* UIMAGE3D  */
+  YYSYMBOL_IMAGE2DRECT = 223,              /* IMAGE2DRECT  */
+  YYSYMBOL_IIMAGE2DRECT = 224,             /* IIMAGE2DRECT  */
+  YYSYMBOL_UIMAGE2DRECT = 225,             /* UIMAGE2DRECT  */
+  YYSYMBOL_IMAGECUBE = 226,                /* IMAGECUBE  */
+  YYSYMBOL_IIMAGECUBE = 227,               /* IIMAGECUBE  */
+  YYSYMBOL_UIMAGECUBE = 228,               /* UIMAGECUBE  */
+  YYSYMBOL_IMAGEBUFFER = 229,              /* IMAGEBUFFER  */
+  YYSYMBOL_IIMAGEBUFFER = 230,             /* IIMAGEBUFFER  */
+  YYSYMBOL_UIMAGEBUFFER = 231,             /* UIMAGEBUFFER  */
+  YYSYMBOL_IMAGE1DARRAY = 232,             /* IMAGE1DARRAY  */
+  YYSYMBOL_IIMAGE1DARRAY = 233,            /* IIMAGE1DARRAY  */
+  YYSYMBOL_UIMAGE1DARRAY = 234,            /* UIMAGE1DARRAY  */
+  YYSYMBOL_IMAGE2DARRAY = 235,             /* IMAGE2DARRAY  */
+  YYSYMBOL_IIMAGE2DARRAY = 236,            /* IIMAGE2DARRAY  */
+  YYSYMBOL_UIMAGE2DARRAY = 237,            /* UIMAGE2DARRAY  */
+  YYSYMBOL_IMAGECUBEARRAY = 238,           /* IMAGECUBEARRAY  */
+  YYSYMBOL_IIMAGECUBEARRAY = 239,          /* IIMAGECUBEARRAY  */
+  YYSYMBOL_UIMAGECUBEARRAY = 240,          /* UIMAGECUBEARRAY  */
+  YYSYMBOL_IMAGE2DMS = 241,                /* IMAGE2DMS  */
+  YYSYMBOL_IIMAGE2DMS = 242,               /* IIMAGE2DMS  */
+  YYSYMBOL_UIMAGE2DMS = 243,               /* UIMAGE2DMS  */
+  YYSYMBOL_IMAGE2DMSARRAY = 244,           /* IMAGE2DMSARRAY  */
+  YYSYMBOL_IIMAGE2DMSARRAY = 245,          /* IIMAGE2DMSARRAY  */
+  YYSYMBOL_UIMAGE2DMSARRAY = 246,          /* UIMAGE2DMSARRAY  */
+  YYSYMBOL_F16IMAGE1D = 247,               /* F16IMAGE1D  */
+  YYSYMBOL_F16IMAGE2D = 248,               /* F16IMAGE2D  */
+  YYSYMBOL_F16IMAGE3D = 249,               /* F16IMAGE3D  */
+  YYSYMBOL_F16IMAGE2DRECT = 250,           /* F16IMAGE2DRECT  */
+  YYSYMBOL_F16IMAGECUBE = 251,             /* F16IMAGECUBE  */
+  YYSYMBOL_F16IMAGE1DARRAY = 252,          /* F16IMAGE1DARRAY  */
+  YYSYMBOL_F16IMAGE2DARRAY = 253,          /* F16IMAGE2DARRAY  */
+  YYSYMBOL_F16IMAGECUBEARRAY = 254,        /* F16IMAGECUBEARRAY  */
+  YYSYMBOL_F16IMAGEBUFFER = 255,           /* F16IMAGEBUFFER  */
+  YYSYMBOL_F16IMAGE2DMS = 256,             /* F16IMAGE2DMS  */
+  YYSYMBOL_F16IMAGE2DMSARRAY = 257,        /* F16IMAGE2DMSARRAY  */
+  YYSYMBOL_I64IMAGE1D = 258,               /* I64IMAGE1D  */
+  YYSYMBOL_U64IMAGE1D = 259,               /* U64IMAGE1D  */
+  YYSYMBOL_I64IMAGE2D = 260,               /* I64IMAGE2D  */
+  YYSYMBOL_U64IMAGE2D = 261,               /* U64IMAGE2D  */
+  YYSYMBOL_I64IMAGE3D = 262,               /* I64IMAGE3D  */
+  YYSYMBOL_U64IMAGE3D = 263,               /* U64IMAGE3D  */
+  YYSYMBOL_I64IMAGE2DRECT = 264,           /* I64IMAGE2DRECT  */
+  YYSYMBOL_U64IMAGE2DRECT = 265,           /* U64IMAGE2DRECT  */
+  YYSYMBOL_I64IMAGECUBE = 266,             /* I64IMAGECUBE  */
+  YYSYMBOL_U64IMAGECUBE = 267,             /* U64IMAGECUBE  */
+  YYSYMBOL_I64IMAGEBUFFER = 268,           /* I64IMAGEBUFFER  */
+  YYSYMBOL_U64IMAGEBUFFER = 269,           /* U64IMAGEBUFFER  */
+  YYSYMBOL_I64IMAGE1DARRAY = 270,          /* I64IMAGE1DARRAY  */
+  YYSYMBOL_U64IMAGE1DARRAY = 271,          /* U64IMAGE1DARRAY  */
+  YYSYMBOL_I64IMAGE2DARRAY = 272,          /* I64IMAGE2DARRAY  */
+  YYSYMBOL_U64IMAGE2DARRAY = 273,          /* U64IMAGE2DARRAY  */
+  YYSYMBOL_I64IMAGECUBEARRAY = 274,        /* I64IMAGECUBEARRAY  */
+  YYSYMBOL_U64IMAGECUBEARRAY = 275,        /* U64IMAGECUBEARRAY  */
+  YYSYMBOL_I64IMAGE2DMS = 276,             /* I64IMAGE2DMS  */
+  YYSYMBOL_U64IMAGE2DMS = 277,             /* U64IMAGE2DMS  */
+  YYSYMBOL_I64IMAGE2DMSARRAY = 278,        /* I64IMAGE2DMSARRAY  */
+  YYSYMBOL_U64IMAGE2DMSARRAY = 279,        /* U64IMAGE2DMSARRAY  */
+  YYSYMBOL_TEXTURECUBEARRAY = 280,         /* TEXTURECUBEARRAY  */
+  YYSYMBOL_ITEXTURECUBEARRAY = 281,        /* ITEXTURECUBEARRAY  */
+  YYSYMBOL_UTEXTURECUBEARRAY = 282,        /* UTEXTURECUBEARRAY  */
+  YYSYMBOL_TEXTURE1D = 283,                /* TEXTURE1D  */
+  YYSYMBOL_ITEXTURE1D = 284,               /* ITEXTURE1D  */
+  YYSYMBOL_UTEXTURE1D = 285,               /* UTEXTURE1D  */
+  YYSYMBOL_TEXTURE1DARRAY = 286,           /* TEXTURE1DARRAY  */
+  YYSYMBOL_ITEXTURE1DARRAY = 287,          /* ITEXTURE1DARRAY  */
+  YYSYMBOL_UTEXTURE1DARRAY = 288,          /* UTEXTURE1DARRAY  */
+  YYSYMBOL_TEXTURE2DRECT = 289,            /* TEXTURE2DRECT  */
+  YYSYMBOL_ITEXTURE2DRECT = 290,           /* ITEXTURE2DRECT  */
+  YYSYMBOL_UTEXTURE2DRECT = 291,           /* UTEXTURE2DRECT  */
+  YYSYMBOL_TEXTUREBUFFER = 292,            /* TEXTUREBUFFER  */
+  YYSYMBOL_ITEXTUREBUFFER = 293,           /* ITEXTUREBUFFER  */
+  YYSYMBOL_UTEXTUREBUFFER = 294,           /* UTEXTUREBUFFER  */
+  YYSYMBOL_TEXTURE2DMS = 295,              /* TEXTURE2DMS  */
+  YYSYMBOL_ITEXTURE2DMS = 296,             /* ITEXTURE2DMS  */
+  YYSYMBOL_UTEXTURE2DMS = 297,             /* UTEXTURE2DMS  */
+  YYSYMBOL_TEXTURE2DMSARRAY = 298,         /* TEXTURE2DMSARRAY  */
+  YYSYMBOL_ITEXTURE2DMSARRAY = 299,        /* ITEXTURE2DMSARRAY  */
+  YYSYMBOL_UTEXTURE2DMSARRAY = 300,        /* UTEXTURE2DMSARRAY  */
+  YYSYMBOL_F16TEXTURE1D = 301,             /* F16TEXTURE1D  */
+  YYSYMBOL_F16TEXTURE2D = 302,             /* F16TEXTURE2D  */
+  YYSYMBOL_F16TEXTURE3D = 303,             /* F16TEXTURE3D  */
+  YYSYMBOL_F16TEXTURE2DRECT = 304,         /* F16TEXTURE2DRECT  */
+  YYSYMBOL_F16TEXTURECUBE = 305,           /* F16TEXTURECUBE  */
+  YYSYMBOL_F16TEXTURE1DARRAY = 306,        /* F16TEXTURE1DARRAY  */
+  YYSYMBOL_F16TEXTURE2DARRAY = 307,        /* F16TEXTURE2DARRAY  */
+  YYSYMBOL_F16TEXTURECUBEARRAY = 308,      /* F16TEXTURECUBEARRAY  */
+  YYSYMBOL_F16TEXTUREBUFFER = 309,         /* F16TEXTUREBUFFER  */
+  YYSYMBOL_F16TEXTURE2DMS = 310,           /* F16TEXTURE2DMS  */
+  YYSYMBOL_F16TEXTURE2DMSARRAY = 311,      /* F16TEXTURE2DMSARRAY  */
+  YYSYMBOL_SUBPASSINPUT = 312,             /* SUBPASSINPUT  */
+  YYSYMBOL_SUBPASSINPUTMS = 313,           /* SUBPASSINPUTMS  */
+  YYSYMBOL_ISUBPASSINPUT = 314,            /* ISUBPASSINPUT  */
+  YYSYMBOL_ISUBPASSINPUTMS = 315,          /* ISUBPASSINPUTMS  */
+  YYSYMBOL_USUBPASSINPUT = 316,            /* USUBPASSINPUT  */
+  YYSYMBOL_USUBPASSINPUTMS = 317,          /* USUBPASSINPUTMS  */
+  YYSYMBOL_F16SUBPASSINPUT = 318,          /* F16SUBPASSINPUT  */
+  YYSYMBOL_F16SUBPASSINPUTMS = 319,        /* F16SUBPASSINPUTMS  */
+  YYSYMBOL_SPIRV_INSTRUCTION = 320,        /* SPIRV_INSTRUCTION  */
+  YYSYMBOL_SPIRV_EXECUTION_MODE = 321,     /* SPIRV_EXECUTION_MODE  */
+  YYSYMBOL_SPIRV_EXECUTION_MODE_ID = 322,  /* SPIRV_EXECUTION_MODE_ID  */
+  YYSYMBOL_SPIRV_DECORATE = 323,           /* SPIRV_DECORATE  */
+  YYSYMBOL_SPIRV_DECORATE_ID = 324,        /* SPIRV_DECORATE_ID  */
+  YYSYMBOL_SPIRV_DECORATE_STRING = 325,    /* SPIRV_DECORATE_STRING  */
+  YYSYMBOL_SPIRV_TYPE = 326,               /* SPIRV_TYPE  */
+  YYSYMBOL_SPIRV_STORAGE_CLASS = 327,      /* SPIRV_STORAGE_CLASS  */
+  YYSYMBOL_SPIRV_BY_REFERENCE = 328,       /* SPIRV_BY_REFERENCE  */
+  YYSYMBOL_SPIRV_LITERAL = 329,            /* SPIRV_LITERAL  */
+  YYSYMBOL_ATTACHMENTEXT = 330,            /* ATTACHMENTEXT  */
+  YYSYMBOL_IATTACHMENTEXT = 331,           /* IATTACHMENTEXT  */
+  YYSYMBOL_UATTACHMENTEXT = 332,           /* UATTACHMENTEXT  */
+  YYSYMBOL_LEFT_OP = 333,                  /* LEFT_OP  */
+  YYSYMBOL_RIGHT_OP = 334,                 /* RIGHT_OP  */
+  YYSYMBOL_INC_OP = 335,                   /* INC_OP  */
+  YYSYMBOL_DEC_OP = 336,                   /* DEC_OP  */
+  YYSYMBOL_LE_OP = 337,                    /* LE_OP  */
+  YYSYMBOL_GE_OP = 338,                    /* GE_OP  */
+  YYSYMBOL_EQ_OP = 339,                    /* EQ_OP  */
+  YYSYMBOL_NE_OP = 340,                    /* NE_OP  */
+  YYSYMBOL_AND_OP = 341,                   /* AND_OP  */
+  YYSYMBOL_OR_OP = 342,                    /* OR_OP  */
+  YYSYMBOL_XOR_OP = 343,                   /* XOR_OP  */
+  YYSYMBOL_MUL_ASSIGN = 344,               /* MUL_ASSIGN  */
+  YYSYMBOL_DIV_ASSIGN = 345,               /* DIV_ASSIGN  */
+  YYSYMBOL_ADD_ASSIGN = 346,               /* ADD_ASSIGN  */
+  YYSYMBOL_MOD_ASSIGN = 347,               /* MOD_ASSIGN  */
+  YYSYMBOL_LEFT_ASSIGN = 348,              /* LEFT_ASSIGN  */
+  YYSYMBOL_RIGHT_ASSIGN = 349,             /* RIGHT_ASSIGN  */
+  YYSYMBOL_AND_ASSIGN = 350,               /* AND_ASSIGN  */
+  YYSYMBOL_XOR_ASSIGN = 351,               /* XOR_ASSIGN  */
+  YYSYMBOL_OR_ASSIGN = 352,                /* OR_ASSIGN  */
+  YYSYMBOL_SUB_ASSIGN = 353,               /* SUB_ASSIGN  */
+  YYSYMBOL_STRING_LITERAL = 354,           /* STRING_LITERAL  */
+  YYSYMBOL_LEFT_PAREN = 355,               /* LEFT_PAREN  */
+  YYSYMBOL_RIGHT_PAREN = 356,              /* RIGHT_PAREN  */
+  YYSYMBOL_LEFT_BRACKET = 357,             /* LEFT_BRACKET  */
+  YYSYMBOL_RIGHT_BRACKET = 358,            /* RIGHT_BRACKET  */
+  YYSYMBOL_LEFT_BRACE = 359,               /* LEFT_BRACE  */
+  YYSYMBOL_RIGHT_BRACE = 360,              /* RIGHT_BRACE  */
+  YYSYMBOL_DOT = 361,                      /* DOT  */
+  YYSYMBOL_COMMA = 362,                    /* COMMA  */
+  YYSYMBOL_COLON = 363,                    /* COLON  */
+  YYSYMBOL_EQUAL = 364,                    /* EQUAL  */
+  YYSYMBOL_SEMICOLON = 365,                /* SEMICOLON  */
+  YYSYMBOL_BANG = 366,                     /* BANG  */
+  YYSYMBOL_DASH = 367,                     /* DASH  */
+  YYSYMBOL_TILDE = 368,                    /* TILDE  */
+  YYSYMBOL_PLUS = 369,                     /* PLUS  */
+  YYSYMBOL_STAR = 370,                     /* STAR  */
+  YYSYMBOL_SLASH = 371,                    /* SLASH  */
+  YYSYMBOL_PERCENT = 372,                  /* PERCENT  */
+  YYSYMBOL_LEFT_ANGLE = 373,               /* LEFT_ANGLE  */
+  YYSYMBOL_RIGHT_ANGLE = 374,              /* RIGHT_ANGLE  */
+  YYSYMBOL_VERTICAL_BAR = 375,             /* VERTICAL_BAR  */
+  YYSYMBOL_CARET = 376,                    /* CARET  */
+  YYSYMBOL_AMPERSAND = 377,                /* AMPERSAND  */
+  YYSYMBOL_QUESTION = 378,                 /* QUESTION  */
+  YYSYMBOL_INVARIANT = 379,                /* INVARIANT  */
+  YYSYMBOL_HIGH_PRECISION = 380,           /* HIGH_PRECISION  */
+  YYSYMBOL_MEDIUM_PRECISION = 381,         /* MEDIUM_PRECISION  */
+  YYSYMBOL_LOW_PRECISION = 382,            /* LOW_PRECISION  */
+  YYSYMBOL_PRECISION = 383,                /* PRECISION  */
+  YYSYMBOL_PACKED = 384,                   /* PACKED  */
+  YYSYMBOL_RESOURCE = 385,                 /* RESOURCE  */
+  YYSYMBOL_SUPERP = 386,                   /* SUPERP  */
+  YYSYMBOL_FLOATCONSTANT = 387,            /* FLOATCONSTANT  */
+  YYSYMBOL_INTCONSTANT = 388,              /* INTCONSTANT  */
+  YYSYMBOL_UINTCONSTANT = 389,             /* UINTCONSTANT  */
+  YYSYMBOL_BOOLCONSTANT = 390,             /* BOOLCONSTANT  */
+  YYSYMBOL_IDENTIFIER = 391,               /* IDENTIFIER  */
+  YYSYMBOL_TYPE_NAME = 392,                /* TYPE_NAME  */
+  YYSYMBOL_CENTROID = 393,                 /* CENTROID  */
+  YYSYMBOL_IN = 394,                       /* IN  */
+  YYSYMBOL_OUT = 395,                      /* OUT  */
+  YYSYMBOL_INOUT = 396,                    /* INOUT  */
+  YYSYMBOL_STRUCT = 397,                   /* STRUCT  */
+  YYSYMBOL_VOID = 398,                     /* VOID  */
+  YYSYMBOL_WHILE = 399,                    /* WHILE  */
+  YYSYMBOL_BREAK = 400,                    /* BREAK  */
+  YYSYMBOL_CONTINUE = 401,                 /* CONTINUE  */
+  YYSYMBOL_DO = 402,                       /* DO  */
+  YYSYMBOL_ELSE = 403,                     /* ELSE  */
+  YYSYMBOL_FOR = 404,                      /* FOR  */
+  YYSYMBOL_IF = 405,                       /* IF  */
+  YYSYMBOL_DISCARD = 406,                  /* DISCARD  */
+  YYSYMBOL_RETURN = 407,                   /* RETURN  */
+  YYSYMBOL_SWITCH = 408,                   /* SWITCH  */
+  YYSYMBOL_CASE = 409,                     /* CASE  */
+  YYSYMBOL_DEFAULT = 410,                  /* DEFAULT  */
+  YYSYMBOL_TERMINATE_INVOCATION = 411,     /* TERMINATE_INVOCATION  */
+  YYSYMBOL_TERMINATE_RAY = 412,            /* TERMINATE_RAY  */
+  YYSYMBOL_IGNORE_INTERSECTION = 413,      /* IGNORE_INTERSECTION  */
+  YYSYMBOL_UNIFORM = 414,                  /* UNIFORM  */
+  YYSYMBOL_SHARED = 415,                   /* SHARED  */
+  YYSYMBOL_BUFFER = 416,                   /* BUFFER  */
+  YYSYMBOL_TILEIMAGEEXT = 417,             /* TILEIMAGEEXT  */
+  YYSYMBOL_FLAT = 418,                     /* FLAT  */
+  YYSYMBOL_SMOOTH = 419,                   /* SMOOTH  */
+  YYSYMBOL_LAYOUT = 420,                   /* LAYOUT  */
+  YYSYMBOL_DOUBLECONSTANT = 421,           /* DOUBLECONSTANT  */
+  YYSYMBOL_INT16CONSTANT = 422,            /* INT16CONSTANT  */
+  YYSYMBOL_UINT16CONSTANT = 423,           /* UINT16CONSTANT  */
+  YYSYMBOL_FLOAT16CONSTANT = 424,          /* FLOAT16CONSTANT  */
+  YYSYMBOL_INT32CONSTANT = 425,            /* INT32CONSTANT  */
+  YYSYMBOL_UINT32CONSTANT = 426,           /* UINT32CONSTANT  */
+  YYSYMBOL_INT64CONSTANT = 427,            /* INT64CONSTANT  */
+  YYSYMBOL_UINT64CONSTANT = 428,           /* UINT64CONSTANT  */
+  YYSYMBOL_SUBROUTINE = 429,               /* SUBROUTINE  */
+  YYSYMBOL_DEMOTE = 430,                   /* DEMOTE  */
+  YYSYMBOL_PAYLOADNV = 431,                /* PAYLOADNV  */
+  YYSYMBOL_PAYLOADINNV = 432,              /* PAYLOADINNV  */
+  YYSYMBOL_HITATTRNV = 433,                /* HITATTRNV  */
+  YYSYMBOL_CALLDATANV = 434,               /* CALLDATANV  */
+  YYSYMBOL_CALLDATAINNV = 435,             /* CALLDATAINNV  */
+  YYSYMBOL_PAYLOADEXT = 436,               /* PAYLOADEXT  */
+  YYSYMBOL_PAYLOADINEXT = 437,             /* PAYLOADINEXT  */
+  YYSYMBOL_HITATTREXT = 438,               /* HITATTREXT  */
+  YYSYMBOL_CALLDATAEXT = 439,              /* CALLDATAEXT  */
+  YYSYMBOL_CALLDATAINEXT = 440,            /* CALLDATAINEXT  */
+  YYSYMBOL_PATCH = 441,                    /* PATCH  */
+  YYSYMBOL_SAMPLE = 442,                   /* SAMPLE  */
+  YYSYMBOL_NONUNIFORM = 443,               /* NONUNIFORM  */
+  YYSYMBOL_COHERENT = 444,                 /* COHERENT  */
+  YYSYMBOL_VOLATILE = 445,                 /* VOLATILE  */
+  YYSYMBOL_RESTRICT = 446,                 /* RESTRICT  */
+  YYSYMBOL_READONLY = 447,                 /* READONLY  */
+  YYSYMBOL_WRITEONLY = 448,                /* WRITEONLY  */
+  YYSYMBOL_DEVICECOHERENT = 449,           /* DEVICECOHERENT  */
+  YYSYMBOL_QUEUEFAMILYCOHERENT = 450,      /* QUEUEFAMILYCOHERENT  */
+  YYSYMBOL_WORKGROUPCOHERENT = 451,        /* WORKGROUPCOHERENT  */
+  YYSYMBOL_SUBGROUPCOHERENT = 452,         /* SUBGROUPCOHERENT  */
+  YYSYMBOL_NONPRIVATE = 453,               /* NONPRIVATE  */
+  YYSYMBOL_SHADERCALLCOHERENT = 454,       /* SHADERCALLCOHERENT  */
+  YYSYMBOL_NOPERSPECTIVE = 455,            /* NOPERSPECTIVE  */
+  YYSYMBOL_EXPLICITINTERPAMD = 456,        /* EXPLICITINTERPAMD  */
+  YYSYMBOL_PERVERTEXEXT = 457,             /* PERVERTEXEXT  */
+  YYSYMBOL_PERVERTEXNV = 458,              /* PERVERTEXNV  */
+  YYSYMBOL_PERPRIMITIVENV = 459,           /* PERPRIMITIVENV  */
+  YYSYMBOL_PERVIEWNV = 460,                /* PERVIEWNV  */
+  YYSYMBOL_PERTASKNV = 461,                /* PERTASKNV  */
+  YYSYMBOL_PERPRIMITIVEEXT = 462,          /* PERPRIMITIVEEXT  */
+  YYSYMBOL_TASKPAYLOADWORKGROUPEXT = 463,  /* TASKPAYLOADWORKGROUPEXT  */
+  YYSYMBOL_PRECISE = 464,                  /* PRECISE  */
+  YYSYMBOL_YYACCEPT = 465,                 /* $accept  */
+  YYSYMBOL_variable_identifier = 466,      /* variable_identifier  */
+  YYSYMBOL_primary_expression = 467,       /* primary_expression  */
+  YYSYMBOL_postfix_expression = 468,       /* postfix_expression  */
+  YYSYMBOL_integer_expression = 469,       /* integer_expression  */
+  YYSYMBOL_function_call = 470,            /* function_call  */
+  YYSYMBOL_function_call_or_method = 471,  /* function_call_or_method  */
+  YYSYMBOL_function_call_generic = 472,    /* function_call_generic  */
+  YYSYMBOL_function_call_header_no_parameters = 473, /* function_call_header_no_parameters  */
+  YYSYMBOL_function_call_header_with_parameters = 474, /* function_call_header_with_parameters  */
+  YYSYMBOL_function_call_header = 475,     /* function_call_header  */
+  YYSYMBOL_function_identifier = 476,      /* function_identifier  */
+  YYSYMBOL_unary_expression = 477,         /* unary_expression  */
+  YYSYMBOL_unary_operator = 478,           /* unary_operator  */
+  YYSYMBOL_multiplicative_expression = 479, /* multiplicative_expression  */
+  YYSYMBOL_additive_expression = 480,      /* additive_expression  */
+  YYSYMBOL_shift_expression = 481,         /* shift_expression  */
+  YYSYMBOL_relational_expression = 482,    /* relational_expression  */
+  YYSYMBOL_equality_expression = 483,      /* equality_expression  */
+  YYSYMBOL_and_expression = 484,           /* and_expression  */
+  YYSYMBOL_exclusive_or_expression = 485,  /* exclusive_or_expression  */
+  YYSYMBOL_inclusive_or_expression = 486,  /* inclusive_or_expression  */
+  YYSYMBOL_logical_and_expression = 487,   /* logical_and_expression  */
+  YYSYMBOL_logical_xor_expression = 488,   /* logical_xor_expression  */
+  YYSYMBOL_logical_or_expression = 489,    /* logical_or_expression  */
+  YYSYMBOL_conditional_expression = 490,   /* conditional_expression  */
+  YYSYMBOL_491_1 = 491,                    /* $@1  */
+  YYSYMBOL_assignment_expression = 492,    /* assignment_expression  */
+  YYSYMBOL_assignment_operator = 493,      /* assignment_operator  */
+  YYSYMBOL_expression = 494,               /* expression  */
+  YYSYMBOL_constant_expression = 495,      /* constant_expression  */
+  YYSYMBOL_declaration = 496,              /* declaration  */
+  YYSYMBOL_block_structure = 497,          /* block_structure  */
+  YYSYMBOL_498_2 = 498,                    /* $@2  */
+  YYSYMBOL_identifier_list = 499,          /* identifier_list  */
+  YYSYMBOL_function_prototype = 500,       /* function_prototype  */
+  YYSYMBOL_function_declarator = 501,      /* function_declarator  */
+  YYSYMBOL_function_header_with_parameters = 502, /* function_header_with_parameters  */
+  YYSYMBOL_function_header = 503,          /* function_header  */
+  YYSYMBOL_parameter_declarator = 504,     /* parameter_declarator  */
+  YYSYMBOL_parameter_declaration = 505,    /* parameter_declaration  */
+  YYSYMBOL_parameter_type_specifier = 506, /* parameter_type_specifier  */
+  YYSYMBOL_init_declarator_list = 507,     /* init_declarator_list  */
+  YYSYMBOL_single_declaration = 508,       /* single_declaration  */
+  YYSYMBOL_fully_specified_type = 509,     /* fully_specified_type  */
+  YYSYMBOL_invariant_qualifier = 510,      /* invariant_qualifier  */
+  YYSYMBOL_interpolation_qualifier = 511,  /* interpolation_qualifier  */
+  YYSYMBOL_layout_qualifier = 512,         /* layout_qualifier  */
+  YYSYMBOL_layout_qualifier_id_list = 513, /* layout_qualifier_id_list  */
+  YYSYMBOL_layout_qualifier_id = 514,      /* layout_qualifier_id  */
+  YYSYMBOL_precise_qualifier = 515,        /* precise_qualifier  */
+  YYSYMBOL_type_qualifier = 516,           /* type_qualifier  */
+  YYSYMBOL_single_type_qualifier = 517,    /* single_type_qualifier  */
+  YYSYMBOL_storage_qualifier = 518,        /* storage_qualifier  */
+  YYSYMBOL_non_uniform_qualifier = 519,    /* non_uniform_qualifier  */
+  YYSYMBOL_type_name_list = 520,           /* type_name_list  */
+  YYSYMBOL_type_specifier = 521,           /* type_specifier  */
+  YYSYMBOL_array_specifier = 522,          /* array_specifier  */
+  YYSYMBOL_type_parameter_specifier_opt = 523, /* type_parameter_specifier_opt  */
+  YYSYMBOL_type_parameter_specifier = 524, /* type_parameter_specifier  */
+  YYSYMBOL_type_parameter_specifier_list = 525, /* type_parameter_specifier_list  */
+  YYSYMBOL_type_specifier_nonarray = 526,  /* type_specifier_nonarray  */
+  YYSYMBOL_precision_qualifier = 527,      /* precision_qualifier  */
+  YYSYMBOL_struct_specifier = 528,         /* struct_specifier  */
+  YYSYMBOL_529_3 = 529,                    /* $@3  */
+  YYSYMBOL_530_4 = 530,                    /* $@4  */
+  YYSYMBOL_struct_declaration_list = 531,  /* struct_declaration_list  */
+  YYSYMBOL_struct_declaration = 532,       /* struct_declaration  */
+  YYSYMBOL_struct_declarator_list = 533,   /* struct_declarator_list  */
+  YYSYMBOL_struct_declarator = 534,        /* struct_declarator  */
+  YYSYMBOL_initializer = 535,              /* initializer  */
+  YYSYMBOL_initializer_list = 536,         /* initializer_list  */
+  YYSYMBOL_declaration_statement = 537,    /* declaration_statement  */
+  YYSYMBOL_statement = 538,                /* statement  */
+  YYSYMBOL_simple_statement = 539,         /* simple_statement  */
+  YYSYMBOL_demote_statement = 540,         /* demote_statement  */
+  YYSYMBOL_compound_statement = 541,       /* compound_statement  */
+  YYSYMBOL_542_5 = 542,                    /* $@5  */
+  YYSYMBOL_543_6 = 543,                    /* $@6  */
+  YYSYMBOL_statement_no_new_scope = 544,   /* statement_no_new_scope  */
+  YYSYMBOL_statement_scoped = 545,         /* statement_scoped  */
+  YYSYMBOL_546_7 = 546,                    /* $@7  */
+  YYSYMBOL_547_8 = 547,                    /* $@8  */
+  YYSYMBOL_compound_statement_no_new_scope = 548, /* compound_statement_no_new_scope  */
+  YYSYMBOL_statement_list = 549,           /* statement_list  */
+  YYSYMBOL_expression_statement = 550,     /* expression_statement  */
+  YYSYMBOL_selection_statement = 551,      /* selection_statement  */
+  YYSYMBOL_selection_statement_nonattributed = 552, /* selection_statement_nonattributed  */
+  YYSYMBOL_selection_rest_statement = 553, /* selection_rest_statement  */
+  YYSYMBOL_condition = 554,                /* condition  */
+  YYSYMBOL_switch_statement = 555,         /* switch_statement  */
+  YYSYMBOL_switch_statement_nonattributed = 556, /* switch_statement_nonattributed  */
+  YYSYMBOL_557_9 = 557,                    /* $@9  */
+  YYSYMBOL_switch_statement_list = 558,    /* switch_statement_list  */
+  YYSYMBOL_case_label = 559,               /* case_label  */
+  YYSYMBOL_iteration_statement = 560,      /* iteration_statement  */
+  YYSYMBOL_iteration_statement_nonattributed = 561, /* iteration_statement_nonattributed  */
+  YYSYMBOL_562_10 = 562,                   /* $@10  */
+  YYSYMBOL_563_11 = 563,                   /* $@11  */
+  YYSYMBOL_564_12 = 564,                   /* $@12  */
+  YYSYMBOL_for_init_statement = 565,       /* for_init_statement  */
+  YYSYMBOL_conditionopt = 566,             /* conditionopt  */
+  YYSYMBOL_for_rest_statement = 567,       /* for_rest_statement  */
+  YYSYMBOL_jump_statement = 568,           /* jump_statement  */
+  YYSYMBOL_translation_unit = 569,         /* translation_unit  */
+  YYSYMBOL_external_declaration = 570,     /* external_declaration  */
+  YYSYMBOL_function_definition = 571,      /* function_definition  */
+  YYSYMBOL_572_13 = 572,                   /* $@13  */
+  YYSYMBOL_attribute = 573,                /* attribute  */
+  YYSYMBOL_attribute_list = 574,           /* attribute_list  */
+  YYSYMBOL_single_attribute = 575,         /* single_attribute  */
+  YYSYMBOL_spirv_requirements_list = 576,  /* spirv_requirements_list  */
+  YYSYMBOL_spirv_requirements_parameter = 577, /* spirv_requirements_parameter  */
+  YYSYMBOL_spirv_extension_list = 578,     /* spirv_extension_list  */
+  YYSYMBOL_spirv_capability_list = 579,    /* spirv_capability_list  */
+  YYSYMBOL_spirv_execution_mode_qualifier = 580, /* spirv_execution_mode_qualifier  */
+  YYSYMBOL_spirv_execution_mode_parameter_list = 581, /* spirv_execution_mode_parameter_list  */
+  YYSYMBOL_spirv_execution_mode_parameter = 582, /* spirv_execution_mode_parameter  */
+  YYSYMBOL_spirv_execution_mode_id_parameter_list = 583, /* spirv_execution_mode_id_parameter_list  */
+  YYSYMBOL_spirv_storage_class_qualifier = 584, /* spirv_storage_class_qualifier  */
+  YYSYMBOL_spirv_decorate_qualifier = 585, /* spirv_decorate_qualifier  */
+  YYSYMBOL_spirv_decorate_parameter_list = 586, /* spirv_decorate_parameter_list  */
+  YYSYMBOL_spirv_decorate_parameter = 587, /* spirv_decorate_parameter  */
+  YYSYMBOL_spirv_decorate_id_parameter_list = 588, /* spirv_decorate_id_parameter_list  */
+  YYSYMBOL_spirv_decorate_id_parameter = 589, /* spirv_decorate_id_parameter  */
+  YYSYMBOL_spirv_decorate_string_parameter_list = 590, /* spirv_decorate_string_parameter_list  */
+  YYSYMBOL_spirv_type_specifier = 591,     /* spirv_type_specifier  */
+  YYSYMBOL_spirv_type_parameter_list = 592, /* spirv_type_parameter_list  */
+  YYSYMBOL_spirv_type_parameter = 593,     /* spirv_type_parameter  */
+  YYSYMBOL_spirv_instruction_qualifier = 594, /* spirv_instruction_qualifier  */
+  YYSYMBOL_spirv_instruction_qualifier_list = 595, /* spirv_instruction_qualifier_list  */
+  YYSYMBOL_spirv_instruction_qualifier_id = 596 /* spirv_instruction_qualifier_id  */
 };
 typedef enum yysymbol_kind_t yysymbol_kind_t;
 
 
 /* Second part of user prologue.  */
-#line 136 "MachineIndependent/glslang.y"
+#line 111 "MachineIndependent/glslang.y"
 
 
-/* windows only pragma */
-#ifdef _MSC_VER
-    #pragma warning(disable : 4065)
-    #pragma warning(disable : 4127)
-    #pragma warning(disable : 4244)
-#endif
-
 #define parseContext (*pParseContext)
 #define yyerror(context, msg) context->parserError(msg)
 
 extern int yylex(YYSTYPE*, TParseContext&);
 
 
-#line 742 "MachineIndependent/glslang_tab.cpp"
+#line 736 "MachineIndependent/glslang_tab.cpp"
 
 
 #ifdef short
@@ -778,6 +772,18 @@
 typedef short yytype_int16;
 #endif
 
+/* Work around bug in HP-UX 11.23, which defines these macros
+   incorrectly for preprocessor constants.  This workaround can likely
+   be removed in 2023, as HPE has promised support for HP-UX 11.23
+   (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
+   <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>.  */
+#ifdef __hpux
+# undef UINT_LEAST8_MAX
+# undef UINT_LEAST16_MAX
+# define UINT_LEAST8_MAX 255
+# define UINT_LEAST16_MAX 65535
+#endif
+
 #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
 typedef __UINT_LEAST8_TYPE__ yytype_uint8;
 #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
@@ -875,17 +881,23 @@
 
 /* Suppress unused-variable warnings by "using" E.  */
 #if ! defined lint || defined __GNUC__
-# define YYUSE(E) ((void) (E))
+# define YY_USE(E) ((void) (E))
 #else
-# define YYUSE(E) /* empty */
+# define YY_USE(E) /* empty */
 #endif
 
-#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
 /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                            \
+#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
+# if __GNUC__ * 100 + __GNUC_MINOR__ < 407
+#  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
+    _Pragma ("GCC diagnostic push")                                     \
+    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
+# else
+#  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
     _Pragma ("GCC diagnostic push")                                     \
     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")              \
     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
+# endif
 # define YY_IGNORE_MAYBE_UNINITIALIZED_END      \
     _Pragma ("GCC diagnostic pop")
 #else
@@ -1042,21 +1054,21 @@
 #endif /* !YYCOPY_NEEDED */
 
 /* YYFINAL -- State number of the termination state.  */
-#define YYFINAL  451
+#define YYFINAL  452
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   12670
+#define YYLAST   12701
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  464
+#define YYNTOKENS  465
 /* YYNNTS -- Number of nonterminals.  */
 #define YYNNTS  132
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  698
+#define YYNRULES  700
 /* YYNSTATES -- Number of states.  */
-#define YYNSTATES  944
+#define YYNSTATES  946
 
 /* YYMAXUTOK -- Last valid token kind.  */
-#define YYMAXUTOK   718
+#define YYMAXUTOK   719
 
 
 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
@@ -1141,83 +1153,84 @@
      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,   460,   461,   462,   463
+     455,   456,   457,   458,   459,   460,   461,   462,   463,   464
 };
 
 #if YYDEBUG
-  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
+/* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
 static const yytype_int16 yyrline[] =
 {
-       0,   394,   394,   400,   403,   408,   411,   414,   418,   422,
-     425,   429,   433,   437,   441,   445,   449,   455,   463,   466,
-     469,   472,   475,   480,   488,   495,   502,   508,   512,   519,
-     522,   528,   535,   545,   553,   558,   586,   595,   601,   605,
-     609,   629,   630,   631,   632,   638,   639,   644,   649,   658,
-     659,   664,   672,   673,   679,   688,   689,   694,   699,   704,
-     712,   713,   722,   734,   735,   744,   745,   754,   755,   764,
-     765,   773,   774,   782,   783,   791,   792,   792,   810,   811,
-     827,   831,   835,   839,   844,   848,   852,   856,   860,   864,
-     868,   875,   878,   889,   896,   902,   909,   915,   920,   927,
-     931,   935,   939,   944,   949,   958,   958,   969,   973,   980,
-     984,   990,   996,  1006,  1009,  1016,  1024,  1044,  1067,  1082,
-    1107,  1118,  1128,  1138,  1148,  1157,  1160,  1164,  1168,  1173,
-    1181,  1188,  1193,  1198,  1203,  1212,  1222,  1249,  1258,  1265,
-    1273,  1280,  1287,  1295,  1303,  1313,  1323,  1330,  1341,  1347,
-    1350,  1357,  1361,  1365,  1374,  1384,  1387,  1398,  1401,  1404,
-    1408,  1412,  1417,  1421,  1424,  1429,  1433,  1438,  1447,  1451,
-    1456,  1462,  1468,  1475,  1480,  1485,  1493,  1499,  1511,  1525,
-    1531,  1536,  1544,  1552,  1560,  1568,  1576,  1584,  1592,  1600,
-    1608,  1615,  1622,  1626,  1631,  1636,  1641,  1646,  1651,  1656,
-    1660,  1664,  1668,  1672,  1678,  1684,  1696,  1703,  1706,  1715,
-    1720,  1730,  1735,  1743,  1747,  1757,  1760,  1766,  1772,  1779,
-    1789,  1793,  1797,  1801,  1806,  1810,  1815,  1820,  1825,  1830,
-    1835,  1840,  1845,  1850,  1855,  1861,  1867,  1873,  1878,  1883,
-    1888,  1893,  1898,  1903,  1908,  1913,  1918,  1923,  1928,  1934,
-    1941,  1946,  1951,  1956,  1961,  1966,  1971,  1976,  1981,  1986,
-    1991,  1996,  2004,  2012,  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,  2218,  2226,  2234,
-    2242,  2250,  2258,  2266,  2274,  2282,  2290,  2298,  2306,  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,  2530,  2534,  2538,  2542,  2547,
-    2553,  2558,  2563,  2568,  2573,  2578,  2583,  2589,  2594,  2599,
-    2604,  2609,  2614,  2620,  2626,  2632,  2638,  2644,  2650,  2656,
-    2662,  2668,  2674,  2680,  2686,  2692,  2698,  2703,  2708,  2713,
-    2718,  2723,  2728,  2734,  2739,  2744,  2749,  2754,  2759,  2764,
-    2769,  2775,  2780,  2785,  2790,  2795,  2800,  2805,  2810,  2815,
-    2820,  2825,  2830,  2835,  2840,  2845,  2851,  2856,  2861,  2867,
-    2873,  2878,  2883,  2888,  2894,  2899,  2904,  2909,  2915,  2920,
-    2925,  2930,  2936,  2941,  2946,  2951,  2957,  2963,  2969,  2975,
-    2980,  2986,  2992,  2998,  3003,  3008,  3013,  3018,  3023,  3029,
-    3034,  3039,  3044,  3050,  3055,  3060,  3065,  3071,  3076,  3081,
-    3086,  3092,  3097,  3102,  3107,  3113,  3118,  3123,  3128,  3134,
-    3139,  3144,  3149,  3155,  3160,  3165,  3170,  3176,  3181,  3186,
-    3191,  3197,  3202,  3207,  3212,  3218,  3223,  3228,  3233,  3239,
-    3244,  3249,  3254,  3260,  3265,  3270,  3275,  3281,  3286,  3291,
-    3296,  3302,  3307,  3312,  3317,  3323,  3328,  3333,  3338,  3343,
-    3348,  3353,  3358,  3363,  3368,  3373,  3378,  3383,  3388,  3393,
-    3398,  3403,  3408,  3413,  3418,  3423,  3428,  3433,  3438,  3443,
-    3449,  3455,  3461,  3467,  3473,  3479,  3485,  3492,  3499,  3505,
-    3511,  3517,  3523,  3529,  3535,  3541,  3545,  3550,  3555,  3571,
-    3576,  3581,  3589,  3589,  3600,  3600,  3610,  3613,  3626,  3648,
-    3675,  3679,  3685,  3690,  3701,  3705,  3711,  3717,  3728,  3731,
-    3738,  3742,  3743,  3749,  3750,  3751,  3752,  3753,  3754,  3755,
-    3757,  3763,  3772,  3773,  3777,  3773,  3789,  3790,  3794,  3794,
-    3801,  3801,  3815,  3818,  3826,  3834,  3845,  3846,  3850,  3854,
-    3862,  3869,  3873,  3881,  3885,  3898,  3902,  3910,  3910,  3930,
-    3933,  3939,  3951,  3963,  3967,  3975,  3975,  3990,  3990,  4008,
-    4008,  4029,  4032,  4038,  4041,  4047,  4051,  4058,  4063,  4068,
-    4075,  4078,  4082,  4087,  4091,  4101,  4105,  4114,  4117,  4121,
-    4130,  4130,  4172,  4177,  4180,  4185,  4188,  4195,  4198,  4203,
-    4206,  4211,  4214,  4219,  4222,  4227,  4231,  4236,  4240,  4245,
-    4249,  4256,  4259,  4264,  4267,  4270,  4273,  4276,  4281,  4290,
-    4301,  4306,  4314,  4318,  4323,  4327,  4332,  4336,  4341,  4345,
-    4352,  4355,  4360,  4363,  4366,  4369,  4374,  4377,  4382,  4388,
-    4391,  4394,  4397,  4402,  4406,  4411,  4415,  4420,  4424,  4431,
-    4434,  4439,  4442,  4447,  4450,  4456,  4459,  4464,  4467
+       0,   355,   355,   361,   364,   369,   372,   375,   379,   382,
+     385,   389,   393,   397,   401,   405,   409,   415,   422,   425,
+     428,   431,   434,   439,   447,   454,   461,   467,   471,   478,
+     481,   487,   505,   527,   535,   540,   567,   575,   581,   585,
+     589,   609,   610,   611,   612,   618,   619,   624,   629,   638,
+     639,   644,   652,   653,   659,   668,   669,   674,   679,   684,
+     692,   693,   702,   714,   715,   724,   725,   734,   735,   744,
+     745,   753,   754,   762,   763,   771,   772,   772,   790,   791,
+     807,   811,   815,   819,   824,   828,   832,   836,   840,   844,
+     848,   855,   858,   869,   876,   881,   888,   893,   898,   905,
+     909,   913,   917,   922,   927,   936,   936,   947,   951,   958,
+     963,   971,   979,   991,   994,  1001,  1014,  1037,  1060,  1075,
+    1100,  1111,  1121,  1131,  1141,  1150,  1153,  1157,  1161,  1166,
+    1174,  1179,  1184,  1189,  1194,  1203,  1213,  1240,  1249,  1256,
+    1263,  1270,  1277,  1285,  1293,  1303,  1313,  1320,  1330,  1336,
+    1339,  1346,  1350,  1354,  1362,  1371,  1374,  1385,  1388,  1391,
+    1395,  1399,  1403,  1407,  1410,  1415,  1419,  1424,  1432,  1436,
+    1441,  1447,  1453,  1460,  1465,  1470,  1478,  1483,  1495,  1509,
+    1515,  1520,  1528,  1536,  1544,  1552,  1560,  1568,  1576,  1584,
+    1592,  1599,  1606,  1610,  1615,  1620,  1625,  1630,  1635,  1640,
+    1644,  1648,  1652,  1656,  1662,  1668,  1678,  1685,  1688,  1696,
+    1703,  1714,  1719,  1727,  1731,  1741,  1744,  1750,  1756,  1761,
+    1769,  1779,  1783,  1787,  1791,  1796,  1800,  1805,  1810,  1815,
+    1820,  1825,  1830,  1835,  1840,  1845,  1851,  1857,  1863,  1868,
+    1873,  1878,  1883,  1888,  1893,  1898,  1903,  1908,  1913,  1918,
+    1923,  1930,  1935,  1940,  1945,  1950,  1955,  1960,  1965,  1970,
+    1975,  1980,  1985,  1993,  2001,  2009,  2015,  2021,  2027,  2033,
+    2039,  2045,  2051,  2057,  2063,  2069,  2075,  2081,  2087,  2093,
+    2099,  2105,  2111,  2117,  2123,  2129,  2135,  2141,  2147,  2153,
+    2159,  2165,  2171,  2177,  2183,  2189,  2195,  2201,  2207,  2215,
+    2223,  2231,  2239,  2247,  2255,  2263,  2271,  2279,  2287,  2295,
+    2303,  2309,  2315,  2321,  2327,  2333,  2339,  2345,  2351,  2357,
+    2363,  2369,  2375,  2381,  2387,  2393,  2399,  2405,  2411,  2417,
+    2423,  2429,  2435,  2441,  2447,  2453,  2459,  2465,  2471,  2477,
+    2483,  2489,  2495,  2501,  2507,  2513,  2519,  2523,  2527,  2531,
+    2536,  2541,  2546,  2551,  2556,  2561,  2566,  2571,  2576,  2581,
+    2586,  2591,  2596,  2601,  2607,  2613,  2619,  2625,  2631,  2637,
+    2643,  2649,  2655,  2661,  2667,  2673,  2679,  2684,  2689,  2694,
+    2699,  2704,  2709,  2714,  2719,  2724,  2729,  2734,  2739,  2744,
+    2749,  2754,  2759,  2764,  2769,  2774,  2779,  2784,  2789,  2794,
+    2799,  2804,  2809,  2814,  2819,  2824,  2829,  2834,  2839,  2844,
+    2850,  2856,  2861,  2866,  2871,  2877,  2882,  2887,  2892,  2898,
+    2903,  2908,  2913,  2919,  2924,  2929,  2934,  2940,  2946,  2952,
+    2958,  2963,  2969,  2975,  2981,  2986,  2991,  2996,  3001,  3006,
+    3012,  3017,  3022,  3027,  3033,  3038,  3043,  3048,  3054,  3059,
+    3064,  3069,  3075,  3080,  3085,  3090,  3096,  3101,  3106,  3111,
+    3117,  3122,  3127,  3132,  3138,  3143,  3148,  3153,  3159,  3164,
+    3169,  3174,  3180,  3185,  3190,  3195,  3201,  3206,  3211,  3216,
+    3222,  3227,  3232,  3237,  3243,  3248,  3253,  3258,  3264,  3269,
+    3274,  3279,  3285,  3290,  3295,  3300,  3306,  3311,  3316,  3321,
+    3326,  3331,  3336,  3341,  3346,  3351,  3356,  3361,  3366,  3371,
+    3376,  3381,  3386,  3391,  3396,  3401,  3406,  3411,  3416,  3421,
+    3426,  3432,  3438,  3444,  3450,  3456,  3462,  3468,  3475,  3482,
+    3488,  3494,  3500,  3506,  3513,  3520,  3527,  3534,  3538,  3542,
+    3547,  3563,  3568,  3573,  3581,  3581,  3598,  3598,  3608,  3611,
+    3624,  3646,  3673,  3677,  3683,  3688,  3699,  3702,  3708,  3714,
+    3723,  3726,  3732,  3736,  3737,  3743,  3744,  3745,  3746,  3747,
+    3748,  3749,  3750,  3754,  3762,  3763,  3767,  3763,  3779,  3780,
+    3784,  3784,  3791,  3791,  3805,  3808,  3816,  3824,  3835,  3836,
+    3840,  3843,  3850,  3857,  3861,  3869,  3873,  3886,  3889,  3896,
+    3896,  3916,  3919,  3925,  3937,  3949,  3952,  3959,  3959,  3974,
+    3974,  3992,  3992,  4013,  4016,  4022,  4025,  4031,  4035,  4042,
+    4047,  4052,  4059,  4062,  4066,  4070,  4074,  4083,  4087,  4096,
+    4099,  4102,  4110,  4110,  4152,  4157,  4160,  4165,  4168,  4173,
+    4176,  4181,  4184,  4189,  4192,  4197,  4200,  4205,  4209,  4214,
+    4218,  4223,  4227,  4234,  4237,  4242,  4245,  4248,  4251,  4254,
+    4259,  4268,  4279,  4284,  4292,  4296,  4301,  4305,  4310,  4314,
+    4319,  4323,  4330,  4333,  4338,  4341,  4344,  4347,  4352,  4355,
+    4360,  4366,  4369,  4372,  4375,  4380,  4384,  4389,  4393,  4398,
+    4402,  4409,  4412,  4417,  4420,  4425,  4428,  4434,  4437,  4442,
+    4445
 };
 #endif
 
@@ -1262,16 +1275,17 @@
   "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",
-  "SAMPLER1DARRAYSHADOW", "ISAMPLER1D", "SAMPLER1DSHADOW", "SAMPLER2DRECT",
-  "SAMPLER2DRECTSHADOW", "ISAMPLER2DRECT", "USAMPLER2DRECT",
-  "SAMPLERBUFFER", "ISAMPLERBUFFER", "USAMPLERBUFFER", "SAMPLER2DMS",
-  "ISAMPLER2DMS", "USAMPLER2DMS", "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY",
-  "USAMPLER2DMSARRAY", "SAMPLEREXTERNALOES", "SAMPLEREXTERNAL2DY2YEXT",
-  "ISAMPLER1DARRAY", "USAMPLER1D", "USAMPLER1DARRAY", "F16SAMPLER1D",
-  "F16SAMPLER2D", "F16SAMPLER3D", "F16SAMPLER2DRECT", "F16SAMPLERCUBE",
+  "RAYQUERYEXT", "FCOOPMATNV", "ICOOPMATNV", "UCOOPMATNV", "COOPMAT",
+  "HITOBJECTNV", "HITOBJECTATTRNV", "SAMPLERCUBEARRAY",
+  "SAMPLERCUBEARRAYSHADOW", "ISAMPLERCUBEARRAY", "USAMPLERCUBEARRAY",
+  "SAMPLER1D", "SAMPLER1DARRAY", "SAMPLER1DARRAYSHADOW", "ISAMPLER1D",
+  "SAMPLER1DSHADOW", "SAMPLER2DRECT", "SAMPLER2DRECTSHADOW",
+  "ISAMPLER2DRECT", "USAMPLER2DRECT", "SAMPLERBUFFER", "ISAMPLERBUFFER",
+  "USAMPLERBUFFER", "SAMPLER2DMS", "ISAMPLER2DMS", "USAMPLER2DMS",
+  "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY", "USAMPLER2DMSARRAY",
+  "SAMPLEREXTERNALOES", "SAMPLEREXTERNAL2DY2YEXT", "ISAMPLER1DARRAY",
+  "USAMPLER1D", "USAMPLER1DARRAY", "F16SAMPLER1D", "F16SAMPLER2D",
+  "F16SAMPLER3D", "F16SAMPLER2DRECT", "F16SAMPLERCUBE",
   "F16SAMPLER1DARRAY", "F16SAMPLER2DARRAY", "F16SAMPLERCUBEARRAY",
   "F16SAMPLERBUFFER", "F16SAMPLER2DMS", "F16SAMPLER2DMSARRAY",
   "F16SAMPLER1DSHADOW", "F16SAMPLER2DSHADOW", "F16SAMPLER1DARRAYSHADOW",
@@ -1393,643 +1407,358 @@
 }
 #endif
 
-#ifdef YYPRINT
-/* YYTOKNUM[NUM] -- (External) token number corresponding to the
-   (internal) symbol number NUM (which must be that of a token).  */
-static const yytype_int16 yytoknum[] =
-{
-       0,   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,   329,   330,   331,   332,   333,   334,
-     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
-     345,   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,   380,   381,   382,   383,   384,
-     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
-     395,   396,   397,   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,   460,   461,   462,   463,   464,
-     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
-     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
-     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
-     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
-     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
-     515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
-     525,   526,   527,   528,   529,   530,   531,   532,   533,   534,
-     535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
-     545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
-     555,   556,   557,   558,   559,   560,   561,   562,   563,   564,
-     565,   566,   567,   568,   569,   570,   571,   572,   573,   574,
-     575,   576,   577,   578,   579,   580,   581,   582,   583,   584,
-     585,   586,   587,   588,   589,   590,   591,   592,   593,   594,
-     595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
-     605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
-     615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
-     625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
-     635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
-     645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
-     655,   656,   657,   658,   659,   660,   661,   662,   663,   664,
-     665,   666,   667,   668,   669,   670,   671,   672,   673,   674,
-     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,
-     715,   716,   717,   718
-};
-#endif
-
-#define YYPACT_NINF (-871)
+#define YYPACT_NINF (-872)
 
 #define yypact_value_is_default(Yyn) \
   ((Yyn) == YYPACT_NINF)
 
-#define YYTABLE_NINF (-693)
+#define YYTABLE_NINF (-695)
 
 #define yytable_value_is_error(Yyn) \
   0
 
-  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
-     STATE-NUM.  */
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+   STATE-NUM.  */
 static const yytype_int16 yypact[] =
 {
-    4635,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -295,  -293,  -284,
-    -273,  -184,  -182,  -129,  -127,  -871,  -871,  -871,  -871,  -871,
-    -258,  -871,  -871,  -871,  -871,  -871,   -43,  -871,  -871,  -871,
-    -871,  -871,  -324,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -119,  -117,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -310,  -323,  -237,
-    -128,  7862,  -235,  -871,  -106,  -871,  -871,  -871,  -871,  5557,
-    -871,  -871,  -871,  -871,  -124,  -871,  -871,   947,  -871,  -871,
-    7862,   -93,  -871,  -871,  -871,  6018,   -99,  -256,  -138,  -122,
-    -121,  -120,   -99,  -104,   -78, 12273,  -871,  -100,  -339,   -60,
-    -871,  -265,  -871,   -85,   -17,  7862,  -871,  -871,  -871,  7862,
-     -49,   -40,  -871,  -307,  -871,  -236,  -871,  -871, 10956,     1,
-    -871,  -871,  -871,     3,   -31,  7862,  -871,    -4,    -2,     4,
-    -871,  -259,  -871,  -228,    -1,     5,     6,     8,  -212,    10,
-      12,    13,    14,    15,    18,  -209,    17,    19,    27,  -313,
-    -871,    20,  7862,  -871,    22,  -871,  -207,  -871,  -871,  -202,
-    9200,  -871,  -261,  1408,  -871,  -871,  -871,  -871,  -871,     1,
-    -263,  -871,  9639,  -249,  -871,   -27,  -871,  -111, 10956, 10956,
-    -871, 10956,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -277,  -871,  -871,  -871,    28,  -200, 11395,    32,  -871,
-   10956,  -871,  -871,  -321,    26,   -17,    33,  -871,  -320,   -99,
-    -871,   -22,  -871,  -300,    37,  -102, 10956,   -74,  -871,  -143,
-     -73,  -148,   -69,    35,   -68,   -99,  -871, 11834,  -871,   -67,
-   10956,    38,   -78,  -871,  7862,    16,  6479,  -871,  7862, 10956,
-    -871,  -339,  -871,    21,  -871,  -871,   -26,  -260,   -55,  -309,
-     -14,   -12,    23,    30,    49,    52,  -312,    40, 10078,  -871,
-      42,  -871,  -871,    48,    41,    56,  -871,    67,    69,    63,
-   10517,    75, 10956,    68,    70,    73,    74,    76,  -167,  -871,
-    -871,  -107,  -871,  -323,    77,    78,  -871,  -871,  -871,  -871,
-    -871,  1869,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  5096,    26,  9639,  -240,  8322,  -871,  -871,  9639,  7862,
-    -871,    43,  -871,  -871,  -871,  -199,  -871,  -871, 10956,    51,
-    -871,  -871, 10956,    87,  -871,  -871,  -871, 10956,  -871,  -871,
-    -871,  -315,  -871,  -871,  -190,    80,  -871,  -871,  -871,  -871,
-    -871,  -871,  -187,  -871,  -168,  -871,  -871,  -166,    84,  -871,
-    -871,  -871,  -871,  -163,  -871,  -161,  -871,  -871,  -871,  -871,
-    -871,  -156,  -871,    85,  -871,  -154,    86,  -153,    80,  -871,
-    -271,  -152,  -871,    94,    96,  -871,  -871,    16,     1,   -35,
-    -871,  -871,  -871,  6940,  -871,  -871,  -871, 10956, 10956, 10956,
-   10956, 10956, 10956, 10956, 10956, 10956, 10956, 10956, 10956, 10956,
-   10956, 10956, 10956, 10956, 10956, 10956,  -871,  -871,  -871,    95,
-    -871,  2330,  -871,  -871,  -871,  2330,  -871, 10956,  -871,  -871,
-     -30, 10956,  -171,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871, 10956,
-   10956,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  9639,  -871,
-    -871,  -201,  -871,  7401,  -871,  -871,    97,    92,  -871,  -871,
-    -871,  -871,  -871,  -188,  -131,  -871,  -311,  -871,  -300,  -871,
-    -300,  -871, 10956, 10956,  -871,  -143,  -871,  -143,  -871,  -148,
-    -148,  -871,   103,    35,  -871, 11834,  -871, 10956,  -871,  -871,
-     -29,    26,    16,  -871,  -871,  -871,  -871,  -871,   -26,   -26,
-    -260,  -260,   -55,   -55,   -55,   -55,  -309,  -309,   -14,   -12,
-      23,    30,    49,    52, 10956,  -871,  2330,  4174,    59,  3713,
-    -149,  -871,  -145,  -871,  -871,  -871,  -871,  -871,  8761,  -871,
-    -871,  -871,   105,  -871,    72,  -871,  -144,  -871,  -142,  -871,
-    -141,  -871,  -140,  -871,  -137,  -133,  -871,  -871,  -871,   -15,
-     101,    92,    71,   107,   109,  -871,  -871,  4174,   108,  -871,
-    -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-   10956,  -871,   102,  2791, 10956,  -871,   104,   114,    79,   112,
-    3252,  -871,   113,  -871,  9639,  -871,  -871,  -871,  -132, 10956,
-    2791,   108,  -871,  -871,  2330,  -871,   110,    92,  -871,  -871,
-    2330,   116,  -871,  -871
+    4648,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -305,  -301,
+    -289,  -276,  -246,  -238,  -227,  -182,  -872,  -872,  -872,  -872,
+    -872,  -168,  -872,  -872,  -872,  -872,  -872,   -55,  -872,  -872,
+    -872,  -872,  -872,  -319,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -135,  -120,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -327,  -114,
+     -81,  -124,  7882,  -313,  -872,  -101,  -872,  -872,  -872,  -872,
+    5572,  -872,  -872,  -872,  -872,   -94,  -872,  -872,   952,  -872,
+    -872,  7882,   -73,  -872,  -872,  -872,  6034,   -78,  -252,  -250,
+    -216,  -197,  -136,   -78,  -127,   -49, 12303,  -872,   -13,  -346,
+     -39,  -872,  -309,  -872,   -10,    -9,  7882,  -872,  -872,  -872,
+    7882,   -38,   -37,  -872,  -267,  -872,  -236,  -872,  -872, 10983,
+      -2,  -872,  -872,  -872,     3,   -35,  7882,  -872,    -8,    -6,
+      -1,  -872,  -256,  -872,  -255,    -4,     4,     7,     8,  -237,
+      10,    11,    13,    14,    15,    18,  -232,     9,    19,    27,
+    -188,  -872,    -3,  7882,  -872,    20,  -872,  -229,  -872,  -872,
+    -219,  9223,  -872,  -272,  1414,  -872,  -872,  -872,  -872,  -872,
+      -2,  -277,  -872,  9663,  -265,  -872,   -23,  -872,  -112, 10983,
+   10983,  -872, 10983,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -253,  -872,  -872,  -872,    29,  -204, 11423,    28,
+    -872, 10983,  -872,    31,  -321,    17,    -9,    32,  -872,  -325,
+     -78,  -872,     5,  -872,  -330,    33,  -125, 10983,  -123,  -872,
+    -130,  -119,  -146,  -118,    34,  -103,   -78,  -872, 11863,  -872,
+     -74, 10983,    36,   -49,  -872,  7882,    24,  6496,  -872,  7882,
+   10983,  -872,  -346,  -872,    30,  -872,  -872,   -33,  -133,  -105,
+    -303,   -11,   -14,    21,    23,    48,    52,  -316,    41,  -872,
+   10103,  -872,    42,  -872,  -872,    46,    38,    40,  -872,    64,
+      67,    60, 10543,    74, 10983,    68,    65,    69,    70,    73,
+    -167,  -872,  -872,   -47,  -872,  -114,    77,    31,  -872,  -872,
+    -872,  -872,  -872,  1876,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  5110,    17,  9663,  -261,  8343,  -872,  -872,
+    9663,  7882,  -872,    50,  -872,  -872,  -872,  -203,  -872,  -872,
+   10983,    51,  -872,  -872, 10983,    87,  -872,  -872,  -872, 10983,
+    -872,  -872,  -872,  -312,  -872,  -872,  -200,    80,  -872,  -872,
+    -872,  -872,  -872,  -872,  -199,  -872,  -196,  -872,  -872,  -195,
+      71,  -872,  -872,  -872,  -872,  -169,  -872,  -164,  -872,  -872,
+    -872,  -872,  -872,  -161,  -872,    83,  -872,  -160,    84,  -153,
+      80,  -872,  -278,  -152,  -872,    91,    94,  -872,  -872,    24,
+      -2,   -43,  -872,  -872,  -872,  6958,  -872,  -872,  -872, 10983,
+   10983, 10983, 10983, 10983, 10983, 10983, 10983, 10983, 10983, 10983,
+   10983, 10983, 10983, 10983, 10983, 10983, 10983, 10983,  -872,  -872,
+    -872,    93,  -872,  2338,  -872,  -872,  -872,  2338,  -872, 10983,
+    -872,  -872,   -42, 10983,   -32,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872, 10983, 10983,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    9663,  -872,  -872,   -76,  -872,  7420,  -872,  -872,    96,    95,
+    -872,  -872,  -872,  -872,  -872,  -132,  -131,  -872,  -311,  -872,
+    -330,  -872,  -330,  -872, 10983, 10983,  -872,  -130,  -872,  -130,
+    -872,  -146,  -146,  -872,   101,    34,  -872, 11863,  -872, 10983,
+    -872,  -872,   -41,    17,    24,  -872,  -872,  -872,  -872,  -872,
+     -33,   -33,  -133,  -133,  -105,  -105,  -105,  -105,  -303,  -303,
+     -11,   -14,    21,    23,    48,    52, 10983,  -872,  2338,  4186,
+      59,  3724,  -151,  -872,  -150,  -872,  -872,  -872,  -872,  -872,
+    8783,  -872,  -872,  -872,   105,  -872,    72,  -872,  -149,  -872,
+    -148,  -872,  -141,  -872,  -140,  -872,  -139,  -138,  -872,  -872,
+    -872,   -28,   102,    95,    75,   107,   106,  -872,  -872,  4186,
+     108,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872, 10983,  -872,   100,  2800, 10983,  -872,   104,   109,
+      76,   112,  3262,  -872,   113,  -872,  9663,  -872,  -872,  -872,
+    -137, 10983,  2800,   108,  -872,  -872,  2338,  -872,   110,    95,
+    -872,  -872,  2338,   114,  -872,  -872
 };
 
-  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
-     Performed when YYTABLE does not specify something else to do.  Zero
-     means the default is an error.  */
+/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
+   Performed when YYTABLE does not specify something else to do.  Zero
+   means the default is an error.  */
 static const yytype_int16 yydefact[] =
 {
-       0,   168,   224,   222,   223,   221,   228,   229,   230,   231,
-     232,   233,   234,   235,   236,   225,   226,   227,   237,   238,
-     239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
-     350,   351,   352,   353,   354,   355,   356,   376,   377,   378,
-     379,   380,   381,   382,   391,   404,   405,   392,   393,   395,
-     394,   396,   397,   398,   399,   400,   401,   402,   403,   177,
-     178,   250,   251,   249,   252,   259,   260,   257,   258,   255,
-     256,   253,   254,   282,   283,   284,   294,   295,   296,   279,
-     280,   281,   291,   292,   293,   276,   277,   278,   288,   289,
-     290,   273,   274,   275,   285,   286,   287,   261,   262,   263,
-     297,   298,   299,   264,   265,   266,   309,   310,   311,   267,
-     268,   269,   321,   322,   323,   270,   271,   272,   333,   334,
-     335,   300,   301,   302,   303,   304,   305,   306,   307,   308,
-     312,   313,   314,   315,   316,   317,   318,   319,   320,   324,
-     325,   326,   327,   328,   329,   330,   331,   332,   336,   337,
-     338,   339,   340,   341,   342,   343,   344,   348,   345,   346,
-     347,   532,   533,   534,   536,   182,   360,   361,   384,   387,
-     349,   358,   359,   375,   357,   406,   407,   410,   411,   412,
-     414,   415,   416,   418,   419,   420,   422,   423,   519,   520,
-     383,   385,   386,   362,   363,   364,   408,   365,   369,   370,
-     373,   413,   417,   421,   366,   367,   371,   372,   409,   368,
-     374,   453,   455,   456,   457,   459,   460,   461,   463,   464,
-     465,   467,   468,   469,   471,   472,   473,   475,   476,   477,
-     479,   480,   481,   483,   484,   485,   487,   488,   489,   491,
-     492,   493,   495,   496,   454,   458,   462,   466,   470,   478,
-     482,   486,   474,   490,   494,   497,   498,   499,   500,   501,
+       0,   168,   225,   223,   224,   222,   229,   230,   231,   232,
+     233,   234,   235,   236,   237,   226,   227,   228,   238,   239,
+     240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
+     351,   352,   353,   354,   355,   356,   357,   377,   378,   379,
+     380,   381,   382,   383,   392,   405,   406,   393,   394,   396,
+     395,   397,   398,   399,   400,   401,   402,   403,   404,   177,
+     178,   251,   252,   250,   253,   260,   261,   258,   259,   256,
+     257,   254,   255,   283,   284,   285,   295,   296,   297,   280,
+     281,   282,   292,   293,   294,   277,   278,   279,   289,   290,
+     291,   274,   275,   276,   286,   287,   288,   262,   263,   264,
+     298,   299,   300,   265,   266,   267,   310,   311,   312,   268,
+     269,   270,   322,   323,   324,   271,   272,   273,   334,   335,
+     336,   301,   302,   303,   304,   305,   306,   307,   308,   309,
+     313,   314,   315,   316,   317,   318,   319,   320,   321,   325,
+     326,   327,   328,   329,   330,   331,   332,   333,   337,   338,
+     339,   340,   341,   342,   343,   344,   345,   349,   346,   347,
+     348,   533,   534,   535,   536,   538,   182,   361,   362,   385,
+     388,   350,   359,   360,   376,   358,   407,   408,   411,   412,
+     413,   415,   416,   417,   419,   420,   421,   423,   424,   520,
+     521,   384,   386,   387,   363,   364,   365,   409,   366,   370,
+     371,   374,   414,   418,   422,   367,   368,   372,   373,   410,
+     369,   375,   454,   456,   457,   458,   460,   461,   462,   464,
+     465,   466,   468,   469,   470,   472,   473,   474,   476,   477,
+     478,   480,   481,   482,   484,   485,   486,   488,   489,   490,
+     492,   493,   494,   496,   497,   455,   459,   463,   467,   471,
+     479,   483,   487,   475,   491,   495,   498,   499,   500,   501,
      502,   503,   504,   505,   506,   507,   508,   509,   510,   511,
-     512,   513,   514,   515,   516,   517,   518,   388,   389,   390,
-     424,   433,   435,   429,   434,   436,   437,   439,   440,   441,
-     443,   444,   445,   447,   448,   449,   451,   452,   425,   426,
-     427,   438,   428,   430,   431,   432,   442,   446,   450,   524,
-     525,   528,   529,   530,   531,   526,   527,     0,     0,     0,
-       0,     0,     0,     0,     0,   166,   167,   521,   522,   523,
-       0,   629,   137,   539,   540,   541,     0,   538,   172,   170,
-     171,   169,     0,   220,   173,   175,   176,   174,   139,   138,
-       0,   203,   184,   186,   181,   188,   190,   185,   187,   183,
-     189,   191,   179,   180,   206,   192,   199,   200,   201,   202,
-     193,   194,   195,   196,   197,   198,   140,   141,   143,   142,
-     144,   146,   147,   145,   205,   154,   628,     0,   630,     0,
-     114,   113,     0,   125,   130,   161,   160,   158,   162,     0,
-     155,   157,   163,   135,   216,   159,   537,     0,   625,   627,
-       0,     0,   164,   165,   535,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   544,     0,     0,     0,
-      99,     0,    94,     0,   109,     0,   121,   115,   123,     0,
-     124,     0,    97,   131,   102,     0,   156,   136,     0,   209,
-     215,     1,   626,     0,     0,     0,    96,     0,     0,     0,
-     637,     0,   695,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   635,     0,
-     633,     0,     0,   542,   151,   153,     0,   149,   207,     0,
-       0,   100,     0,     0,   631,   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,   218,
-       0,    36,    34,     0,   210,   111,     0,    95,     0,     0,
-     693,     0,   645,     0,     0,     0,     0,     0,   662,     0,
-       0,     0,     0,     0,     0,     0,   687,     0,   660,     0,
-       0,     0,     0,    98,     0,     0,     0,   546,     0,     0,
-     148,     0,   204,     0,   211,    45,    49,    52,    55,    60,
-      63,    65,    67,    69,    71,    73,    75,     0,     0,   101,
-     573,   582,   586,     0,     0,     0,   607,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    45,    78,
-      91,     0,   560,     0,   163,   135,   563,   584,   562,   570,
-     561,     0,   564,   565,   588,   566,   595,   567,   568,   603,
-     569,     0,   119,     0,   127,     0,   554,   134,     0,     0,
-     107,     0,   104,    38,    39,     0,    22,    23,     0,     0,
-      28,    27,     0,   220,    31,    33,    40,     0,   217,   112,
-     697,     0,   698,   638,     0,     0,   696,   657,   653,   654,
-     655,   656,     0,   651,     0,    93,   658,     0,     0,   672,
-     673,   674,   675,     0,   670,     0,   679,   680,   681,   682,
-     678,     0,   676,     0,   683,     0,     0,     0,     2,   691,
-     216,     0,   689,     0,     0,   632,   634,     0,   552,     0,
-     550,   545,   547,     0,   152,   150,   208,     0,     0,     0,
+     512,   513,   514,   515,   516,   517,   518,   519,   389,   390,
+     391,   425,   434,   436,   430,   435,   437,   438,   440,   441,
+     442,   444,   445,   446,   448,   449,   450,   452,   453,   426,
+     427,   428,   439,   429,   431,   432,   433,   443,   447,   451,
+     525,   526,   529,   530,   531,   532,   527,   528,     0,     0,
+       0,     0,     0,     0,     0,     0,   166,   167,   522,   523,
+     524,     0,   631,   137,   541,   542,   543,     0,   540,   172,
+     170,   171,   169,     0,   221,   173,   175,   176,   174,   139,
+     138,     0,   203,   184,   186,   181,   188,   190,   185,   187,
+     183,   189,   191,   179,   180,   206,   192,   199,   200,   201,
+     202,   193,   194,   195,   196,   197,   198,   140,   141,   143,
+     142,   144,   146,   147,   145,   205,   154,   630,     0,   632,
+       0,   114,   113,     0,   125,   130,   161,   160,   158,   162,
+       0,   155,   157,   163,   135,   216,   159,   539,     0,   627,
+     629,     0,     0,   164,   165,   537,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   546,     0,     0,
+       0,    99,     0,    94,     0,   109,     0,   121,   115,   123,
+       0,   124,     0,    97,   131,   102,     0,   156,   136,     0,
+     209,   215,     1,   628,     0,     0,     0,    96,     0,     0,
+       0,   639,     0,   697,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   637,
+       0,   635,     0,     0,   544,   151,   153,     0,   149,   207,
+       0,     0,   100,     0,     0,   633,   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,
+     219,     0,    36,   218,     0,   210,   111,     0,    95,     0,
+       0,   695,     0,   647,     0,     0,     0,     0,     0,   664,
+       0,     0,     0,     0,     0,     0,     0,   689,     0,   662,
+       0,     0,     0,     0,    98,     0,     0,     0,   548,     0,
+       0,   148,     0,   204,     0,   211,    45,    49,    52,    55,
+      60,    63,    65,    67,    69,    71,    73,    75,     0,    34,
+       0,   101,   575,   584,   588,     0,     0,     0,   609,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    76,   212,   213,     0,
-     572,     0,   605,   618,   617,     0,   609,     0,   621,   619,
-       0,     0,     0,   602,   622,   623,   624,   571,    81,    82,
-      84,    83,    86,    87,    88,    89,    90,    85,    80,     0,
-       0,   587,   583,   585,   589,   596,   604,   129,     0,   557,
-     558,     0,   133,     0,   108,     4,     0,    24,    21,    32,
-     219,   641,   643,     0,     0,   694,     0,   647,     0,   646,
-       0,   649,     0,     0,   664,     0,   663,     0,   666,     0,
-       0,   668,     0,     0,   688,     0,   685,     0,   661,   636,
-       0,   553,     0,   548,   543,    46,    47,    48,    51,    50,
-      53,    54,    58,    59,    56,    57,    61,    62,    64,    66,
-      68,    70,    72,    74,     0,   214,   574,     0,     0,     0,
-       0,   620,     0,   601,    79,    92,   128,   555,     0,   106,
-      19,   639,     0,   640,     0,   652,     0,   659,     0,   671,
-       0,   677,     0,   684,     0,     0,   690,   549,   551,     0,
-       0,   593,     0,     0,     0,   612,   611,   614,   580,   597,
-     556,   559,   642,   644,   648,   650,   665,   667,   669,   686,
-       0,   575,     0,     0,     0,   613,     0,     0,   592,     0,
-       0,   590,     0,    77,     0,   577,   606,   576,     0,   615,
-       0,   580,   579,   581,   599,   594,     0,   616,   610,   591,
-     600,     0,   608,   598
+      45,    78,    91,     0,   562,     0,   163,   135,   565,   586,
+     564,   572,   563,     0,   566,   567,   590,   568,   597,   569,
+     570,   605,   571,     0,   119,     0,   127,     0,   556,   134,
+       0,     0,   107,     0,   104,    38,    39,     0,    22,    23,
+       0,     0,    28,    27,     0,   221,    31,    33,    40,     0,
+     217,   112,   699,     0,   700,   640,     0,     0,   698,   659,
+     655,   656,   657,   658,     0,   653,     0,    93,   660,     0,
+       0,   674,   675,   676,   677,     0,   672,     0,   681,   682,
+     683,   684,   680,     0,   678,     0,   685,     0,     0,     0,
+       2,   693,   216,     0,   691,     0,     0,   634,   636,     0,
+     554,     0,   552,   547,   549,     0,   152,   150,   208,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    76,   212,
+     213,     0,   574,     0,   607,   620,   619,     0,   611,     0,
+     623,   621,     0,     0,     0,   604,   624,   625,   626,   573,
+      81,    82,    84,    83,    86,    87,    88,    89,    90,    85,
+      80,     0,     0,   589,   585,   587,   591,   598,   606,   129,
+       0,   559,   560,     0,   133,     0,   108,     4,     0,    24,
+      21,    32,   220,   643,   645,     0,     0,   696,     0,   649,
+       0,   648,     0,   651,     0,     0,   666,     0,   665,     0,
+     668,     0,     0,   670,     0,     0,   690,     0,   687,     0,
+     663,   638,     0,   555,     0,   550,   545,    46,    47,    48,
+      51,    50,    53,    54,    58,    59,    56,    57,    61,    62,
+      64,    66,    68,    70,    72,    74,     0,   214,   576,     0,
+       0,     0,     0,   622,     0,   603,    79,    92,   128,   557,
+       0,   106,    19,   641,     0,   642,     0,   654,     0,   661,
+       0,   673,     0,   679,     0,   686,     0,     0,   692,   551,
+     553,     0,     0,   595,     0,     0,     0,   614,   613,   616,
+     582,   599,   558,   561,   644,   646,   650,   652,   667,   669,
+     671,   688,     0,   577,     0,     0,     0,   615,     0,     0,
+     594,     0,     0,   592,     0,    77,     0,   579,   608,   578,
+       0,   617,     0,   582,   581,   583,   601,   596,     0,   618,
+     612,   593,   602,     0,   610,   600
 };
 
-  /* YYPGOTO[NTERM-NUM].  */
+/* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -871,  -544,  -871,  -871,  -871,  -871,  -871,  -871,  -871,  -871,
-    -871,  -871,  -435,  -871,  -382,  -381,  -473,  -384,  -268,  -264,
-    -269,  -267,  -266,  -262,  -871,  -485,  -871,  -498,  -871,  -501,
-    -533,    11,  -871,  -871,  -871,     7,  -394,  -871,  -871,    45,
-      44,    46,  -871,  -871,  -407,  -871,  -871,  -871,  -871,  -101,
-    -871,  -390,  -377,  -871,     9,  -871,     0,  -431,  -871,  -871,
-    -871,  -553,   150,  -871,  -871,  -871,  -552,  -557,  -230,  -344,
-    -613,  -871,  -370,  -625,  -870,  -871,  -427,  -871,  -871,  -436,
-    -434,  -871,  -871,    62,  -730,  -363,  -871,  -136,  -871,  -399,
-    -871,  -135,  -871,  -871,  -871,  -871,  -130,  -871,  -871,  -871,
-    -871,  -871,  -871,  -871,  -871,    93,  -871,  -871,     2,  -871,
-     -71,  -281,  -445,  -871,  -871,  -871,  -306,  -305,  -314,  -871,
-    -871,  -308,  -303,  -304,  -302,  -301,  -871,  -317,  -299,  -871,
-    -398,  -536
+    -872,  -544,  -872,  -872,  -872,  -872,  -872,  -872,  -872,  -872,
+    -872,  -872,  -436,  -872,  -392,  -391,  -490,  -390,  -269,  -266,
+    -268,  -264,  -262,  -260,  -872,  -482,  -872,  -499,  -872,  -492,
+    -534,     6,  -872,  -872,  -872,     1,  -403,  -872,  -872,    45,
+      44,    49,  -872,  -872,  -406,  -872,  -872,  -872,  -872,  -104,
+    -872,  -389,  -375,  -872,    12,  -872,     0,  -433,  -872,  -872,
+    -872,  -553,   145,  -872,  -872,  -872,  -560,  -556,  -233,  -344,
+    -614,  -872,  -373,  -626,  -871,  -872,  -430,  -872,  -872,  -440,
+    -437,  -872,  -872,    63,  -737,  -363,  -872,  -144,  -872,  -399,
+    -872,  -142,  -872,  -872,  -872,  -872,  -134,  -872,  -872,  -872,
+    -872,  -872,  -872,  -872,  -872,    97,  -872,  -872,     2,  -872,
+     -71,  -308,  -416,  -872,  -872,  -872,  -304,  -307,  -302,  -872,
+    -872,  -315,  -310,  -306,  -300,  -314,  -872,  -299,  -317,  -872,
+    -395,  -538
 };
 
-  /* YYDEFGOTO[NTERM-NUM].  */
+/* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,   529,   530,   531,   796,   532,   533,   534,   535,   536,
-     537,   538,   618,   540,   586,   587,   588,   589,   590,   591,
-     592,   593,   594,   595,   596,   619,   854,   620,   779,   621,
-     709,   622,   387,   649,   507,   623,   389,   390,   391,   436,
-     437,   438,   392,   393,   394,   395,   396,   397,   486,   487,
-     398,   399,   400,   401,   541,   489,   542,   492,   449,   450,
-     543,   404,   405,   406,   578,   482,   576,   577,   719,   720,
-     647,   791,   626,   627,   628,   629,   630,   751,   890,   926,
-     918,   919,   920,   927,   631,   632,   633,   634,   921,   893,
-     635,   636,   922,   941,   637,   638,   639,   857,   755,   859,
-     897,   916,   917,   640,   407,   408,   409,   433,   641,   479,
-     480,   459,   460,   803,   804,   411,   682,   683,   687,   412,
-     413,   693,   694,   701,   702,   705,   414,   711,   712,   415,
-     461,   462
+       0,   530,   531,   532,   798,   533,   534,   535,   536,   537,
+     538,   539,   620,   541,   587,   588,   589,   590,   591,   592,
+     593,   594,   595,   596,   597,   621,   856,   622,   781,   623,
+     711,   624,   388,   651,   508,   625,   390,   391,   392,   437,
+     438,   439,   393,   394,   395,   396,   397,   398,   487,   488,
+     399,   400,   401,   402,   542,   490,   599,   493,   450,   451,
+     544,   405,   406,   407,   579,   483,   577,   578,   721,   722,
+     649,   793,   628,   629,   630,   631,   632,   753,   892,   928,
+     920,   921,   922,   929,   633,   634,   635,   636,   923,   895,
+     637,   638,   924,   943,   639,   640,   641,   859,   757,   861,
+     899,   918,   919,   642,   408,   409,   410,   434,   643,   480,
+     481,   460,   461,   805,   806,   412,   684,   685,   689,   413,
+     414,   695,   696,   703,   704,   707,   415,   713,   714,   416,
+     462,   463
 };
 
-  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
-     positive, shift that token.  If negative, reduce the rule whose
-     number is the opposite.  If YYTABLE_NINF, syntax error.  */
+/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
+   positive, shift that token.  If negative, reduce the rule whose
+   number is the opposite.  If YYTABLE_NINF, syntax error.  */
 static const yytype_int16 yytable[] =
 {
-     403,   439,   410,   454,   646,   597,   783,   388,   454,   402,
-     655,   386,   503,   539,   710,   676,   453,   700,   544,   722,
-     455,   856,   446,   686,   475,   455,   723,   734,   735,   745,
-     787,   676,   790,   670,   426,   792,   671,   714,   801,   664,
-     667,   432,   670,   925,   571,   439,   724,   501,   572,   490,
-     933,   484,   668,   677,   430,   585,   502,   656,   657,   416,
-     925,   417,   446,   736,   737,   746,   427,   672,   642,   644,
-     418,   685,   802,   653,   654,   485,   672,   -35,   446,   658,
-     431,   419,   685,   659,  -692,   685,   678,   679,   680,   681,
-    -692,   490,   574,   490,   685,   598,   550,   793,   424,   491,
-     643,   448,   551,   599,   673,   666,   730,   598,   731,   760,
-     673,   762,   673,   749,   648,   673,   598,   673,   434,   673,
-     673,   585,   504,   788,   673,   505,   441,   552,   506,   442,
-     858,   463,   585,   553,   464,   585,   465,   467,   469,   471,
-     473,   474,   477,   558,   585,   646,   566,   646,   580,   559,
-     646,   674,   567,   582,   581,   661,   795,   797,   867,   583,
-     868,   662,   780,   585,   799,   805,   722,   707,   807,   871,
-     420,   551,   421,   872,   808,   866,   768,   769,   770,   771,
-     772,   773,   774,   775,   776,   777,   574,   809,   574,   811,
-     780,   863,   814,   810,   816,   812,   778,   446,   815,   818,
-     817,   821,   824,   826,   940,   819,   898,   822,   825,   827,
-     899,   904,   780,   905,   906,   907,   780,   808,   908,   812,
-     815,   819,   909,   936,   822,   422,   873,   423,   827,   780,
-     874,   783,   800,   435,   454,   428,   722,   429,   696,   697,
-     698,   699,   520,   689,   690,   691,   692,   453,   448,   466,
-     651,   455,   464,   652,   780,   901,   860,   781,   483,   574,
-     862,   842,   843,   844,   845,   468,   470,   472,   464,   464,
-     464,   456,   710,   493,   710,   700,   700,   732,   733,   877,
-     686,   864,   865,   476,   443,   684,   464,   831,   464,   676,
-     646,   458,   835,   836,   837,   585,   585,   585,   585,   585,
-     585,   585,   585,   585,   585,   585,   585,   585,   585,   585,
-     585,   935,   478,   688,   695,   783,   464,   464,   703,   706,
-     713,   464,   464,   464,   738,   739,   832,   685,   685,   833,
-     488,   780,   832,   574,   861,   887,   333,   334,   335,   330,
-     685,   499,   685,   727,   728,   729,   780,   910,   838,   839,
-     500,   840,   841,   889,   846,   847,   891,   490,   545,   546,
-     547,   548,   554,   650,   740,   549,   555,   556,   675,   557,
-     646,   560,   568,   561,   562,   563,   564,   585,   585,   565,
-     569,   570,   598,   660,   573,   579,   665,   501,   704,   743,
-     585,   440,   585,   671,   744,   715,   891,   747,   741,   447,
-     402,   750,   752,   574,   742,   753,   718,   403,   402,   410,
-     403,   726,   923,   928,   388,   403,   402,   410,   386,   402,
-     754,   756,   457,   757,   402,   481,   646,   758,   937,   761,
-     763,   -36,   -34,   794,   764,   440,   495,   765,   766,   440,
-     767,   798,   -29,   806,   402,   813,   820,   823,   402,   828,
-     892,   829,   855,   780,   870,   447,   883,   894,   902,   903,
-     911,   912,   913,   914,   402,   924,  -578,   455,   929,   930,
-     600,   934,   848,   850,   942,   943,   851,   849,   852,   496,
-     725,   931,   575,   853,   497,   498,   425,   830,   888,   895,
-     892,   402,   932,   625,   938,   494,   896,   939,   915,   878,
-     452,   716,   624,   875,   876,   784,   785,   455,   885,   880,
-       0,   786,   879,     0,     0,     0,   882,   881,     0,     0,
-       0,     0,   884,     0,     0,     0,     0,     0,   886,     0,
+     404,   389,   411,   440,   648,   455,   387,   785,   454,   598,
+     455,   504,   403,   540,   678,   712,   858,   545,   702,   725,
+     657,   724,   456,   688,   679,   447,   747,   456,   476,   672,
+     678,   789,   673,   792,   736,   737,   794,   716,   431,   666,
+     427,   669,   803,   672,   927,   485,   726,   440,   491,   442,
+     417,   935,   443,   670,   418,   586,   492,   680,   681,   682,
+     683,   927,   748,   674,   432,   447,   419,   644,   646,   486,
+     738,   739,   428,   655,   656,   687,   804,   674,  -694,   420,
+     491,   447,   658,   659,  -694,   600,   687,   645,   502,   687,
+     491,   795,   600,   601,   575,   449,   600,   503,   687,   650,
+     551,   553,   -35,   790,   660,   668,   552,   554,   661,   421,
+     466,   468,   470,   472,   474,   475,   478,   422,   751,   559,
+     762,   586,   764,   505,   567,   560,   506,   581,   423,   507,
+     568,   860,   586,   582,   675,   586,   464,   583,   467,   465,
+     675,   465,   675,   584,   586,   675,   648,   675,   648,   675,
+     675,   648,   663,   797,   675,   676,   807,   809,   664,   782,
+     811,   813,   552,   810,   586,   801,   812,   814,   799,   724,
+     572,   709,   469,   424,   573,   465,   868,   770,   771,   772,
+     773,   774,   775,   776,   777,   778,   779,   816,   575,   425,
+     575,   471,   818,   817,   465,   820,   823,   780,   819,   942,
+     447,   821,   824,   826,   828,   900,   901,   906,   907,   827,
+     829,   782,   782,   810,   814,   908,   909,   910,   911,   938,
+     429,   817,   821,   824,   829,   782,   873,   875,   734,   735,
+     874,   876,   785,   802,   732,   430,   733,   455,   436,   724,
+     454,   698,   699,   700,   701,   521,   844,   845,   846,   847,
+     653,   433,   473,   654,   456,   465,   903,   691,   692,   693,
+     694,   477,   575,   686,   465,   690,   465,   862,   465,   697,
+     705,   864,   465,   465,   712,   435,   712,   702,   702,   449,
+     879,   688,   866,   867,   869,   708,   870,   833,   465,   678,
+     444,   648,   457,   837,   838,   839,   586,   586,   586,   586,
+     586,   586,   586,   586,   586,   586,   586,   586,   586,   586,
+     586,   586,   937,   459,   715,   782,   785,   465,   783,   834,
+     782,   834,   835,   863,   889,   334,   335,   336,   740,   741,
+     782,   865,   687,   687,   782,   912,   575,   729,   730,   731,
+     840,   841,   479,   842,   843,   687,   484,   687,   331,   494,
+     848,   849,   489,   500,   501,   491,   547,   548,   549,   546,
+     555,   550,   574,   742,   891,   569,   556,   893,   652,   557,
+     558,   648,   561,   562,   600,   563,   564,   565,   586,   586,
+     566,   570,   571,   667,   580,   662,   -34,   502,   706,   745,
+     673,   586,   441,   586,   717,   746,   677,   743,   744,   749,
+     448,   754,   752,   755,   403,   756,   575,   893,   404,   389,
+     411,   404,   403,   925,   387,   720,   404,   458,   411,   758,
+     403,   728,   759,   403,   930,   760,   482,   648,   403,   763,
+     766,   765,   -36,   815,   767,   768,   441,   496,   769,   939,
+     441,   796,   800,   -29,   808,   822,   825,   830,   403,   543,
+     831,   857,   403,   894,   872,   885,   448,   782,   896,   904,
+     905,   916,   913,   915,   926,   932,   914,  -580,   403,   931,
+     456,   602,   936,   850,   945,   944,   852,   851,   727,   933,
+     497,   853,   426,   576,   854,   498,   832,   855,   897,   499,
+     890,   934,   940,   894,   627,   403,   941,   495,   898,   786,
+     917,   787,   718,   877,   882,   453,   626,   881,   878,   788,
+     456,   886,   888,   880,     0,     0,   884,     0,     0,     0,
+       0,   883,     0,     0,     0,     0,     0,     0,   887,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   669,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   671,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   717,     0,   575,     0,   575,     0,
-       0,     0,     0,   402,     0,   402,     0,   402,     0,     0,
+       0,     0,     0,     0,     0,   719,     0,   576,     0,   576,
+       0,     0,     0,     0,     0,     0,     0,   403,     0,   403,
+       0,   403,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   625,     0,     0,     0,     0,     0,     0,     0,     0,
-     624,   403,     0,     0,     0,     0,     0,     0,     0,   575,
-     402,     0,     0,     0,     0,     0,     0,     0,   402,     0,
+       0,     0,     0,   627,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   404,     0,   626,     0,     0,     0,     0,
+       0,   576,     0,     0,     0,   403,     0,     0,     0,     0,
+       0,     0,     0,   403,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   576,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   403,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   575,     0,     0,     0,     0,     0,     0,
-       0,     0,   402,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   625,     0,     0,     0,   625,     0,     0,     0,     0,
-     624,     0,     0,     0,   624,     0,     0,     0,     0,     0,
+       0,     0,     0,   627,     0,     0,     0,   627,     0,     0,
+       0,     0,     0,     0,     0,   626,     0,     0,     0,   626,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   575,     0,     0,     0,     0,     0,     0,
-       0,     0,   402,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   576,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   403,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   625,   625,     0,   625,
-       0,   410,     0,     0,     0,   624,   624,     0,   624,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   627,   627,
+       0,   627,     0,   411,     0,     0,     0,     0,     0,     0,
+     626,   626,     0,   626,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   627,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   625,     0,     0,
-       0,     0,     0,     0,     0,     0,   624,     0,     0,     0,
-       0,     0,     0,   625,     0,     0,     0,     0,     0,     0,
-     625,     0,   624,     0,     0,     0,     0,     0,     0,   624,
-     625,     0,     0,     0,   625,     0,     0,     0,     0,   624,
-     625,     0,     0,   624,     0,     0,     0,   451,     0,   624,
-       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,   327,   328,   329,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   330,     0,     0,     0,     0,     0,     0,
-       0,   331,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   332,   333,   334,   335,   336,
-       0,     0,     0,     0,     0,     0,     0,     0,   337,   338,
-     339,   340,   341,   342,   343,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     344,   345,   346,   347,   348,   349,   350,     0,     0,     0,
-       0,     0,     0,     0,     0,   351,     0,   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,   382,   383,   384,
-     385,     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,   327,   328,   329,
-       0,     0,   508,   509,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   510,   511,     0,   330,     0,   600,   601,     0,     0,
-       0,     0,   602,   512,   513,   514,   515,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   332,   333,   334,   335,
-     336,     0,     0,     0,   516,   517,   518,   519,   520,   337,
-     338,   339,   340,   341,   342,   343,   603,   604,   605,   606,
-       0,   607,   608,   609,   610,   611,   612,   613,   614,   615,
-     616,   344,   345,   346,   347,   348,   349,   350,   521,   522,
-     523,   524,   525,   526,   527,   528,   351,   617,   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,   382,   383,
-     384,   385,     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,   327,   328,
-     329,     0,     0,   508,   509,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   510,   511,     0,   330,     0,   600,   782,     0,
-       0,     0,     0,   602,   512,   513,   514,   515,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   332,   333,   334,
-     335,   336,     0,     0,     0,   516,   517,   518,   519,   520,
-     337,   338,   339,   340,   341,   342,   343,   603,   604,   605,
-     606,     0,   607,   608,   609,   610,   611,   612,   613,   614,
-     615,   616,   344,   345,   346,   347,   348,   349,   350,   521,
-     522,   523,   524,   525,   526,   527,   528,   351,   617,   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,   382,
-     383,   384,   385,     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,   327,
-     328,   329,     0,     0,   508,   509,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   510,   511,     0,   330,     0,   600,     0,
-       0,     0,     0,     0,   602,   512,   513,   514,   515,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   332,   333,
-     334,   335,   336,     0,     0,     0,   516,   517,   518,   519,
-     520,   337,   338,   339,   340,   341,   342,   343,   603,   604,
-     605,   606,     0,   607,   608,   609,   610,   611,   612,   613,
-     614,   615,   616,   344,   345,   346,   347,   348,   349,   350,
-     521,   522,   523,   524,   525,   526,   527,   528,   351,   617,
-     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,
-     382,   383,   384,   385,     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,
-     327,   328,   329,     0,     0,   508,   509,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   510,   511,     0,   330,     0,   493,
-       0,     0,     0,     0,     0,   602,   512,   513,   514,   515,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   332,
-     333,   334,   335,   336,     0,     0,     0,   516,   517,   518,
-     519,   520,   337,   338,   339,   340,   341,   342,   343,   603,
-     604,   605,   606,     0,   607,   608,   609,   610,   611,   612,
-     613,   614,   615,   616,   344,   345,   346,   347,   348,   349,
-     350,   521,   522,   523,   524,   525,   526,   527,   528,   351,
-     617,   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,   382,   383,   384,   385,     1,     2,     3,     4,     5,
+       0,   626,     0,     0,     0,   627,     0,     0,     0,     0,
+       0,     0,   627,     0,     0,     0,     0,   626,     0,     0,
+       0,     0,   627,     0,   626,     0,   627,     0,     0,     0,
+       0,     0,   627,     0,   626,     0,     0,     0,   626,     0,
+       0,     0,   452,     0,   626,     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,
@@ -2062,66 +1791,20 @@
      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,   329,     0,     0,   508,   509,     0,     0,
+     326,   327,   328,   329,   330,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   510,   511,     0,   330,     0,
-       0,     0,     0,     0,     0,     0,   602,   512,   513,   514,
-     515,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     332,   333,   334,   335,   336,     0,     0,     0,   516,   517,
-     518,   519,   520,   337,   338,   339,   340,   341,   342,   343,
-     603,   604,   605,   606,     0,   607,   608,   609,   610,   611,
-     612,   613,   614,   615,   616,   344,   345,   346,   347,   348,
-     349,   350,   521,   522,   523,   524,   525,   526,   527,   528,
-     351,   617,   352,   353,   354,   355,   356,   357,   358,   359,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   331,
+       0,     0,     0,     0,     0,     0,     0,   332,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   333,   334,   335,   336,   337,     0,     0,     0,     0,
+       0,     0,     0,     0,   338,   339,   340,   341,   342,   343,
+     344,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   345,   346,   347,   348,
+     349,   350,   351,     0,     0,     0,     0,     0,     0,     0,
+       0,   352,     0,   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,   382,   383,   384,   385,     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,   327,   328,   329,     0,     0,   508,   509,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   510,   511,     0,   330,
-       0,     0,     0,     0,     0,     0,     0,   602,   512,   513,
-     514,   515,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   332,   333,   334,   335,   336,     0,     0,     0,   516,
-     517,   518,   519,   520,   337,   338,   339,   340,   341,   342,
-     343,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   344,   345,   346,   347,
-     348,   349,   350,   521,   522,   523,   524,   525,   526,   527,
-     528,   351,     0,   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,   382,   383,   384,   385,     1,     2,     3,
+     380,   381,   382,   383,   384,   385,   386,     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,
@@ -2153,67 +1836,21 @@
      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,   327,   328,   329,     0,     0,   508,   509,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   510,   511,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   512,
-     513,   514,   515,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   332,   333,   334,   335,     0,     0,     0,     0,
-     516,   517,   518,   519,   520,   337,   338,   339,   340,   341,
-     342,   343,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   344,   345,   346,
-     347,   348,   349,   350,   521,   522,   523,   524,   525,   526,
-     527,   528,   351,     0,   352,   353,   354,   355,   356,   357,
+     314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
+     324,   325,   326,   327,   328,   329,   330,     0,     0,   509,
+     510,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   511,   512,
+       0,   331,     0,   602,   603,     0,     0,     0,     0,   604,
+     513,   514,   515,   516,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   333,   334,   335,   336,   337,     0,     0,
+       0,   517,   518,   519,   520,   521,   338,   339,   340,   341,
+     342,   343,   344,   605,   606,   607,   608,     0,   609,   610,
+     611,   612,   613,   614,   615,   616,   617,   618,   345,   346,
+     347,   348,   349,   350,   351,   522,   523,   524,   525,   526,
+     527,   528,   529,   352,   619,   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,   382,   383,   384,   385,     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,   327,   328,   329,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   330,     0,     0,     0,     0,     0,     0,     0,   331,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   332,   333,   334,   335,   336,     0,     0,
-       0,     0,     0,     0,     0,     0,   337,   338,   339,   340,
-     341,   342,   343,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   344,   345,
-     346,   347,   348,   349,   350,     0,     0,     0,     0,     0,
-       0,     0,     0,   351,     0,   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,   382,   383,   384,   385,     1,
+     378,   379,   380,   381,   382,   383,   384,   385,   386,     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,
@@ -2245,971 +1882,22 @@
      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,   327,   328,   329,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       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,   333,   334,   335,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   337,   338,   339,
-     340,   341,   342,   343,   603,     0,     0,   606,     0,   607,
-     608,     0,     0,   611,     0,     0,     0,     0,     0,   344,
-     345,   346,   347,   348,   349,   350,     0,     0,     0,     0,
-       0,     0,     0,     0,   351,     0,   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,   382,   383,   384,   385,
-       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,   327,   328,   329,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   444,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   332,   333,   334,   335,     0,
-       0,     0,     0,     0,     0,     0,     0,   445,   337,   338,
-     339,   340,   341,   342,   343,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     344,   345,   346,   347,   348,   349,   350,     0,     0,     0,
-       0,     0,     0,     0,     0,   351,     0,   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,   382,   383,   384,
-     385,     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,   327,   328,   329,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   330,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   332,   333,   334,   335,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   337,
-     338,   339,   340,   341,   342,   343,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   344,   345,   346,   347,   348,   349,   350,     0,     0,
-       0,     0,     0,     0,     0,     0,   351,     0,   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,   382,   383,
-     384,   385,     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,   327,   328,
-     329,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   721,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   332,   333,   334,
-     335,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     337,   338,   339,   340,   341,   342,   343,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   344,   345,   346,   347,   348,   349,   350,     0,
-       0,     0,     0,     0,     0,     0,     0,   351,     0,   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,   382,
-     383,   384,   385,     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,   327,
-     328,   329,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   834,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   332,   333,
-     334,   335,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   337,   338,   339,   340,   341,   342,   343,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   344,   345,   346,   347,   348,   349,   350,
-       0,     0,     0,     0,     0,     0,     0,     0,   351,     0,
-     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,
-     382,   383,   384,   385,     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,
-     327,   328,   329,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     869,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   332,
-     333,   334,   335,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   337,   338,   339,   340,   341,   342,   343,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   344,   345,   346,   347,   348,   349,
-     350,     0,     0,     0,     0,     0,     0,     0,     0,   351,
-       0,   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,   382,   383,   384,   385,     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,   327,   328,   329,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     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,   333,   334,   335,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   337,   338,   339,   340,   341,   342,   343,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   344,   345,   346,   347,   348,
-     349,   350,     0,     0,     0,     0,     0,     0,     0,     0,
-     351,     0,   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,   382,   383,   384,   385,     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,   327,   328,   329,     0,     0,   508,   509,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   510,   511,     0,     0,     0,
-     645,   789,     0,     0,     0,     0,     0,   512,   513,   514,
-     515,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   516,   517,
-     518,   519,   520,   337,     0,     0,     0,     0,   342,   343,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   521,   522,   523,   524,   525,   526,   527,   528,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   364,     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,
-     327,   328,   329,     0,     0,   508,   509,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   510,   511,     0,     0,     0,   645,
-     900,     0,     0,     0,     0,     0,   512,   513,   514,   515,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   516,   517,   518,
-     519,   520,   337,     0,     0,     0,     0,   342,   343,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   521,   522,   523,   524,   525,   526,   527,   528,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   364,     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,   327,
-     328,   329,     0,     0,   508,   509,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   510,   511,     0,     0,   584,     0,     0,
-       0,     0,     0,     0,     0,   512,   513,   514,   515,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   516,   517,   518,   519,
-     520,   337,     0,     0,     0,     0,   342,   343,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     521,   522,   523,   524,   525,   526,   527,   528,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   364,     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,   327,   328,
-     329,     0,     0,   508,   509,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   510,   511,     0,     0,     0,   645,     0,     0,
-       0,     0,     0,     0,   512,   513,   514,   515,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   516,   517,   518,   519,   520,
-     337,     0,     0,     0,     0,   342,   343,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   521,
-     522,   523,   524,   525,   526,   527,   528,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   364,     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,   327,   328,   329,
-       0,     0,   508,   509,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   510,   511,     0,     0,   748,     0,     0,     0,     0,
-       0,     0,     0,   512,   513,   514,   515,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   516,   517,   518,   519,   520,   337,
-       0,     0,     0,     0,   342,   343,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   521,   522,
-     523,   524,   525,   526,   527,   528,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     364,     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,   327,   328,   329,     0,
-       0,   508,   509,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     510,   511,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   759,   512,   513,   514,   515,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   516,   517,   518,   519,   520,   337,     0,
-       0,     0,     0,   342,   343,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   521,   522,   523,
-     524,   525,   526,   527,   528,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   364,
-       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,   327,   328,   329,     0,     0,
-     508,   509,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   510,
-     511,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   512,   513,   514,   515,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   516,   517,   518,   519,   520,   337,     0,     0,
-       0,     0,   342,   343,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   521,   522,   523,   524,
-     525,   526,   527,   528,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   364,     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,   327,   328,   329,     0,     0,   508,
-     509,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   510,   511,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     512,   513,   514,   515,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   516,   517,   518,   519,   520,   337,     0,     0,     0,
-       0,   342,   663,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   521,   522,   523,   524,   525,
-     526,   527,   528,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   364,     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,   327,   328,   329,     0,     0,   508,   509,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   510,   511,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   512,
-     513,   514,   515,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     516,   517,   518,   519,   708,   337,     0,     0,     0,     0,
-     342,   343,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   521,   522,   523,   524,   525,   526,
-     527,   528,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   364,     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,   327,   328,   329,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   337,     0,     0,     0,     0,   342,
-     343
-};
-
-static const yytype_int16 yycheck[] =
-{
-       0,   391,     0,   410,   502,   490,   631,     0,   415,     0,
-     511,     0,   443,   448,   567,   551,   410,   561,   449,   576,
-     410,   751,   399,   556,   422,   415,   578,   336,   337,   341,
-     643,   567,   645,   353,   358,   648,   356,   570,   353,   537,
-     361,   364,   353,   913,   357,   435,   579,   354,   361,   356,
-     920,   390,   373,   353,   364,   490,   363,   334,   335,   354,
-     930,   354,   439,   372,   373,   377,   390,   387,   499,   500,
-     354,   556,   387,   508,   509,   414,   387,   354,   455,   356,
-     390,   354,   567,   360,   355,   570,   386,   387,   388,   389,
-     361,   356,   482,   356,   579,   356,   355,   649,   356,   364,
-     363,   372,   361,   364,   549,   540,   366,   356,   368,   610,
-     555,   612,   557,   598,   363,   560,   356,   562,   355,   564,
-     565,   556,   358,   363,   569,   361,   361,   355,   364,   364,
-     755,   387,   567,   361,   390,   570,   417,   418,   419,   420,
-     421,   422,   423,   355,   579,   643,   355,   645,   355,   361,
-     648,   549,   361,   355,   361,   355,   355,   658,   359,   361,
-     361,   361,   361,   598,   662,   355,   723,   565,   355,   357,
-     354,   361,   354,   361,   361,   788,   343,   344,   345,   346,
-     347,   348,   349,   350,   351,   352,   576,   355,   578,   355,
-     361,   362,   355,   361,   355,   361,   363,   574,   361,   355,
-     361,   355,   355,   355,   934,   361,   355,   361,   361,   361,
-     355,   355,   361,   355,   355,   355,   361,   361,   355,   361,
-     361,   361,   355,   355,   361,   354,   357,   354,   361,   361,
-     361,   856,   667,   361,   641,   354,   793,   354,   386,   387,
-     388,   389,   390,   386,   387,   388,   389,   641,   372,   387,
-     361,   641,   390,   364,   361,   868,   757,   364,   358,   649,
-     761,   734,   735,   736,   737,   387,   387,   387,   390,   390,
-     390,   364,   825,   358,   827,   819,   820,   332,   333,   812,
-     813,   779,   780,   387,   390,   387,   390,   718,   390,   825,
-     788,   390,   727,   728,   729,   730,   731,   732,   733,   734,
-     735,   736,   737,   738,   739,   740,   741,   742,   743,   744,
-     745,   924,   390,   387,   387,   940,   390,   390,   387,   387,
-     387,   390,   390,   390,   338,   339,   361,   812,   813,   364,
-     390,   361,   361,   723,   364,   364,   379,   380,   381,   356,
-     825,   390,   827,   369,   370,   371,   361,   362,   730,   731,
-     390,   732,   733,   854,   738,   739,   857,   356,   355,   390,
-     364,   363,   363,   390,   376,   361,   361,   361,   390,   361,
-     868,   361,   355,   361,   361,   361,   361,   812,   813,   361,
-     361,   354,   356,   355,   364,   363,   354,   354,   353,   340,
-     825,   391,   827,   356,   342,   357,   897,   357,   375,   399,
-     391,   359,   354,   793,   374,   364,   390,   407,   399,   407,
-     410,   390,   910,   914,   407,   415,   407,   415,   407,   410,
-     364,   354,   415,   354,   415,   425,   924,   364,   929,   354,
-     362,   354,   354,   390,   364,   435,   434,   364,   364,   439,
-     364,   390,   355,   363,   435,   361,   361,   361,   439,   355,
-     857,   355,   357,   361,   357,   455,   353,   398,   353,   387,
-     359,   390,   355,   354,   455,   363,   358,   857,   364,   355,
-     358,   358,   740,   742,   364,   359,   743,   741,   744,   435,
-     581,   402,   482,   745,   439,   439,   336,   717,   832,   859,
-     897,   482,   919,   493,   930,   433,   859,   931,   897,   813,
-     407,   572,   493,   808,   810,   641,   641,   897,   825,   817,
-      -1,   641,   815,    -1,    -1,    -1,   820,   819,    -1,    -1,
-      -1,    -1,   823,    -1,    -1,    -1,    -1,    -1,   827,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   545,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   574,    -1,   576,    -1,   578,    -1,
-      -1,    -1,    -1,   574,    -1,   576,    -1,   578,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   631,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     631,   641,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   649,
-     641,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   649,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   723,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   723,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   751,    -1,    -1,    -1,   755,    -1,    -1,    -1,    -1,
-     751,    -1,    -1,    -1,   755,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   793,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   793,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   856,   857,    -1,   859,
-      -1,   859,    -1,    -1,    -1,   856,   857,    -1,   859,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   897,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   897,    -1,    -1,    -1,
-      -1,    -1,    -1,   913,    -1,    -1,    -1,    -1,    -1,    -1,
-     920,    -1,   913,    -1,    -1,    -1,    -1,    -1,    -1,   920,
-     930,    -1,    -1,    -1,   934,    -1,    -1,    -1,    -1,   930,
-     940,    -1,    -1,   934,    -1,    -1,    -1,     0,    -1,   940,
-       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,   329,   330,   331,    -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,   364,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   378,   379,   380,   381,   382,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   391,   392,
-     393,   394,   395,   396,   397,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     413,   414,   415,   416,   417,   418,   419,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   428,    -1,   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,   460,   461,   462,
-     463,     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,   329,   330,   331,
-      -1,    -1,   334,   335,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   353,   354,    -1,   356,    -1,   358,   359,    -1,    -1,
-      -1,    -1,   364,   365,   366,   367,   368,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   378,   379,   380,   381,
-     382,    -1,    -1,    -1,   386,   387,   388,   389,   390,   391,
-     392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
-      -1,   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,   460,   461,
-     462,   463,     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,   329,   330,
-     331,    -1,    -1,   334,   335,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   353,   354,    -1,   356,    -1,   358,   359,    -1,
-      -1,    -1,    -1,   364,   365,   366,   367,   368,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   378,   379,   380,
-     381,   382,    -1,    -1,    -1,   386,   387,   388,   389,   390,
-     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
-     401,    -1,   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,   460,
-     461,   462,   463,     3,     4,     5,     6,     7,     8,     9,
+     322,   323,   324,   325,   326,   327,   328,   329,   330,     0,
+       0,   509,   510,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     511,   512,     0,   331,     0,   602,   784,     0,     0,     0,
+       0,   604,   513,   514,   515,   516,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   333,   334,   335,   336,   337,
+       0,     0,     0,   517,   518,   519,   520,   521,   338,   339,
+     340,   341,   342,   343,   344,   605,   606,   607,   608,     0,
+     609,   610,   611,   612,   613,   614,   615,   616,   617,   618,
+     345,   346,   347,   348,   349,   350,   351,   522,   523,   524,
+     525,   526,   527,   528,   529,   352,   619,   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,   382,   383,   384,   385,
+     386,     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,
@@ -3242,66 +1930,20 @@
      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,   329,
-     330,   331,    -1,    -1,   334,   335,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   353,   354,    -1,   356,    -1,   358,    -1,
-      -1,    -1,    -1,    -1,   364,   365,   366,   367,   368,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   378,   379,
-     380,   381,   382,    -1,    -1,    -1,   386,   387,   388,   389,
-     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
-     400,   401,    -1,   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,
-     460,   461,   462,   463,     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,
-     329,   330,   331,    -1,    -1,   334,   335,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   353,   354,    -1,   356,    -1,   358,
-      -1,    -1,    -1,    -1,    -1,   364,   365,   366,   367,   368,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   378,
-     379,   380,   381,   382,    -1,    -1,    -1,   386,   387,   388,
-     389,   390,   391,   392,   393,   394,   395,   396,   397,   398,
-     399,   400,   401,    -1,   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,   460,   461,   462,   463,     3,     4,     5,     6,     7,
+     330,     0,     0,   509,   510,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   511,   512,     0,   331,     0,   602,     0,     0,
+       0,     0,     0,   604,   513,   514,   515,   516,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   333,   334,   335,
+     336,   337,     0,     0,     0,   517,   518,   519,   520,   521,
+     338,   339,   340,   341,   342,   343,   344,   605,   606,   607,
+     608,     0,   609,   610,   611,   612,   613,   614,   615,   616,
+     617,   618,   345,   346,   347,   348,   349,   350,   351,   522,
+     523,   524,   525,   526,   527,   528,   529,   352,   619,   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,   382,   383,
+     384,   385,   386,     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,
@@ -3334,66 +1976,20 @@
      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,   329,   330,   331,    -1,    -1,   334,   335,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   353,   354,    -1,   356,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   364,   365,   366,   367,
-     368,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     378,   379,   380,   381,   382,    -1,    -1,    -1,   386,   387,
-     388,   389,   390,   391,   392,   393,   394,   395,   396,   397,
-     398,   399,   400,   401,    -1,   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,   460,   461,   462,   463,     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,   329,   330,   331,    -1,    -1,   334,   335,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   353,   354,    -1,   356,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   364,   365,   366,
-     367,   368,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   378,   379,   380,   381,   382,    -1,    -1,    -1,   386,
-     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
-     397,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   413,   414,   415,   416,
-     417,   418,   419,   420,   421,   422,   423,   424,   425,   426,
-     427,   428,    -1,   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,   460,   461,   462,   463,     3,     4,     5,
+     328,   329,   330,     0,     0,   509,   510,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   511,   512,     0,   331,     0,   494,
+       0,     0,     0,     0,     0,   604,   513,   514,   515,   516,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   333,
+     334,   335,   336,   337,     0,     0,     0,   517,   518,   519,
+     520,   521,   338,   339,   340,   341,   342,   343,   344,   605,
+     606,   607,   608,     0,   609,   610,   611,   612,   613,   614,
+     615,   616,   617,   618,   345,   346,   347,   348,   349,   350,
+     351,   522,   523,   524,   525,   526,   527,   528,   529,   352,
+     619,   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,
+     382,   383,   384,   385,   386,     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,
@@ -3425,67 +2021,21 @@
      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,   329,   330,   331,    -1,    -1,   334,   335,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   353,   354,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   365,
-     366,   367,   368,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   378,   379,   380,   381,    -1,    -1,    -1,    -1,
-     386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
-     396,   397,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   413,   414,   415,
-     416,   417,   418,   419,   420,   421,   422,   423,   424,   425,
-     426,   427,   428,    -1,   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,   460,   461,   462,   463,     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,   329,   330,   331,    -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,   364,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   378,   379,   380,   381,   382,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   391,   392,   393,   394,
-     395,   396,   397,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   413,   414,
-     415,   416,   417,   418,   419,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   428,    -1,   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,   460,   461,   462,   463,     3,
+     316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
+     326,   327,   328,   329,   330,     0,     0,   509,   510,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   511,   512,     0,   331,
+       0,     0,     0,     0,     0,     0,     0,   604,   513,   514,
+     515,   516,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   333,   334,   335,   336,   337,     0,     0,     0,   517,
+     518,   519,   520,   521,   338,   339,   340,   341,   342,   343,
+     344,   605,   606,   607,   608,     0,   609,   610,   611,   612,
+     613,   614,   615,   616,   617,   618,   345,   346,   347,   348,
+     349,   350,   351,   522,   523,   524,   525,   526,   527,   528,
+     529,   352,   619,   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,   382,   383,   384,   385,   386,     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,
@@ -3517,68 +2067,22 @@
      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,   329,   330,   331,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,   381,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   391,   392,   393,
-     394,   395,   396,   397,   398,    -1,    -1,   401,    -1,   403,
-     404,    -1,    -1,   407,    -1,    -1,    -1,    -1,    -1,   413,
-     414,   415,   416,   417,   418,   419,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   428,    -1,   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,   460,   461,   462,   463,
-       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,   329,   330,   331,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   364,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   378,   379,   380,   381,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   390,   391,   392,
-     393,   394,   395,   396,   397,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     413,   414,   415,   416,   417,   418,   419,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   428,    -1,   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,   460,   461,   462,
-     463,     3,     4,     5,     6,     7,     8,     9,    10,    11,
+     314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
+     324,   325,   326,   327,   328,   329,   330,     0,     0,   509,
+     510,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   511,   512,
+       0,   331,     0,     0,     0,     0,     0,     0,     0,   604,
+     513,   514,   515,   516,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   333,   334,   335,   336,   337,     0,     0,
+       0,   517,   518,   519,   520,   521,   338,   339,   340,   341,
+     342,   343,   344,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   345,   346,
+     347,   348,   349,   350,   351,   522,   523,   524,   525,   526,
+     527,   528,   529,   352,     0,   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,   382,   383,   384,   385,   386,     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,
@@ -3609,68 +2113,22 @@
      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,   329,   330,   331,
-      -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,    -1,    -1,    -1,   378,   379,   380,   381,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   391,
-     392,   393,   394,   395,   396,   397,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   413,   414,   415,   416,   417,   418,   419,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   428,    -1,   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,   460,   461,
-     462,   463,     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,   329,   330,
-     331,    -1,    -1,    -1,    -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,    -1,    -1,    -1,    -1,    -1,   378,   379,   380,
-     381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     391,   392,   393,   394,   395,   396,   397,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   413,   414,   415,   416,   417,   418,   419,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   428,    -1,   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,   460,
-     461,   462,   463,     3,     4,     5,     6,     7,     8,     9,
+     312,   313,   314,   315,   316,   317,     0,     0,     0,   321,
+     322,   323,   324,   325,   326,   327,   328,   329,   330,     0,
+       0,   509,   510,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     511,   512,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   513,   514,   515,   516,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   333,   334,   335,   336,     0,
+       0,     0,     0,   517,   518,   519,   520,   521,   338,   339,
+     340,   341,   342,   343,   344,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     345,   346,   347,   348,   349,   350,   351,   522,   523,   524,
+     525,   526,   527,   528,   529,   352,     0,   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,   382,   383,   384,   385,
+     386,     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,
@@ -3701,68 +2159,22 @@
      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,   329,
-     330,   331,    -1,    -1,    -1,    -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,    -1,    -1,    -1,    -1,    -1,   378,   379,
-     380,   381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   391,   392,   393,   394,   395,   396,   397,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   413,   414,   415,   416,   417,   418,   419,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   428,    -1,
-     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,
-     460,   461,   462,   463,     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,
-     329,   330,   331,    -1,    -1,    -1,    -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,    -1,    -1,    -1,    -1,    -1,   378,
-     379,   380,   381,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   391,   392,   393,   394,   395,   396,   397,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   413,   414,   415,   416,   417,   418,
-     419,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   428,
-      -1,   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,   460,   461,   462,   463,     3,     4,     5,     6,     7,
+     310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
+     320,   321,   322,   323,   324,   325,   326,   327,   328,   329,
+     330,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   331,     0,     0,     0,     0,
+       0,     0,     0,   332,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   333,   334,   335,
+     336,   337,     0,     0,     0,     0,     0,     0,     0,     0,
+     338,   339,   340,   341,   342,   343,   344,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   345,   346,   347,   348,   349,   350,   351,     0,
+       0,     0,     0,     0,     0,     0,     0,   352,     0,   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,   382,   383,
+     384,   385,   386,     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,
@@ -3794,27 +2206,212 @@
      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,   329,   330,   331,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     378,   379,   380,   381,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   391,   392,   393,   394,   395,   396,   397,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   413,   414,   415,   416,   417,
-     418,   419,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     428,    -1,   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,   460,   461,   462,   463,     4,     5,     6,     7,
+       0,     0,     0,   321,   322,   323,   324,   325,   326,   327,
+     328,   329,   330,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   333,
+     334,   335,   336,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   338,   339,   340,   341,   342,   343,   344,   605,
+       0,     0,   608,     0,   609,   610,     0,     0,   613,     0,
+       0,     0,     0,     0,   345,   346,   347,   348,   349,   350,
+     351,     0,     0,     0,     0,     0,     0,     0,     0,   352,
+       0,   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,
+     382,   383,   384,   385,   386,     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,     0,     0,     0,   321,   322,   323,   324,   325,
+     326,   327,   328,   329,   330,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   445,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   333,   334,   335,   336,     0,     0,     0,     0,     0,
+       0,     0,     0,   446,   338,   339,   340,   341,   342,   343,
+     344,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   345,   346,   347,   348,
+     349,   350,   351,     0,     0,     0,     0,     0,     0,     0,
+       0,   352,     0,   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,   382,   383,   384,   385,   386,     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,     0,     0,     0,   321,   322,   323,
+     324,   325,   326,   327,   328,   329,   330,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   331,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   333,   334,   335,   336,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   338,   339,   340,   341,
+     342,   343,   344,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   345,   346,
+     347,   348,   349,   350,   351,     0,     0,     0,     0,     0,
+       0,     0,     0,   352,     0,   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,   382,   383,   384,   385,   386,     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,     0,     0,     0,   321,
+     322,   323,   324,   325,   326,   327,   328,   329,   330,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   723,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   333,   334,   335,   336,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   338,   339,
+     340,   341,   342,   343,   344,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     345,   346,   347,   348,   349,   350,   351,     0,     0,     0,
+       0,     0,     0,     0,     0,   352,     0,   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,   382,   383,   384,   385,
+     386,     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,     0,     0,
+       0,   321,   322,   323,   324,   325,   326,   327,   328,   329,
+     330,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   836,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   333,   334,   335,
+     336,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     338,   339,   340,   341,   342,   343,   344,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   345,   346,   347,   348,   349,   350,   351,     0,
+       0,     0,     0,     0,     0,     0,     0,   352,     0,   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,   382,   383,
+     384,   385,   386,     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,    -1,    -1,    63,    64,    65,    66,    67,
+      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,
@@ -3824,7 +2421,7 @@
      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,
+     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,
@@ -3840,332 +2437,27 @@
      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,   329,   330,   331,    -1,    -1,   334,   335,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   353,   354,    -1,    -1,    -1,
-     358,   359,    -1,    -1,    -1,    -1,    -1,   365,   366,   367,
-     368,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   386,   387,
-     388,   389,   390,   391,    -1,    -1,    -1,    -1,   396,   397,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   420,   421,   422,   423,   424,   425,   426,   427,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   442,     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,
-     329,   330,   331,    -1,    -1,   334,   335,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   353,   354,    -1,    -1,    -1,   358,
-     359,    -1,    -1,    -1,    -1,    -1,   365,   366,   367,   368,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   386,   387,   388,
-     389,   390,   391,    -1,    -1,    -1,    -1,   396,   397,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   420,   421,   422,   423,   424,   425,   426,   427,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   442,     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,   329,
-     330,   331,    -1,    -1,   334,   335,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   353,   354,    -1,    -1,   357,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   365,   366,   367,   368,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   386,   387,   388,   389,
-     390,   391,    -1,    -1,    -1,    -1,   396,   397,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     420,   421,   422,   423,   424,   425,   426,   427,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   442,     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,   329,   330,
-     331,    -1,    -1,   334,   335,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   353,   354,    -1,    -1,    -1,   358,    -1,    -1,
-      -1,    -1,    -1,    -1,   365,   366,   367,   368,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   386,   387,   388,   389,   390,
-     391,    -1,    -1,    -1,    -1,   396,   397,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   420,
-     421,   422,   423,   424,   425,   426,   427,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   442,     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,   329,   330,   331,
-      -1,    -1,   334,   335,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   353,   354,    -1,    -1,   357,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   365,   366,   367,   368,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   386,   387,   388,   389,   390,   391,
-      -1,    -1,    -1,    -1,   396,   397,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   420,   421,
-     422,   423,   424,   425,   426,   427,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     442,     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,   329,   330,   331,    -1,
-      -1,   334,   335,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     353,   354,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   364,   365,   366,   367,   368,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   386,   387,   388,   389,   390,   391,    -1,
-      -1,    -1,    -1,   396,   397,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   420,   421,   422,
-     423,   424,   425,   426,   427,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   442,
-       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,   329,   330,   331,    -1,    -1,
-     334,   335,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   353,
-     354,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   365,   366,   367,   368,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   386,   387,   388,   389,   390,   391,    -1,    -1,
-      -1,    -1,   396,   397,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,   425,   426,   427,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   442,     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,   329,   330,   331,    -1,    -1,   334,
-     335,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   353,   354,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     365,   366,   367,   368,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   386,   387,   388,   389,   390,   391,    -1,    -1,    -1,
-      -1,   396,   397,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   420,   421,   422,   423,   424,
-     425,   426,   427,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   442,     4,     5,
+       0,     0,     0,   321,   322,   323,   324,   325,   326,   327,
+     328,   329,   330,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     871,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   333,
+     334,   335,   336,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   338,   339,   340,   341,   342,   343,   344,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   345,   346,   347,   348,   349,   350,
+     351,     0,     0,     0,     0,     0,     0,     0,     0,   352,
+       0,   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,
+     382,   383,   384,   385,   386,     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,    -1,    -1,    63,    64,    65,
+      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,
@@ -4176,7 +2468,7 @@
      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,
+     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,
@@ -4191,19 +2483,1296 @@
      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,   329,   330,   331,    -1,    -1,   334,   335,
+     316,   317,     0,     0,     0,   321,   322,   323,   324,   325,
+     326,   327,   328,   329,   330,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   333,   334,   335,   336,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   338,   339,   340,   341,   342,   343,
+     344,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   345,   346,   347,   348,
+     349,   350,   351,     0,     0,     0,     0,     0,     0,     0,
+       0,   352,     0,   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,   382,   383,   384,   385,   386,     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,     0,   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,     0,     0,     0,     0,     0,     0,   324,
+       0,     0,     0,   328,   329,   330,     0,     0,   509,   510,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   511,   512,     0,
+       0,     0,   647,   791,     0,     0,     0,     0,     0,   513,
+     514,   515,   516,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     517,   518,   519,   520,   521,   338,     0,     0,     0,     0,
+     343,   344,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   522,   523,   524,   525,   526,   527,
+     528,   529,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   365,     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,     0,   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,     0,     0,     0,     0,     0,     0,   324,
+       0,     0,     0,   328,   329,   330,     0,     0,   509,   510,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   511,   512,     0,
+       0,     0,   647,   902,     0,     0,     0,     0,     0,   513,
+     514,   515,   516,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     517,   518,   519,   520,   521,   338,     0,     0,     0,     0,
+     343,   344,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   522,   523,   524,   525,   526,   527,
+     528,   529,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   365,     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,     0,   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,     0,     0,     0,     0,     0,     0,   324,
+       0,     0,     0,   328,   329,   330,     0,     0,   509,   510,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   511,   512,     0,
+       0,   585,     0,     0,     0,     0,     0,     0,     0,   513,
+     514,   515,   516,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     517,   518,   519,   520,   521,   338,     0,     0,     0,     0,
+     343,   344,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   522,   523,   524,   525,   526,   527,
+     528,   529,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   365,     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,     0,   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,     0,     0,     0,     0,     0,     0,   324,
+       0,     0,     0,   328,   329,   330,     0,     0,   509,   510,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   511,   512,     0,
+       0,     0,   647,     0,     0,     0,     0,     0,     0,   513,
+     514,   515,   516,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     517,   518,   519,   520,   521,   338,     0,     0,     0,     0,
+     343,   344,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   522,   523,   524,   525,   526,   527,
+     528,   529,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   365,     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,     0,   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,     0,     0,     0,     0,     0,     0,   324,
+       0,     0,     0,   328,   329,   330,     0,     0,   509,   510,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   511,   512,     0,
+       0,   750,     0,     0,     0,     0,     0,     0,     0,   513,
+     514,   515,   516,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     517,   518,   519,   520,   521,   338,     0,     0,     0,     0,
+     343,   344,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   522,   523,   524,   525,   526,   527,
+     528,   529,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   365,     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,     0,   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,     0,     0,     0,     0,     0,     0,   324,
+       0,     0,     0,   328,   329,   330,     0,     0,   509,   510,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   511,   512,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   761,   513,
+     514,   515,   516,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     517,   518,   519,   520,   521,   338,     0,     0,     0,     0,
+     343,   344,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   522,   523,   524,   525,   526,   527,
+     528,   529,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   365,     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,     0,   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,     0,     0,     0,     0,     0,     0,   324,
+       0,     0,     0,   328,   329,   330,     0,     0,   509,   510,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   511,   512,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   513,
+     514,   515,   516,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     517,   518,   519,   520,   521,   338,     0,     0,     0,     0,
+     343,   344,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   522,   523,   524,   525,   526,   527,
+     528,   529,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   365,     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,     0,   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,     0,     0,     0,     0,     0,     0,   324,
+       0,     0,     0,   328,   329,   330,     0,     0,   509,   510,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   511,   512,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   513,
+     514,   515,   516,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     517,   518,   519,   520,   521,   338,     0,     0,     0,     0,
+     343,   665,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   522,   523,   524,   525,   526,   527,
+     528,   529,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   365,     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,     0,   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,     0,     0,     0,     0,     0,     0,   324,
+       0,     0,     0,   328,   329,   330,     0,     0,   509,   510,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   511,   512,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   513,
+     514,   515,   516,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     517,   518,   519,   520,   710,   338,     0,     0,     0,     0,
+     343,   344,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   522,   523,   524,   525,   526,   527,
+     528,   529,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   365,     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,     0,   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,     0,     0,     0,     0,     0,     0,   324,
+       0,     0,     0,   328,   329,   330,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   338,     0,     0,     0,     0,
+     343,   344
+};
+
+static const yytype_int16 yycheck[] =
+{
+       0,     0,     0,   392,   503,   411,     0,   633,   411,   491,
+     416,   444,     0,   449,   552,   568,   753,   450,   562,   579,
+     512,   577,   411,   557,   354,   400,   342,   416,   423,   354,
+     568,   645,   357,   647,   337,   338,   650,   571,   365,   538,
+     359,   362,   354,   354,   915,   391,   580,   436,   357,   362,
+     355,   922,   365,   374,   355,   491,   365,   387,   388,   389,
+     390,   932,   378,   388,   391,   440,   355,   500,   501,   415,
+     373,   374,   391,   509,   510,   557,   388,   388,   356,   355,
+     357,   456,   335,   336,   362,   357,   568,   364,   355,   571,
+     357,   651,   357,   365,   483,   373,   357,   364,   580,   364,
+     356,   356,   355,   364,   357,   541,   362,   362,   361,   355,
+     418,   419,   420,   421,   422,   423,   424,   355,   600,   356,
+     612,   557,   614,   359,   356,   362,   362,   356,   355,   365,
+     362,   757,   568,   362,   550,   571,   388,   356,   388,   391,
+     556,   391,   558,   362,   580,   561,   645,   563,   647,   565,
+     566,   650,   356,   356,   570,   550,   356,   356,   362,   362,
+     356,   356,   362,   362,   600,   664,   362,   362,   660,   725,
+     358,   566,   388,   355,   362,   391,   790,   344,   345,   346,
+     347,   348,   349,   350,   351,   352,   353,   356,   577,   357,
+     579,   388,   356,   362,   391,   356,   356,   364,   362,   936,
+     575,   362,   362,   356,   356,   356,   356,   356,   356,   362,
+     362,   362,   362,   362,   362,   356,   356,   356,   356,   356,
+     355,   362,   362,   362,   362,   362,   358,   358,   333,   334,
+     362,   362,   858,   669,   367,   355,   369,   643,   362,   795,
+     643,   387,   388,   389,   390,   391,   736,   737,   738,   739,
+     362,   365,   388,   365,   643,   391,   870,   387,   388,   389,
+     390,   388,   651,   388,   391,   388,   391,   759,   391,   388,
+     388,   763,   391,   391,   827,   356,   829,   821,   822,   373,
+     814,   815,   781,   782,   360,   388,   362,   720,   391,   827,
+     391,   790,   365,   729,   730,   731,   732,   733,   734,   735,
+     736,   737,   738,   739,   740,   741,   742,   743,   744,   745,
+     746,   747,   926,   391,   388,   362,   942,   391,   365,   362,
+     362,   362,   365,   365,   365,   380,   381,   382,   339,   340,
+     362,   363,   814,   815,   362,   363,   725,   370,   371,   372,
+     732,   733,   391,   734,   735,   827,   359,   829,   357,   359,
+     740,   741,   391,   391,   391,   357,   391,   365,   364,   356,
+     364,   362,   365,   377,   856,   356,   362,   859,   391,   362,
+     362,   870,   362,   362,   357,   362,   362,   362,   814,   815,
+     362,   362,   355,   355,   364,   356,   355,   355,   354,   341,
+     357,   827,   392,   829,   358,   343,   391,   376,   375,   358,
+     400,   355,   360,   365,   392,   365,   795,   899,   408,   408,
+     408,   411,   400,   912,   408,   391,   416,   416,   416,   355,
+     408,   391,   355,   411,   916,   365,   426,   926,   416,   355,
+     365,   363,   355,   362,   365,   365,   436,   435,   365,   931,
+     440,   391,   391,   356,   364,   362,   362,   356,   436,   449,
+     356,   358,   440,   859,   358,   354,   456,   362,   399,   354,
+     388,   355,   360,   356,   364,   356,   391,   359,   456,   365,
+     859,   359,   359,   742,   360,   365,   744,   743,   582,   403,
+     436,   745,   337,   483,   746,   440,   719,   747,   861,   440,
+     834,   921,   932,   899,   494,   483,   933,   434,   861,   643,
+     899,   643,   573,   810,   819,   408,   494,   817,   812,   643,
+     899,   825,   829,   815,    -1,    -1,   822,    -1,    -1,    -1,
+      -1,   821,    -1,    -1,    -1,    -1,    -1,    -1,   827,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   353,   354,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   365,
-     366,   367,   368,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   546,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     386,   387,   388,   389,   390,   391,    -1,    -1,    -1,    -1,
-     396,   397,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   420,   421,   422,   423,   424,   425,
-     426,   427,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   442,     4,     5,     6,
+      -1,    -1,    -1,    -1,    -1,   575,    -1,   577,    -1,   579,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   575,    -1,   577,
+      -1,   579,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   633,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   643,    -1,   633,    -1,    -1,    -1,    -1,
+      -1,   651,    -1,    -1,    -1,   643,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   651,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   725,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   725,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   753,    -1,    -1,    -1,   757,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   753,    -1,    -1,    -1,   757,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   795,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   795,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   858,   859,
+      -1,   861,    -1,   861,    -1,    -1,    -1,    -1,    -1,    -1,
+     858,   859,    -1,   861,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   899,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   899,    -1,    -1,    -1,   915,    -1,    -1,    -1,    -1,
+      -1,    -1,   922,    -1,    -1,    -1,    -1,   915,    -1,    -1,
+      -1,    -1,   932,    -1,   922,    -1,   936,    -1,    -1,    -1,
+      -1,    -1,   942,    -1,   932,    -1,    -1,    -1,   936,    -1,
+      -1,    -1,     0,    -1,   942,     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,   329,   330,   331,   332,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   357,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   365,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   379,   380,   381,   382,   383,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   392,   393,   394,   395,   396,   397,
+     398,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   414,   415,   416,   417,
+     418,   419,   420,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   429,    -1,   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,   460,   461,   462,   463,   464,     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,   329,   330,   331,   332,    -1,    -1,   335,
+     336,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   354,   355,
+      -1,   357,    -1,   359,   360,    -1,    -1,    -1,    -1,   365,
+     366,   367,   368,   369,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   379,   380,   381,   382,   383,    -1,    -1,
+      -1,   387,   388,   389,   390,   391,   392,   393,   394,   395,
+     396,   397,   398,   399,   400,   401,   402,    -1,   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,   460,   461,   462,   463,   464,     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,   329,   330,   331,   332,    -1,
+      -1,   335,   336,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     354,   355,    -1,   357,    -1,   359,   360,    -1,    -1,    -1,
+      -1,   365,   366,   367,   368,   369,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   379,   380,   381,   382,   383,
+      -1,    -1,    -1,   387,   388,   389,   390,   391,   392,   393,
+     394,   395,   396,   397,   398,   399,   400,   401,   402,    -1,
+     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,   460,   461,   462,   463,
+     464,     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,   329,   330,   331,
+     332,    -1,    -1,   335,   336,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   354,   355,    -1,   357,    -1,   359,    -1,    -1,
+      -1,    -1,    -1,   365,   366,   367,   368,   369,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   379,   380,   381,
+     382,   383,    -1,    -1,    -1,   387,   388,   389,   390,   391,
+     392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
+     402,    -1,   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,   460,   461,
+     462,   463,   464,     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,   329,
+     330,   331,   332,    -1,    -1,   335,   336,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   354,   355,    -1,   357,    -1,   359,
+      -1,    -1,    -1,    -1,    -1,   365,   366,   367,   368,   369,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   379,
+     380,   381,   382,   383,    -1,    -1,    -1,   387,   388,   389,
+     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
+     400,   401,   402,    -1,   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,
+     460,   461,   462,   463,   464,     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,   329,   330,   331,   332,    -1,    -1,   335,   336,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   354,   355,    -1,   357,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   365,   366,   367,
+     368,   369,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   379,   380,   381,   382,   383,    -1,    -1,    -1,   387,
+     388,   389,   390,   391,   392,   393,   394,   395,   396,   397,
+     398,   399,   400,   401,   402,    -1,   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,   460,   461,   462,   463,   464,     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,   329,   330,   331,   332,    -1,    -1,   335,
+     336,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   354,   355,
+      -1,   357,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   365,
+     366,   367,   368,   369,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   379,   380,   381,   382,   383,    -1,    -1,
+      -1,   387,   388,   389,   390,   391,   392,   393,   394,   395,
+     396,   397,   398,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   414,   415,
+     416,   417,   418,   419,   420,   421,   422,   423,   424,   425,
+     426,   427,   428,   429,    -1,   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,   460,   461,   462,   463,   464,     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,    -1,    -1,    -1,   323,
+     324,   325,   326,   327,   328,   329,   330,   331,   332,    -1,
+      -1,   335,   336,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     354,   355,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   366,   367,   368,   369,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   379,   380,   381,   382,    -1,
+      -1,    -1,    -1,   387,   388,   389,   390,   391,   392,   393,
+     394,   395,   396,   397,   398,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     414,   415,   416,   417,   418,   419,   420,   421,   422,   423,
+     424,   425,   426,   427,   428,   429,    -1,   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,   460,   461,   462,   463,
+     464,     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,   329,   330,   331,
+     332,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   357,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   365,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   379,   380,   381,
+     382,   383,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     392,   393,   394,   395,   396,   397,   398,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   414,   415,   416,   417,   418,   419,   420,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   429,    -1,   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,   460,   461,
+     462,   463,   464,     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,
+      -1,    -1,    -1,   323,   324,   325,   326,   327,   328,   329,
+     330,   331,   332,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   379,
+     380,   381,   382,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   392,   393,   394,   395,   396,   397,   398,   399,
+      -1,    -1,   402,    -1,   404,   405,    -1,    -1,   408,    -1,
+      -1,    -1,    -1,    -1,   414,   415,   416,   417,   418,   419,
+     420,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   429,
+      -1,   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,
+     460,   461,   462,   463,   464,     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,    -1,    -1,    -1,   323,   324,   325,   326,   327,
+     328,   329,   330,   331,   332,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   365,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   379,   380,   381,   382,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   391,   392,   393,   394,   395,   396,   397,
+     398,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   414,   415,   416,   417,
+     418,   419,   420,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   429,    -1,   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,   460,   461,   462,   463,   464,     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,    -1,    -1,    -1,   323,   324,   325,
+     326,   327,   328,   329,   330,   331,   332,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   357,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   379,   380,   381,   382,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   392,   393,   394,   395,
+     396,   397,   398,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   414,   415,
+     416,   417,   418,   419,   420,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   429,    -1,   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,   460,   461,   462,   463,   464,     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,    -1,    -1,    -1,   323,
+     324,   325,   326,   327,   328,   329,   330,   331,   332,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   360,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   379,   380,   381,   382,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   392,   393,
+     394,   395,   396,   397,   398,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     414,   415,   416,   417,   418,   419,   420,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   429,    -1,   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,   460,   461,   462,   463,
+     464,     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,    -1,    -1,
+      -1,   323,   324,   325,   326,   327,   328,   329,   330,   331,
+     332,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   360,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   379,   380,   381,
+     382,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     392,   393,   394,   395,   396,   397,   398,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   414,   415,   416,   417,   418,   419,   420,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   429,    -1,   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,   460,   461,
+     462,   463,   464,     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,
+      -1,    -1,    -1,   323,   324,   325,   326,   327,   328,   329,
+     330,   331,   332,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     360,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   379,
+     380,   381,   382,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   392,   393,   394,   395,   396,   397,   398,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   414,   415,   416,   417,   418,   419,
+     420,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   429,
+      -1,   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,
+     460,   461,   462,   463,   464,     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,    -1,    -1,    -1,   323,   324,   325,   326,   327,
+     328,   329,   330,   331,   332,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   379,   380,   381,   382,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   392,   393,   394,   395,   396,   397,
+     398,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   414,   415,   416,   417,
+     418,   419,   420,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   429,    -1,   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,   460,   461,   462,   463,   464,     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,
@@ -4220,7 +3789,7 @@
      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,
+     167,    -1,   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,
@@ -4235,19 +3804,415 @@
      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,   329,   330,   331,    -1,    -1,    -1,    -1,    -1,
+     317,   318,   319,    -1,    -1,    -1,    -1,    -1,    -1,   326,
+      -1,    -1,    -1,   330,   331,   332,    -1,    -1,   335,   336,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   354,   355,    -1,
+      -1,    -1,   359,   360,    -1,    -1,    -1,    -1,    -1,   366,
+     367,   368,   369,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     387,   388,   389,   390,   391,   392,    -1,    -1,    -1,    -1,
+     397,   398,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   421,   422,   423,   424,   425,   426,
+     427,   428,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   443,     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,    -1,   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,    -1,    -1,    -1,    -1,    -1,    -1,   326,
+      -1,    -1,    -1,   330,   331,   332,    -1,    -1,   335,   336,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   354,   355,    -1,
+      -1,    -1,   359,   360,    -1,    -1,    -1,    -1,    -1,   366,
+     367,   368,   369,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     387,   388,   389,   390,   391,   392,    -1,    -1,    -1,    -1,
+     397,   398,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   421,   422,   423,   424,   425,   426,
+     427,   428,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   443,     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,    -1,   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,    -1,    -1,    -1,    -1,    -1,    -1,   326,
+      -1,    -1,    -1,   330,   331,   332,    -1,    -1,   335,   336,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   354,   355,    -1,
+      -1,   358,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   366,
+     367,   368,   369,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     387,   388,   389,   390,   391,   392,    -1,    -1,    -1,    -1,
+     397,   398,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   421,   422,   423,   424,   425,   426,
+     427,   428,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   443,     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,    -1,   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,    -1,    -1,    -1,    -1,    -1,    -1,   326,
+      -1,    -1,    -1,   330,   331,   332,    -1,    -1,   335,   336,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   354,   355,    -1,
+      -1,    -1,   359,    -1,    -1,    -1,    -1,    -1,    -1,   366,
+     367,   368,   369,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     387,   388,   389,   390,   391,   392,    -1,    -1,    -1,    -1,
+     397,   398,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   421,   422,   423,   424,   425,   426,
+     427,   428,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   443,     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,    -1,   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,    -1,    -1,    -1,    -1,    -1,    -1,   326,
+      -1,    -1,    -1,   330,   331,   332,    -1,    -1,   335,   336,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   354,   355,    -1,
+      -1,   358,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   366,
+     367,   368,   369,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     387,   388,   389,   390,   391,   392,    -1,    -1,    -1,    -1,
+     397,   398,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   421,   422,   423,   424,   425,   426,
+     427,   428,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   443,     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,    -1,   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,    -1,    -1,    -1,    -1,    -1,    -1,   326,
+      -1,    -1,    -1,   330,   331,   332,    -1,    -1,   335,   336,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   354,   355,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   365,   366,
+     367,   368,   369,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     387,   388,   389,   390,   391,   392,    -1,    -1,    -1,    -1,
+     397,   398,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   421,   422,   423,   424,   425,   426,
+     427,   428,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   443,     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,    -1,   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,    -1,    -1,    -1,    -1,    -1,    -1,   326,
+      -1,    -1,    -1,   330,   331,   332,    -1,    -1,   335,   336,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   354,   355,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   366,
+     367,   368,   369,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     387,   388,   389,   390,   391,   392,    -1,    -1,    -1,    -1,
+     397,   398,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   421,   422,   423,   424,   425,   426,
+     427,   428,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   443,     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,    -1,   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,    -1,    -1,    -1,    -1,    -1,    -1,   326,
+      -1,    -1,    -1,   330,   331,   332,    -1,    -1,   335,   336,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   354,   355,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   366,
+     367,   368,   369,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     387,   388,   389,   390,   391,   392,    -1,    -1,    -1,    -1,
+     397,   398,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   421,   422,   423,   424,   425,   426,
+     427,   428,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   443,     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,    -1,   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,    -1,    -1,    -1,    -1,    -1,    -1,   326,
+      -1,    -1,    -1,   330,   331,   332,    -1,    -1,   335,   336,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   354,   355,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   366,
+     367,   368,   369,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     387,   388,   389,   390,   391,   392,    -1,    -1,    -1,    -1,
+     397,   398,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   421,   422,   423,   424,   425,   426,
+     427,   428,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   443,     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,    -1,   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,    -1,    -1,    -1,    -1,    -1,    -1,   326,
+      -1,    -1,    -1,   330,   331,   332,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   391,    -1,    -1,    -1,    -1,   396,
-     397
+      -1,    -1,    -1,    -1,    -1,   392,    -1,    -1,    -1,    -1,
+     397,   398
 };
 
-  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
-     symbol of state STATE-NUM.  */
+/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
+   state STATE-NUM.  */
 static const yytype_int16 yystos[] =
 {
        0,     3,     4,     5,     6,     7,     8,     9,    10,    11,
@@ -4283,146 +4248,147 @@
      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,   329,   330,   331,
-     356,   364,   378,   379,   380,   381,   382,   391,   392,   393,
-     394,   395,   396,   397,   413,   414,   415,   416,   417,   418,
-     419,   428,   430,   431,   432,   433,   434,   435,   436,   437,
+     332,   357,   365,   379,   380,   381,   382,   383,   392,   393,
+     394,   395,   396,   397,   398,   414,   415,   416,   417,   418,
+     419,   420,   429,   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,   460,   461,   462,   463,   495,   496,   499,   500,
-     501,   502,   506,   507,   508,   509,   510,   511,   514,   515,
-     516,   517,   518,   520,   525,   526,   527,   568,   569,   570,
-     572,   579,   583,   584,   590,   593,   354,   354,   354,   354,
-     354,   354,   354,   354,   356,   526,   358,   390,   354,   354,
-     364,   390,   364,   571,   355,   361,   503,   504,   505,   515,
-     520,   361,   364,   390,   364,   390,   516,   520,   372,   522,
-     523,     0,   569,   500,   508,   515,   364,   499,   390,   575,
-     576,   594,   595,   387,   390,   575,   387,   575,   387,   575,
-     387,   575,   387,   575,   575,   594,   387,   575,   390,   573,
-     574,   520,   529,   358,   390,   414,   512,   513,   390,   519,
-     356,   364,   521,   358,   547,   572,   504,   503,   505,   390,
-     390,   354,   363,   521,   358,   361,   364,   498,   334,   335,
-     353,   354,   365,   366,   367,   368,   386,   387,   388,   389,
-     390,   420,   421,   422,   423,   424,   425,   426,   427,   465,
-     466,   467,   469,   470,   471,   472,   473,   474,   475,   476,
-     477,   518,   520,   524,   521,   355,   390,   364,   363,   361,
-     355,   361,   355,   361,   363,   361,   361,   361,   355,   361,
-     361,   361,   361,   361,   361,   361,   355,   361,   355,   361,
-     354,   357,   361,   364,   515,   520,   530,   531,   528,   363,
-     355,   361,   355,   361,   357,   476,   478,   479,   480,   481,
-     482,   483,   484,   485,   486,   487,   488,   489,   356,   364,
-     358,   359,   364,   398,   399,   400,   401,   403,   404,   405,
-     406,   407,   408,   409,   410,   411,   412,   429,   476,   489,
-     491,   493,   495,   499,   518,   520,   536,   537,   538,   539,
-     540,   548,   549,   550,   551,   554,   555,   558,   559,   560,
-     567,   572,   521,   363,   521,   358,   491,   534,   363,   497,
-     390,   361,   364,   476,   476,   493,   334,   335,   356,   360,
-     355,   355,   361,   397,   491,   354,   476,   361,   373,   572,
-     353,   356,   387,   576,   594,   390,   595,   353,   386,   387,
-     388,   389,   580,   581,   387,   489,   494,   582,   387,   386,
-     387,   388,   389,   585,   586,   387,   386,   387,   388,   389,
-     465,   587,   588,   387,   353,   589,   387,   594,   390,   494,
-     525,   591,   592,   387,   494,   357,   574,   520,   390,   532,
-     533,   359,   531,   530,   494,   513,   390,   369,   370,   371,
-     366,   368,   332,   333,   336,   337,   372,   373,   338,   339,
-     376,   375,   374,   340,   342,   341,   377,   357,   357,   489,
-     359,   541,   354,   364,   364,   562,   354,   354,   364,   364,
-     493,   354,   493,   362,   364,   364,   364,   364,   343,   344,
-     345,   346,   347,   348,   349,   350,   351,   352,   363,   492,
-     361,   364,   359,   537,   551,   555,   560,   534,   363,   359,
-     534,   535,   534,   530,   390,   355,   468,   493,   390,   491,
-     476,   353,   387,   577,   578,   355,   363,   355,   361,   355,
-     361,   355,   361,   361,   355,   361,   355,   361,   355,   361,
-     361,   355,   361,   361,   355,   361,   355,   361,   355,   355,
-     532,   521,   361,   364,   359,   476,   476,   476,   478,   478,
-     479,   479,   480,   480,   480,   480,   481,   481,   482,   483,
-     484,   485,   486,   487,   490,   357,   548,   561,   537,   563,
-     493,   364,   493,   362,   491,   491,   534,   359,   361,   359,
-     357,   357,   361,   357,   361,   581,   580,   494,   582,   586,
-     585,   588,   587,   353,   589,   591,   592,   364,   533,   493,
-     542,   493,   508,   553,   398,   536,   549,   564,   355,   355,
-     359,   534,   353,   387,   355,   355,   355,   355,   355,   355,
-     362,   359,   390,   355,   354,   553,   565,   566,   544,   545,
-     546,   552,   556,   491,   363,   538,   543,   547,   493,   364,
-     355,   402,   540,   538,   358,   534,   355,   493,   543,   544,
-     548,   557,   364,   359
+     458,   459,   460,   461,   462,   463,   464,   496,   497,   500,
+     501,   502,   503,   507,   508,   509,   510,   511,   512,   515,
+     516,   517,   518,   519,   521,   526,   527,   528,   569,   570,
+     571,   573,   580,   584,   585,   591,   594,   355,   355,   355,
+     355,   355,   355,   355,   355,   357,   527,   359,   391,   355,
+     355,   365,   391,   365,   572,   356,   362,   504,   505,   506,
+     516,   521,   362,   365,   391,   365,   391,   517,   521,   373,
+     523,   524,     0,   570,   501,   509,   516,   365,   500,   391,
+     576,   577,   595,   596,   388,   391,   576,   388,   576,   388,
+     576,   388,   576,   388,   576,   576,   595,   388,   576,   391,
+     574,   575,   521,   530,   359,   391,   415,   513,   514,   391,
+     520,   357,   365,   522,   359,   548,   573,   505,   504,   506,
+     391,   391,   355,   364,   522,   359,   362,   365,   499,   335,
+     336,   354,   355,   366,   367,   368,   369,   387,   388,   389,
+     390,   391,   421,   422,   423,   424,   425,   426,   427,   428,
+     466,   467,   468,   470,   471,   472,   473,   474,   475,   476,
+     477,   478,   519,   521,   525,   522,   356,   391,   365,   364,
+     362,   356,   362,   356,   362,   364,   362,   362,   362,   356,
+     362,   362,   362,   362,   362,   362,   362,   356,   362,   356,
+     362,   355,   358,   362,   365,   516,   521,   531,   532,   529,
+     364,   356,   362,   356,   362,   358,   477,   479,   480,   481,
+     482,   483,   484,   485,   486,   487,   488,   489,   490,   521,
+     357,   365,   359,   360,   365,   399,   400,   401,   402,   404,
+     405,   406,   407,   408,   409,   410,   411,   412,   413,   430,
+     477,   490,   492,   494,   496,   500,   519,   521,   537,   538,
+     539,   540,   541,   549,   550,   551,   552,   555,   556,   559,
+     560,   561,   568,   573,   522,   364,   522,   359,   492,   535,
+     364,   498,   391,   362,   365,   477,   477,   494,   335,   336,
+     357,   361,   356,   356,   362,   398,   492,   355,   477,   362,
+     374,   573,   354,   357,   388,   577,   595,   391,   596,   354,
+     387,   388,   389,   390,   581,   582,   388,   490,   495,   583,
+     388,   387,   388,   389,   390,   586,   587,   388,   387,   388,
+     389,   390,   466,   588,   589,   388,   354,   590,   388,   595,
+     391,   495,   526,   592,   593,   388,   495,   358,   575,   521,
+     391,   533,   534,   360,   532,   531,   495,   514,   391,   370,
+     371,   372,   367,   369,   333,   334,   337,   338,   373,   374,
+     339,   340,   377,   376,   375,   341,   343,   342,   378,   358,
+     358,   490,   360,   542,   355,   365,   365,   563,   355,   355,
+     365,   365,   494,   355,   494,   363,   365,   365,   365,   365,
+     344,   345,   346,   347,   348,   349,   350,   351,   352,   353,
+     364,   493,   362,   365,   360,   538,   552,   556,   561,   535,
+     364,   360,   535,   536,   535,   531,   391,   356,   469,   494,
+     391,   492,   477,   354,   388,   578,   579,   356,   364,   356,
+     362,   356,   362,   356,   362,   362,   356,   362,   356,   362,
+     356,   362,   362,   356,   362,   362,   356,   362,   356,   362,
+     356,   356,   533,   522,   362,   365,   360,   477,   477,   477,
+     479,   479,   480,   480,   481,   481,   481,   481,   482,   482,
+     483,   484,   485,   486,   487,   488,   491,   358,   549,   562,
+     538,   564,   494,   365,   494,   363,   492,   492,   535,   360,
+     362,   360,   358,   358,   362,   358,   362,   582,   581,   495,
+     583,   587,   586,   589,   588,   354,   590,   592,   593,   365,
+     534,   494,   543,   494,   509,   554,   399,   537,   550,   565,
+     356,   356,   360,   535,   354,   388,   356,   356,   356,   356,
+     356,   356,   363,   360,   391,   356,   355,   554,   566,   567,
+     545,   546,   547,   553,   557,   492,   364,   539,   544,   548,
+     494,   365,   356,   403,   541,   539,   359,   535,   356,   494,
+     544,   545,   549,   558,   365,   360
 };
 
-  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
+/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.  */
 static const yytype_int16 yyr1[] =
 {
-       0,   464,   465,   466,   466,   466,   466,   466,   466,   466,
-     466,   466,   466,   466,   466,   466,   466,   466,   467,   467,
-     467,   467,   467,   467,   468,   469,   470,   471,   471,   472,
-     472,   473,   473,   474,   475,   475,   475,   476,   476,   476,
-     476,   477,   477,   477,   477,   478,   478,   478,   478,   479,
-     479,   479,   480,   480,   480,   481,   481,   481,   481,   481,
-     482,   482,   482,   483,   483,   484,   484,   485,   485,   486,
-     486,   487,   487,   488,   488,   489,   490,   489,   491,   491,
-     492,   492,   492,   492,   492,   492,   492,   492,   492,   492,
-     492,   493,   493,   494,   495,   495,   495,   495,   495,   495,
-     495,   495,   495,   495,   495,   497,   496,   498,   498,   499,
-     499,   499,   499,   500,   500,   501,   501,   502,   503,   503,
-     504,   504,   504,   504,   505,   506,   506,   506,   506,   506,
-     507,   507,   507,   507,   507,   508,   508,   509,   510,   510,
-     510,   510,   510,   510,   510,   510,   510,   510,   511,   512,
-     512,   513,   513,   513,   514,   515,   515,   516,   516,   516,
-     516,   516,   516,   516,   516,   516,   516,   516,   517,   517,
-     517,   517,   517,   517,   517,   517,   517,   517,   517,   517,
-     517,   517,   517,   517,   517,   517,   517,   517,   517,   517,
-     517,   517,   517,   517,   517,   517,   517,   517,   517,   517,
-     517,   517,   517,   517,   517,   517,   518,   519,   519,   520,
-     520,   521,   521,   521,   521,   522,   522,   523,   524,   524,
-     525,   525,   525,   525,   525,   525,   525,   525,   525,   525,
-     525,   525,   525,   525,   525,   525,   525,   525,   525,   525,
-     525,   525,   525,   525,   525,   525,   525,   525,   525,   525,
-     525,   525,   525,   525,   525,   525,   525,   525,   525,   525,
-     525,   525,   525,   525,   525,   525,   525,   525,   525,   525,
-     525,   525,   525,   525,   525,   525,   525,   525,   525,   525,
-     525,   525,   525,   525,   525,   525,   525,   525,   525,   525,
-     525,   525,   525,   525,   525,   525,   525,   525,   525,   525,
-     525,   525,   525,   525,   525,   525,   525,   525,   525,   525,
-     525,   525,   525,   525,   525,   525,   525,   525,   525,   525,
-     525,   525,   525,   525,   525,   525,   525,   525,   525,   525,
-     525,   525,   525,   525,   525,   525,   525,   525,   525,   525,
-     525,   525,   525,   525,   525,   525,   525,   525,   525,   525,
-     525,   525,   525,   525,   525,   525,   525,   525,   525,   525,
-     525,   525,   525,   525,   525,   525,   525,   525,   525,   525,
-     525,   525,   525,   525,   525,   525,   525,   525,   525,   525,
-     525,   525,   525,   525,   525,   525,   525,   525,   525,   525,
-     525,   525,   525,   525,   525,   525,   525,   525,   525,   525,
-     525,   525,   525,   525,   525,   525,   525,   525,   525,   525,
-     525,   525,   525,   525,   525,   525,   525,   525,   525,   525,
-     525,   525,   525,   525,   525,   525,   525,   525,   525,   525,
-     525,   525,   525,   525,   525,   525,   525,   525,   525,   525,
-     525,   525,   525,   525,   525,   525,   525,   525,   525,   525,
-     525,   525,   525,   525,   525,   525,   525,   525,   525,   525,
-     525,   525,   525,   525,   525,   525,   525,   525,   525,   525,
-     525,   525,   525,   525,   525,   525,   525,   525,   525,   525,
-     525,   525,   525,   525,   525,   525,   525,   525,   525,   525,
-     525,   525,   525,   525,   525,   525,   525,   525,   525,   525,
-     525,   525,   525,   525,   525,   525,   525,   525,   525,   525,
-     525,   525,   525,   525,   525,   525,   525,   525,   525,   525,
-     525,   525,   525,   525,   525,   525,   525,   525,   525,   525,
-     525,   525,   525,   525,   525,   525,   525,   525,   525,   526,
-     526,   526,   528,   527,   529,   527,   530,   530,   531,   531,
-     532,   532,   533,   533,   534,   534,   534,   534,   535,   535,
-     536,   537,   537,   538,   538,   538,   538,   538,   538,   538,
-     538,   539,   540,   541,   542,   540,   543,   543,   545,   544,
-     546,   544,   547,   547,   548,   548,   549,   549,   550,   550,
-     551,   552,   552,   553,   553,   554,   554,   556,   555,   557,
-     557,   558,   558,   559,   559,   561,   560,   562,   560,   563,
-     560,   564,   564,   565,   565,   566,   566,   567,   567,   567,
-     567,   567,   567,   567,   567,   568,   568,   569,   569,   569,
-     571,   570,   572,   573,   573,   574,   574,   575,   575,   576,
-     576,   577,   577,   578,   578,   579,   579,   579,   579,   579,
-     579,   580,   580,   581,   581,   581,   581,   581,   582,   582,
-     583,   583,   584,   584,   584,   584,   584,   584,   584,   584,
-     585,   585,   586,   586,   586,   586,   587,   587,   588,   588,
-     588,   588,   588,   589,   589,   590,   590,   590,   590,   591,
-     591,   592,   592,   593,   593,   594,   594,   595,   595
+       0,   465,   466,   467,   467,   467,   467,   467,   467,   467,
+     467,   467,   467,   467,   467,   467,   467,   467,   468,   468,
+     468,   468,   468,   468,   469,   470,   471,   472,   472,   473,
+     473,   474,   474,   475,   476,   476,   476,   477,   477,   477,
+     477,   478,   478,   478,   478,   479,   479,   479,   479,   480,
+     480,   480,   481,   481,   481,   482,   482,   482,   482,   482,
+     483,   483,   483,   484,   484,   485,   485,   486,   486,   487,
+     487,   488,   488,   489,   489,   490,   491,   490,   492,   492,
+     493,   493,   493,   493,   493,   493,   493,   493,   493,   493,
+     493,   494,   494,   495,   496,   496,   496,   496,   496,   496,
+     496,   496,   496,   496,   496,   498,   497,   499,   499,   500,
+     500,   500,   500,   501,   501,   502,   502,   503,   504,   504,
+     505,   505,   505,   505,   506,   507,   507,   507,   507,   507,
+     508,   508,   508,   508,   508,   509,   509,   510,   511,   511,
+     511,   511,   511,   511,   511,   511,   511,   511,   512,   513,
+     513,   514,   514,   514,   515,   516,   516,   517,   517,   517,
+     517,   517,   517,   517,   517,   517,   517,   517,   518,   518,
+     518,   518,   518,   518,   518,   518,   518,   518,   518,   518,
+     518,   518,   518,   518,   518,   518,   518,   518,   518,   518,
+     518,   518,   518,   518,   518,   518,   518,   518,   518,   518,
+     518,   518,   518,   518,   518,   518,   519,   520,   520,   521,
+     521,   522,   522,   522,   522,   523,   523,   524,   525,   525,
+     525,   526,   526,   526,   526,   526,   526,   526,   526,   526,
+     526,   526,   526,   526,   526,   526,   526,   526,   526,   526,
+     526,   526,   526,   526,   526,   526,   526,   526,   526,   526,
+     526,   526,   526,   526,   526,   526,   526,   526,   526,   526,
+     526,   526,   526,   526,   526,   526,   526,   526,   526,   526,
+     526,   526,   526,   526,   526,   526,   526,   526,   526,   526,
+     526,   526,   526,   526,   526,   526,   526,   526,   526,   526,
+     526,   526,   526,   526,   526,   526,   526,   526,   526,   526,
+     526,   526,   526,   526,   526,   526,   526,   526,   526,   526,
+     526,   526,   526,   526,   526,   526,   526,   526,   526,   526,
+     526,   526,   526,   526,   526,   526,   526,   526,   526,   526,
+     526,   526,   526,   526,   526,   526,   526,   526,   526,   526,
+     526,   526,   526,   526,   526,   526,   526,   526,   526,   526,
+     526,   526,   526,   526,   526,   526,   526,   526,   526,   526,
+     526,   526,   526,   526,   526,   526,   526,   526,   526,   526,
+     526,   526,   526,   526,   526,   526,   526,   526,   526,   526,
+     526,   526,   526,   526,   526,   526,   526,   526,   526,   526,
+     526,   526,   526,   526,   526,   526,   526,   526,   526,   526,
+     526,   526,   526,   526,   526,   526,   526,   526,   526,   526,
+     526,   526,   526,   526,   526,   526,   526,   526,   526,   526,
+     526,   526,   526,   526,   526,   526,   526,   526,   526,   526,
+     526,   526,   526,   526,   526,   526,   526,   526,   526,   526,
+     526,   526,   526,   526,   526,   526,   526,   526,   526,   526,
+     526,   526,   526,   526,   526,   526,   526,   526,   526,   526,
+     526,   526,   526,   526,   526,   526,   526,   526,   526,   526,
+     526,   526,   526,   526,   526,   526,   526,   526,   526,   526,
+     526,   526,   526,   526,   526,   526,   526,   526,   526,   526,
+     526,   526,   526,   526,   526,   526,   526,   526,   526,   526,
+     526,   526,   526,   526,   526,   526,   526,   526,   526,   526,
+     526,   526,   526,   526,   526,   526,   526,   526,   526,   526,
+     526,   526,   526,   526,   526,   526,   526,   526,   526,   526,
+     526,   526,   526,   526,   526,   526,   526,   526,   526,   526,
+     526,   527,   527,   527,   529,   528,   530,   528,   531,   531,
+     532,   532,   533,   533,   534,   534,   535,   535,   535,   535,
+     536,   536,   537,   538,   538,   539,   539,   539,   539,   539,
+     539,   539,   539,   540,   541,   542,   543,   541,   544,   544,
+     546,   545,   547,   545,   548,   548,   549,   549,   550,   550,
+     551,   551,   552,   553,   553,   554,   554,   555,   555,   557,
+     556,   558,   558,   559,   559,   560,   560,   562,   561,   563,
+     561,   564,   561,   565,   565,   566,   566,   567,   567,   568,
+     568,   568,   568,   568,   568,   568,   568,   569,   569,   570,
+     570,   570,   572,   571,   573,   574,   574,   575,   575,   576,
+     576,   577,   577,   578,   578,   579,   579,   580,   580,   580,
+     580,   580,   580,   581,   581,   582,   582,   582,   582,   582,
+     583,   583,   584,   584,   585,   585,   585,   585,   585,   585,
+     585,   585,   586,   586,   587,   587,   587,   587,   588,   588,
+     589,   589,   589,   589,   589,   590,   590,   591,   591,   591,
+     591,   592,   592,   593,   593,   594,   594,   595,   595,   596,
+     596
 };
 
-  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
+/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.  */
 static const yytype_int8 yyr2[] =
 {
        0,     2,     1,     1,     3,     1,     1,     1,     1,     1,
@@ -4446,7 +4412,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,     4,     1,     1,     1,     3,     2,
-       3,     2,     3,     3,     4,     1,     0,     3,     1,     3,
+       3,     2,     3,     3,     4,     1,     0,     3,     1,     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,     1,     1,     1,     1,     1,     1,     1,
@@ -4478,23 +4445,23 @@
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     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,     1,
-       1,     1,     1,     1,     3,     6,     8,     4,     6,     1,
-       3,     1,     1,     4,     6,     1,     3,     3,     3
+       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,     1,     1,     1,     1,     1,     3,     6,     8,     4,
+       6,     1,     3,     1,     1,     4,     6,     1,     3,     3,
+       3
 };
 
 
@@ -4506,6 +4473,7 @@
 #define YYACCEPT        goto yyacceptlab
 #define YYABORT         goto yyabortlab
 #define YYERROR         goto yyerrorlab
+#define YYNOMEM         goto yyexhaustedlab
 
 
 #define YYRECOVERING()  (!!yyerrstatus)
@@ -4546,10 +4514,7 @@
     YYFPRINTF Args;                             \
 } while (0)
 
-/* This macro is provided for backward compatibility. */
-# ifndef YY_LOCATION_PRINT
-#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-# endif
+
 
 
 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)                    \
@@ -4573,16 +4538,12 @@
                        yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
 {
   FILE *yyoutput = yyo;
-  YYUSE (yyoutput);
-  YYUSE (pParseContext);
+  YY_USE (yyoutput);
+  YY_USE (pParseContext);
   if (!yyvaluep)
     return;
-# ifdef YYPRINT
-  if (yykind < YYNTOKENS)
-    YYPRINT (yyo, yytoknum[yykind], *yyvaluep);
-# endif
   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-  YYUSE (yykind);
+  YY_USE (yykind);
   YY_IGNORE_MAYBE_UNINITIALIZED_END
 }
 
@@ -4963,14 +4924,14 @@
 yydestruct (const char *yymsg,
             yysymbol_kind_t yykind, YYSTYPE *yyvaluep, glslang::TParseContext* pParseContext)
 {
-  YYUSE (yyvaluep);
-  YYUSE (pParseContext);
+  YY_USE (yyvaluep);
+  YY_USE (pParseContext);
   if (!yymsg)
     yymsg = "Deleting";
   YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
 
   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-  YYUSE (yykind);
+  YY_USE (yykind);
   YY_IGNORE_MAYBE_UNINITIALIZED_END
 }
 
@@ -5042,6 +5003,7 @@
   YYDPRINTF ((stderr, "Starting parse\n"));
 
   yychar = YYEMPTY; /* Cause a token to be read.  */
+
   goto yysetstate;
 
 
@@ -5067,7 +5029,7 @@
 
   if (yyss + yystacksize - 1 <= yyssp)
 #if !defined yyoverflow && !defined YYSTACK_RELOCATE
-    goto yyexhaustedlab;
+    YYNOMEM;
 #else
     {
       /* Get the current used size of the three stacks, in elements.  */
@@ -5095,7 +5057,7 @@
 # else /* defined YYSTACK_RELOCATE */
       /* Extend the stack our own way.  */
       if (YYMAXDEPTH <= yystacksize)
-        goto yyexhaustedlab;
+        YYNOMEM;
       yystacksize *= 2;
       if (YYMAXDEPTH < yystacksize)
         yystacksize = YYMAXDEPTH;
@@ -5106,7 +5068,7 @@
           YY_CAST (union yyalloc *,
                    YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
         if (! yyptr)
-          goto yyexhaustedlab;
+          YYNOMEM;
         YYSTACK_RELOCATE (yyss_alloc, yyss);
         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
 #  undef YYSTACK_RELOCATE
@@ -5128,6 +5090,7 @@
     }
 #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
 
+
   if (yystate == YYFINAL)
     YYACCEPT;
 
@@ -5240,302 +5203,325 @@
   switch (yyn)
     {
   case 2: /* variable_identifier: IDENTIFIER  */
-#line 394 "MachineIndependent/glslang.y"
+#line 355 "MachineIndependent/glslang.y"
                  {
         (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string);
     }
-#line 5248 "MachineIndependent/glslang_tab.cpp"
+#line 5211 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 3: /* primary_expression: variable_identifier  */
-#line 400 "MachineIndependent/glslang.y"
+#line 361 "MachineIndependent/glslang.y"
                           {
         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
     }
-#line 5256 "MachineIndependent/glslang_tab.cpp"
+#line 5219 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 4: /* primary_expression: LEFT_PAREN expression RIGHT_PAREN  */
-#line 403 "MachineIndependent/glslang.y"
+#line 364 "MachineIndependent/glslang.y"
                                         {
         (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
         if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
             (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
     }
-#line 5266 "MachineIndependent/glslang_tab.cpp"
+#line 5229 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 5: /* primary_expression: FLOATCONSTANT  */
-#line 408 "MachineIndependent/glslang.y"
+#line 369 "MachineIndependent/glslang.y"
                     {
         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
     }
-#line 5274 "MachineIndependent/glslang_tab.cpp"
+#line 5237 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 6: /* primary_expression: INTCONSTANT  */
-#line 411 "MachineIndependent/glslang.y"
+#line 372 "MachineIndependent/glslang.y"
                   {
         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
     }
-#line 5282 "MachineIndependent/glslang_tab.cpp"
+#line 5245 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 7: /* primary_expression: UINTCONSTANT  */
-#line 414 "MachineIndependent/glslang.y"
+#line 375 "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 5291 "MachineIndependent/glslang_tab.cpp"
+#line 5254 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 8: /* primary_expression: BOOLCONSTANT  */
-#line 418 "MachineIndependent/glslang.y"
+#line 379 "MachineIndependent/glslang.y"
                    {
         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
     }
-#line 5299 "MachineIndependent/glslang_tab.cpp"
+#line 5262 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 9: /* primary_expression: STRING_LITERAL  */
-#line 422 "MachineIndependent/glslang.y"
+#line 382 "MachineIndependent/glslang.y"
                      {
         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true);
     }
-#line 5307 "MachineIndependent/glslang_tab.cpp"
+#line 5270 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 10: /* primary_expression: INT32CONSTANT  */
-#line 425 "MachineIndependent/glslang.y"
+#line 385 "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 5316 "MachineIndependent/glslang_tab.cpp"
+#line 5279 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 11: /* primary_expression: UINT32CONSTANT  */
-#line 429 "MachineIndependent/glslang.y"
+#line 389 "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 5325 "MachineIndependent/glslang_tab.cpp"
+#line 5288 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 12: /* primary_expression: INT64CONSTANT  */
-#line 433 "MachineIndependent/glslang.y"
+#line 393 "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 5334 "MachineIndependent/glslang_tab.cpp"
+#line 5297 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 13: /* primary_expression: UINT64CONSTANT  */
-#line 437 "MachineIndependent/glslang.y"
+#line 397 "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 5343 "MachineIndependent/glslang_tab.cpp"
+#line 5306 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 14: /* primary_expression: INT16CONSTANT  */
-#line 441 "MachineIndependent/glslang.y"
+#line 401 "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 5352 "MachineIndependent/glslang_tab.cpp"
+#line 5315 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 15: /* primary_expression: UINT16CONSTANT  */
-#line 445 "MachineIndependent/glslang.y"
+#line 405 "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 5361 "MachineIndependent/glslang_tab.cpp"
+#line 5324 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 16: /* primary_expression: DOUBLECONSTANT  */
-#line 449 "MachineIndependent/glslang.y"
+#line 409 "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 5372 "MachineIndependent/glslang_tab.cpp"
+#line 5335 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 17: /* primary_expression: FLOAT16CONSTANT  */
-#line 455 "MachineIndependent/glslang.y"
+#line 415 "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 5381 "MachineIndependent/glslang_tab.cpp"
+#line 5344 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 18: /* postfix_expression: primary_expression  */
-#line 463 "MachineIndependent/glslang.y"
+#line 422 "MachineIndependent/glslang.y"
                          {
         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
     }
-#line 5389 "MachineIndependent/glslang_tab.cpp"
+#line 5352 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 19: /* postfix_expression: postfix_expression LEFT_BRACKET integer_expression RIGHT_BRACKET  */
-#line 466 "MachineIndependent/glslang.y"
+#line 425 "MachineIndependent/glslang.y"
                                                                        {
         (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode));
     }
-#line 5397 "MachineIndependent/glslang_tab.cpp"
+#line 5360 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 20: /* postfix_expression: function_call  */
-#line 469 "MachineIndependent/glslang.y"
+#line 428 "MachineIndependent/glslang.y"
                     {
         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
     }
-#line 5405 "MachineIndependent/glslang_tab.cpp"
+#line 5368 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 21: /* postfix_expression: postfix_expression DOT IDENTIFIER  */
-#line 472 "MachineIndependent/glslang.y"
+#line 431 "MachineIndependent/glslang.y"
                                         {
         (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string);
     }
-#line 5413 "MachineIndependent/glslang_tab.cpp"
+#line 5376 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 22: /* postfix_expression: postfix_expression INC_OP  */
-#line 475 "MachineIndependent/glslang.y"
+#line 434 "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 5423 "MachineIndependent/glslang_tab.cpp"
+#line 5386 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 23: /* postfix_expression: postfix_expression DEC_OP  */
-#line 480 "MachineIndependent/glslang.y"
+#line 439 "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 5433 "MachineIndependent/glslang_tab.cpp"
+#line 5396 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 24: /* integer_expression: expression  */
-#line 488 "MachineIndependent/glslang.y"
+#line 447 "MachineIndependent/glslang.y"
                  {
         parseContext.integerCheck((yyvsp[0].interm.intermTypedNode), "[]");
         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
     }
-#line 5442 "MachineIndependent/glslang_tab.cpp"
+#line 5405 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 25: /* function_call: function_call_or_method  */
-#line 495 "MachineIndependent/glslang.y"
+#line 454 "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 5451 "MachineIndependent/glslang_tab.cpp"
+#line 5414 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 26: /* function_call_or_method: function_call_generic  */
-#line 502 "MachineIndependent/glslang.y"
+#line 461 "MachineIndependent/glslang.y"
                             {
         (yyval.interm) = (yyvsp[0].interm);
     }
-#line 5459 "MachineIndependent/glslang_tab.cpp"
+#line 5422 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 27: /* function_call_generic: function_call_header_with_parameters RIGHT_PAREN  */
-#line 508 "MachineIndependent/glslang.y"
+#line 467 "MachineIndependent/glslang.y"
                                                        {
         (yyval.interm) = (yyvsp[-1].interm);
         (yyval.interm).loc = (yyvsp[0].lex).loc;
     }
-#line 5468 "MachineIndependent/glslang_tab.cpp"
+#line 5431 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 28: /* function_call_generic: function_call_header_no_parameters RIGHT_PAREN  */
-#line 512 "MachineIndependent/glslang.y"
+#line 471 "MachineIndependent/glslang.y"
                                                      {
         (yyval.interm) = (yyvsp[-1].interm);
         (yyval.interm).loc = (yyvsp[0].lex).loc;
     }
-#line 5477 "MachineIndependent/glslang_tab.cpp"
+#line 5440 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 29: /* function_call_header_no_parameters: function_call_header VOID  */
-#line 519 "MachineIndependent/glslang.y"
+#line 478 "MachineIndependent/glslang.y"
                                 {
         (yyval.interm) = (yyvsp[-1].interm);
     }
-#line 5485 "MachineIndependent/glslang_tab.cpp"
+#line 5448 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 30: /* function_call_header_no_parameters: function_call_header  */
-#line 522 "MachineIndependent/glslang.y"
+#line 481 "MachineIndependent/glslang.y"
                            {
         (yyval.interm) = (yyvsp[0].interm);
     }
-#line 5493 "MachineIndependent/glslang_tab.cpp"
+#line 5456 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 31: /* function_call_header_with_parameters: function_call_header assignment_expression  */
-#line 528 "MachineIndependent/glslang.y"
+#line 487 "MachineIndependent/glslang.y"
                                                  {
-        TParameter param = { 0, new TType };
-        param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
-        (yyvsp[-1].interm).function->addParameter(param);
-        (yyval.interm).function = (yyvsp[-1].interm).function;
-        (yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode);
+        if (parseContext.spvVersion.vulkan > 0
+            && parseContext.spvVersion.vulkanRelaxed
+            && (yyvsp[0].interm.intermTypedNode)->getType().containsOpaque())
+        {
+            (yyval.interm).intermNode = parseContext.vkRelaxedRemapFunctionArgument((yyval.interm).loc, (yyvsp[-1].interm).function, (yyvsp[0].interm.intermTypedNode));
+            (yyval.interm).function = (yyvsp[-1].interm).function;
+        }
+        else
+        {
+            TParameter param = { 0, new TType };
+            param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
+
+            (yyvsp[-1].interm).function->addParameter(param);
+            (yyval.interm).function = (yyvsp[-1].interm).function;
+            (yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode);
+        }
     }
-#line 5505 "MachineIndependent/glslang_tab.cpp"
+#line 5479 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 32: /* function_call_header_with_parameters: function_call_header_with_parameters COMMA assignment_expression  */
-#line 535 "MachineIndependent/glslang.y"
+#line 505 "MachineIndependent/glslang.y"
                                                                        {
-        TParameter param = { 0, new TType };
-        param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
-        (yyvsp[-2].interm).function->addParameter(param);
-        (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);
+        if (parseContext.spvVersion.vulkan > 0
+            && parseContext.spvVersion.vulkanRelaxed
+            && (yyvsp[0].interm.intermTypedNode)->getType().containsOpaque())
+        {
+            TIntermNode* remappedNode = parseContext.vkRelaxedRemapFunctionArgument((yyvsp[-1].lex).loc, (yyvsp[-2].interm).function, (yyvsp[0].interm.intermTypedNode));
+            (yyval.interm).intermNode = parseContext.intermediate.mergeAggregate((yyvsp[-2].interm).intermNode, remappedNode, (yyvsp[-1].lex).loc);
+            (yyval.interm).function = (yyvsp[-2].interm).function;
+        }
+        else
+        {
+            TParameter param = { 0, new TType };
+            param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
+
+            (yyvsp[-2].interm).function->addParameter(param);
+            (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 5517 "MachineIndependent/glslang_tab.cpp"
+#line 5503 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 33: /* function_call_header: function_identifier LEFT_PAREN  */
-#line 545 "MachineIndependent/glslang.y"
+#line 527 "MachineIndependent/glslang.y"
                                      {
         (yyval.interm) = (yyvsp[-1].interm);
     }
-#line 5525 "MachineIndependent/glslang_tab.cpp"
+#line 5511 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 34: /* function_identifier: type_specifier  */
-#line 553 "MachineIndependent/glslang.y"
+#line 535 "MachineIndependent/glslang.y"
                      {
         // Constructor
         (yyval.interm).intermNode = 0;
         (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
     }
-#line 5535 "MachineIndependent/glslang_tab.cpp"
+#line 5521 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 35: /* function_identifier: postfix_expression  */
-#line 558 "MachineIndependent/glslang.y"
+#line 540 "MachineIndependent/glslang.y"
                          {
         //
         // Should be a method or subroutine call, but we haven't recognized the arguments yet.
@@ -5563,50 +5549,50 @@
             (yyval.interm).function = new TFunction(empty, TType(EbtVoid), EOpNull);
         }
     }
-#line 5567 "MachineIndependent/glslang_tab.cpp"
+#line 5553 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 36: /* function_identifier: non_uniform_qualifier  */
-#line 586 "MachineIndependent/glslang.y"
+#line 567 "MachineIndependent/glslang.y"
                             {
         // Constructor
         (yyval.interm).intermNode = 0;
         (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
     }
-#line 5577 "MachineIndependent/glslang_tab.cpp"
+#line 5563 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 37: /* unary_expression: postfix_expression  */
-#line 595 "MachineIndependent/glslang.y"
+#line 575 "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 5588 "MachineIndependent/glslang_tab.cpp"
+#line 5574 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 38: /* unary_expression: INC_OP unary_expression  */
-#line 601 "MachineIndependent/glslang.y"
+#line 581 "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 5597 "MachineIndependent/glslang_tab.cpp"
+#line 5583 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 39: /* unary_expression: DEC_OP unary_expression  */
-#line 605 "MachineIndependent/glslang.y"
+#line 585 "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 5606 "MachineIndependent/glslang_tab.cpp"
+#line 5592 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 40: /* unary_expression: unary_operator unary_expression  */
-#line 609 "MachineIndependent/glslang.y"
+#line 589 "MachineIndependent/glslang.y"
                                       {
         if ((yyvsp[-1].interm).op != EOpNull) {
             char errorOp[2] = {0, 0};
@@ -5623,179 +5609,179 @@
                 (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
         }
     }
-#line 5627 "MachineIndependent/glslang_tab.cpp"
+#line 5613 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 41: /* unary_operator: PLUS  */
-#line 629 "MachineIndependent/glslang.y"
+#line 609 "MachineIndependent/glslang.y"
             { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; }
-#line 5633 "MachineIndependent/glslang_tab.cpp"
+#line 5619 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 42: /* unary_operator: DASH  */
-#line 630 "MachineIndependent/glslang.y"
+#line 610 "MachineIndependent/glslang.y"
             { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; }
-#line 5639 "MachineIndependent/glslang_tab.cpp"
+#line 5625 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 43: /* unary_operator: BANG  */
-#line 631 "MachineIndependent/glslang.y"
+#line 611 "MachineIndependent/glslang.y"
             { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; }
-#line 5645 "MachineIndependent/glslang_tab.cpp"
+#line 5631 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 44: /* unary_operator: TILDE  */
-#line 632 "MachineIndependent/glslang.y"
+#line 612 "MachineIndependent/glslang.y"
             { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot;
               parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise not"); }
-#line 5652 "MachineIndependent/glslang_tab.cpp"
+#line 5638 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 45: /* multiplicative_expression: unary_expression  */
-#line 638 "MachineIndependent/glslang.y"
+#line 618 "MachineIndependent/glslang.y"
                        { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5658 "MachineIndependent/glslang_tab.cpp"
+#line 5644 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 46: /* multiplicative_expression: multiplicative_expression STAR unary_expression  */
-#line 639 "MachineIndependent/glslang.y"
+#line 619 "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 5668 "MachineIndependent/glslang_tab.cpp"
+#line 5654 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 47: /* multiplicative_expression: multiplicative_expression SLASH unary_expression  */
-#line 644 "MachineIndependent/glslang.y"
+#line 624 "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 5678 "MachineIndependent/glslang_tab.cpp"
+#line 5664 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 48: /* multiplicative_expression: multiplicative_expression PERCENT unary_expression  */
-#line 649 "MachineIndependent/glslang.y"
+#line 629 "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 5689 "MachineIndependent/glslang_tab.cpp"
+#line 5675 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 49: /* additive_expression: multiplicative_expression  */
-#line 658 "MachineIndependent/glslang.y"
+#line 638 "MachineIndependent/glslang.y"
                                 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5695 "MachineIndependent/glslang_tab.cpp"
+#line 5681 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 50: /* additive_expression: additive_expression PLUS multiplicative_expression  */
-#line 659 "MachineIndependent/glslang.y"
+#line 639 "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 5705 "MachineIndependent/glslang_tab.cpp"
+#line 5691 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 51: /* additive_expression: additive_expression DASH multiplicative_expression  */
-#line 664 "MachineIndependent/glslang.y"
+#line 644 "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 5715 "MachineIndependent/glslang_tab.cpp"
+#line 5701 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 52: /* shift_expression: additive_expression  */
-#line 672 "MachineIndependent/glslang.y"
+#line 652 "MachineIndependent/glslang.y"
                           { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5721 "MachineIndependent/glslang_tab.cpp"
+#line 5707 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 53: /* shift_expression: shift_expression LEFT_OP additive_expression  */
-#line 673 "MachineIndependent/glslang.y"
+#line 653 "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 5732 "MachineIndependent/glslang_tab.cpp"
+#line 5718 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 54: /* shift_expression: shift_expression RIGHT_OP additive_expression  */
-#line 679 "MachineIndependent/glslang.y"
+#line 659 "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 5743 "MachineIndependent/glslang_tab.cpp"
+#line 5729 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 55: /* relational_expression: shift_expression  */
-#line 688 "MachineIndependent/glslang.y"
+#line 668 "MachineIndependent/glslang.y"
                        { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5749 "MachineIndependent/glslang_tab.cpp"
+#line 5735 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 56: /* relational_expression: relational_expression LEFT_ANGLE shift_expression  */
-#line 689 "MachineIndependent/glslang.y"
+#line 669 "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 5759 "MachineIndependent/glslang_tab.cpp"
+#line 5745 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 57: /* relational_expression: relational_expression RIGHT_ANGLE shift_expression  */
-#line 694 "MachineIndependent/glslang.y"
+#line 674 "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 5769 "MachineIndependent/glslang_tab.cpp"
+#line 5755 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 58: /* relational_expression: relational_expression LE_OP shift_expression  */
-#line 699 "MachineIndependent/glslang.y"
+#line 679 "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 5779 "MachineIndependent/glslang_tab.cpp"
+#line 5765 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 59: /* relational_expression: relational_expression GE_OP shift_expression  */
-#line 704 "MachineIndependent/glslang.y"
+#line 684 "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 5789 "MachineIndependent/glslang_tab.cpp"
+#line 5775 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 60: /* equality_expression: relational_expression  */
-#line 712 "MachineIndependent/glslang.y"
+#line 692 "MachineIndependent/glslang.y"
                             { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5795 "MachineIndependent/glslang_tab.cpp"
+#line 5781 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 61: /* equality_expression: equality_expression EQ_OP relational_expression  */
-#line 713 "MachineIndependent/glslang.y"
+#line 693 "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(), "==");
@@ -5805,11 +5791,11 @@
         if ((yyval.interm.intermTypedNode) == 0)
             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
     }
-#line 5809 "MachineIndependent/glslang_tab.cpp"
+#line 5795 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 62: /* equality_expression: equality_expression NE_OP relational_expression  */
-#line 722 "MachineIndependent/glslang.y"
+#line 702 "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(), "!=");
@@ -5819,124 +5805,124 @@
         if ((yyval.interm.intermTypedNode) == 0)
             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
     }
-#line 5823 "MachineIndependent/glslang_tab.cpp"
+#line 5809 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 63: /* and_expression: equality_expression  */
-#line 734 "MachineIndependent/glslang.y"
+#line 714 "MachineIndependent/glslang.y"
                           { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5829 "MachineIndependent/glslang_tab.cpp"
+#line 5815 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 64: /* and_expression: and_expression AMPERSAND equality_expression  */
-#line 735 "MachineIndependent/glslang.y"
+#line 715 "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 5840 "MachineIndependent/glslang_tab.cpp"
+#line 5826 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 65: /* exclusive_or_expression: and_expression  */
-#line 744 "MachineIndependent/glslang.y"
+#line 724 "MachineIndependent/glslang.y"
                      { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5846 "MachineIndependent/glslang_tab.cpp"
+#line 5832 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 66: /* exclusive_or_expression: exclusive_or_expression CARET and_expression  */
-#line 745 "MachineIndependent/glslang.y"
+#line 725 "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 5857 "MachineIndependent/glslang_tab.cpp"
+#line 5843 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 67: /* inclusive_or_expression: exclusive_or_expression  */
-#line 754 "MachineIndependent/glslang.y"
+#line 734 "MachineIndependent/glslang.y"
                               { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5863 "MachineIndependent/glslang_tab.cpp"
+#line 5849 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 68: /* inclusive_or_expression: inclusive_or_expression VERTICAL_BAR exclusive_or_expression  */
-#line 755 "MachineIndependent/glslang.y"
+#line 735 "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 5874 "MachineIndependent/glslang_tab.cpp"
+#line 5860 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 69: /* logical_and_expression: inclusive_or_expression  */
-#line 764 "MachineIndependent/glslang.y"
+#line 744 "MachineIndependent/glslang.y"
                               { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5880 "MachineIndependent/glslang_tab.cpp"
+#line 5866 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 70: /* logical_and_expression: logical_and_expression AND_OP inclusive_or_expression  */
-#line 765 "MachineIndependent/glslang.y"
+#line 745 "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 5890 "MachineIndependent/glslang_tab.cpp"
+#line 5876 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 71: /* logical_xor_expression: logical_and_expression  */
-#line 773 "MachineIndependent/glslang.y"
+#line 753 "MachineIndependent/glslang.y"
                              { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5896 "MachineIndependent/glslang_tab.cpp"
+#line 5882 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 72: /* logical_xor_expression: logical_xor_expression XOR_OP logical_and_expression  */
-#line 774 "MachineIndependent/glslang.y"
+#line 754 "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 5906 "MachineIndependent/glslang_tab.cpp"
+#line 5892 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 73: /* logical_or_expression: logical_xor_expression  */
-#line 782 "MachineIndependent/glslang.y"
+#line 762 "MachineIndependent/glslang.y"
                              { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5912 "MachineIndependent/glslang_tab.cpp"
+#line 5898 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 74: /* logical_or_expression: logical_or_expression OR_OP logical_xor_expression  */
-#line 783 "MachineIndependent/glslang.y"
+#line 763 "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 5922 "MachineIndependent/glslang_tab.cpp"
+#line 5908 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 75: /* conditional_expression: logical_or_expression  */
-#line 791 "MachineIndependent/glslang.y"
+#line 771 "MachineIndependent/glslang.y"
                             { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5928 "MachineIndependent/glslang_tab.cpp"
+#line 5914 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 76: /* $@1: %empty  */
-#line 792 "MachineIndependent/glslang.y"
+#line 772 "MachineIndependent/glslang.y"
                                      {
         ++parseContext.controlFlowNestingLevel;
     }
-#line 5936 "MachineIndependent/glslang_tab.cpp"
+#line 5922 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 77: /* conditional_expression: logical_or_expression QUESTION $@1 expression COLON assignment_expression  */
-#line 795 "MachineIndependent/glslang.y"
+#line 775 "MachineIndependent/glslang.y"
                                              {
         --parseContext.controlFlowNestingLevel;
         parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-5].interm.intermTypedNode));
@@ -5949,17 +5935,17 @@
             (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
         }
     }
-#line 5953 "MachineIndependent/glslang_tab.cpp"
+#line 5939 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 78: /* assignment_expression: conditional_expression  */
-#line 810 "MachineIndependent/glslang.y"
+#line 790 "MachineIndependent/glslang.y"
                              { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5959 "MachineIndependent/glslang_tab.cpp"
+#line 5945 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 79: /* assignment_expression: unary_expression assignment_operator assignment_expression  */
-#line 811 "MachineIndependent/glslang.y"
+#line 791 "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(), "=");
@@ -5973,119 +5959,119 @@
             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
         }
     }
-#line 5977 "MachineIndependent/glslang_tab.cpp"
+#line 5963 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 80: /* assignment_operator: EQUAL  */
-#line 827 "MachineIndependent/glslang.y"
+#line 807 "MachineIndependent/glslang.y"
             {
         (yyval.interm).loc = (yyvsp[0].lex).loc;
         (yyval.interm).op = EOpAssign;
     }
-#line 5986 "MachineIndependent/glslang_tab.cpp"
+#line 5972 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 81: /* assignment_operator: MUL_ASSIGN  */
-#line 831 "MachineIndependent/glslang.y"
+#line 811 "MachineIndependent/glslang.y"
                  {
         (yyval.interm).loc = (yyvsp[0].lex).loc;
         (yyval.interm).op = EOpMulAssign;
     }
-#line 5995 "MachineIndependent/glslang_tab.cpp"
+#line 5981 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 82: /* assignment_operator: DIV_ASSIGN  */
-#line 835 "MachineIndependent/glslang.y"
+#line 815 "MachineIndependent/glslang.y"
                  {
         (yyval.interm).loc = (yyvsp[0].lex).loc;
         (yyval.interm).op = EOpDivAssign;
     }
-#line 6004 "MachineIndependent/glslang_tab.cpp"
+#line 5990 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 83: /* assignment_operator: MOD_ASSIGN  */
-#line 839 "MachineIndependent/glslang.y"
+#line 819 "MachineIndependent/glslang.y"
                  {
         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "%=");
         (yyval.interm).loc = (yyvsp[0].lex).loc;
         (yyval.interm).op = EOpModAssign;
     }
-#line 6014 "MachineIndependent/glslang_tab.cpp"
+#line 6000 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 84: /* assignment_operator: ADD_ASSIGN  */
-#line 844 "MachineIndependent/glslang.y"
+#line 824 "MachineIndependent/glslang.y"
                  {
         (yyval.interm).loc = (yyvsp[0].lex).loc;
         (yyval.interm).op = EOpAddAssign;
     }
-#line 6023 "MachineIndependent/glslang_tab.cpp"
+#line 6009 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 85: /* assignment_operator: SUB_ASSIGN  */
-#line 848 "MachineIndependent/glslang.y"
+#line 828 "MachineIndependent/glslang.y"
                  {
         (yyval.interm).loc = (yyvsp[0].lex).loc;
         (yyval.interm).op = EOpSubAssign;
     }
-#line 6032 "MachineIndependent/glslang_tab.cpp"
+#line 6018 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 86: /* assignment_operator: LEFT_ASSIGN  */
-#line 852 "MachineIndependent/glslang.y"
+#line 832 "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 6041 "MachineIndependent/glslang_tab.cpp"
+#line 6027 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 87: /* assignment_operator: RIGHT_ASSIGN  */
-#line 856 "MachineIndependent/glslang.y"
+#line 836 "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 6050 "MachineIndependent/glslang_tab.cpp"
+#line 6036 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 88: /* assignment_operator: AND_ASSIGN  */
-#line 860 "MachineIndependent/glslang.y"
+#line 840 "MachineIndependent/glslang.y"
                  {
         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign");
         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign;
     }
-#line 6059 "MachineIndependent/glslang_tab.cpp"
+#line 6045 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 89: /* assignment_operator: XOR_ASSIGN  */
-#line 864 "MachineIndependent/glslang.y"
+#line 844 "MachineIndependent/glslang.y"
                  {
         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign");
         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign;
     }
-#line 6068 "MachineIndependent/glslang_tab.cpp"
+#line 6054 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 90: /* assignment_operator: OR_ASSIGN  */
-#line 868 "MachineIndependent/glslang.y"
+#line 848 "MachineIndependent/glslang.y"
                 {
         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign");
         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign;
     }
-#line 6077 "MachineIndependent/glslang_tab.cpp"
+#line 6063 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 91: /* expression: assignment_expression  */
-#line 875 "MachineIndependent/glslang.y"
+#line 855 "MachineIndependent/glslang.y"
                             {
         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
     }
-#line 6085 "MachineIndependent/glslang_tab.cpp"
+#line 6071 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 92: /* expression: expression COMMA assignment_expression  */
-#line 878 "MachineIndependent/glslang.y"
+#line 858 "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);
@@ -6094,30 +6080,30 @@
             (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
         }
     }
-#line 6098 "MachineIndependent/glslang_tab.cpp"
+#line 6084 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 93: /* constant_expression: conditional_expression  */
-#line 889 "MachineIndependent/glslang.y"
+#line 869 "MachineIndependent/glslang.y"
                              {
         parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), "");
         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
     }
-#line 6107 "MachineIndependent/glslang_tab.cpp"
+#line 6093 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 94: /* declaration: function_prototype SEMICOLON  */
-#line 896 "MachineIndependent/glslang.y"
+#line 876 "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 6117 "MachineIndependent/glslang_tab.cpp"
+#line 6103 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 95: /* declaration: spirv_instruction_qualifier function_prototype SEMICOLON  */
-#line 902 "MachineIndependent/glslang.y"
+#line 881 "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
@@ -6125,31 +6111,31 @@
         (yyval.interm.intermNode) = 0;
         // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature
     }
-#line 6129 "MachineIndependent/glslang_tab.cpp"
+#line 6115 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 96: /* declaration: spirv_execution_mode_qualifier SEMICOLON  */
-#line 909 "MachineIndependent/glslang.y"
+#line 888 "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 6139 "MachineIndependent/glslang_tab.cpp"
+#line 6125 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 97: /* declaration: init_declarator_list SEMICOLON  */
-#line 915 "MachineIndependent/glslang.y"
+#line 893 "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 6149 "MachineIndependent/glslang_tab.cpp"
+#line 6135 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 98: /* declaration: PRECISION precision_qualifier type_specifier SEMICOLON  */
-#line 920 "MachineIndependent/glslang.y"
+#line 898 "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
@@ -6157,75 +6143,75 @@
         parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision);
         (yyval.interm.intermNode) = 0;
     }
-#line 6161 "MachineIndependent/glslang_tab.cpp"
+#line 6147 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 99: /* declaration: block_structure SEMICOLON  */
-#line 927 "MachineIndependent/glslang.y"
+#line 905 "MachineIndependent/glslang.y"
                                 {
         parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList);
         (yyval.interm.intermNode) = 0;
     }
-#line 6170 "MachineIndependent/glslang_tab.cpp"
+#line 6156 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 100: /* declaration: block_structure IDENTIFIER SEMICOLON  */
-#line 931 "MachineIndependent/glslang.y"
+#line 909 "MachineIndependent/glslang.y"
                                            {
         parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string);
         (yyval.interm.intermNode) = 0;
     }
-#line 6179 "MachineIndependent/glslang_tab.cpp"
+#line 6165 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 101: /* declaration: block_structure IDENTIFIER array_specifier SEMICOLON  */
-#line 935 "MachineIndependent/glslang.y"
+#line 913 "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 6188 "MachineIndependent/glslang_tab.cpp"
+#line 6174 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 102: /* declaration: type_qualifier SEMICOLON  */
-#line 939 "MachineIndependent/glslang.y"
+#line 917 "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 6198 "MachineIndependent/glslang_tab.cpp"
+#line 6184 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 103: /* declaration: type_qualifier IDENTIFIER SEMICOLON  */
-#line 944 "MachineIndependent/glslang.y"
+#line 922 "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 6208 "MachineIndependent/glslang_tab.cpp"
+#line 6194 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 104: /* declaration: type_qualifier IDENTIFIER identifier_list SEMICOLON  */
-#line 949 "MachineIndependent/glslang.y"
+#line 927 "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 6219 "MachineIndependent/glslang_tab.cpp"
+#line 6205 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 105: /* $@2: %empty  */
-#line 958 "MachineIndependent/glslang.y"
+#line 936 "MachineIndependent/glslang.y"
                                            { parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); }
-#line 6225 "MachineIndependent/glslang_tab.cpp"
+#line 6211 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 106: /* block_structure: type_qualifier IDENTIFIER LEFT_BRACE $@2 struct_declaration_list RIGHT_BRACE  */
-#line 958 "MachineIndependent/glslang.y"
+#line 936 "MachineIndependent/glslang.y"
                                                                                                                           {
         --parseContext.blockNestingLevel;
         parseContext.blockName = (yyvsp[-4].lex).string;
@@ -6235,101 +6221,113 @@
         (yyval.interm).loc = (yyvsp[-5].interm.type).loc;
         (yyval.interm).typeList = (yyvsp[-1].interm.typeList);
     }
-#line 6239 "MachineIndependent/glslang_tab.cpp"
+#line 6225 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 107: /* identifier_list: COMMA IDENTIFIER  */
-#line 969 "MachineIndependent/glslang.y"
+#line 947 "MachineIndependent/glslang.y"
                        {
         (yyval.interm.identifierList) = new TIdentifierList;
         (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
     }
-#line 6248 "MachineIndependent/glslang_tab.cpp"
+#line 6234 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 108: /* identifier_list: identifier_list COMMA IDENTIFIER  */
-#line 973 "MachineIndependent/glslang.y"
+#line 951 "MachineIndependent/glslang.y"
                                        {
         (yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList);
         (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
     }
-#line 6257 "MachineIndependent/glslang_tab.cpp"
+#line 6243 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 109: /* function_prototype: function_declarator RIGHT_PAREN  */
-#line 980 "MachineIndependent/glslang.y"
+#line 958 "MachineIndependent/glslang.y"
                                        {
         (yyval.interm).function = (yyvsp[-1].interm.function);
+        if (parseContext.compileOnly) (yyval.interm).function->setExport();
         (yyval.interm).loc = (yyvsp[0].lex).loc;
     }
+#line 6253 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 110: /* function_prototype: function_declarator RIGHT_PAREN attribute  */
+#line 963 "MachineIndependent/glslang.y"
+                                                {
+        (yyval.interm).function = (yyvsp[-2].interm.function);
+        if (parseContext.compileOnly) (yyval.interm).function->setExport();
+        (yyval.interm).loc = (yyvsp[-1].lex).loc;
+        const char * extensions[2] = { E_GL_EXT_subgroup_uniform_control_flow, E_GL_EXT_maximal_reconvergence };
+        parseContext.requireExtensions((yyvsp[-1].lex).loc, 2, extensions, "attribute");
+        parseContext.handleFunctionAttributes((yyvsp[-1].lex).loc, *(yyvsp[0].interm.attributes));
+    }
 #line 6266 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 110: /* function_prototype: function_declarator RIGHT_PAREN attribute  */
-#line 984 "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 6277 "MachineIndependent/glslang_tab.cpp"
-    break;
-
   case 111: /* function_prototype: attribute function_declarator RIGHT_PAREN  */
-#line 990 "MachineIndependent/glslang.y"
+#line 971 "MachineIndependent/glslang.y"
                                                 {
         (yyval.interm).function = (yyvsp[-1].interm.function);
+        if (parseContext.compileOnly) (yyval.interm).function->setExport();
         (yyval.interm).loc = (yyvsp[0].lex).loc;
-        parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_subgroup_uniform_control_flow, "attribute");
+        const char * extensions[2] = { E_GL_EXT_subgroup_uniform_control_flow, E_GL_EXT_maximal_reconvergence };
+        parseContext.requireExtensions((yyvsp[0].lex).loc, 2, extensions, "attribute");
         parseContext.handleFunctionAttributes((yyvsp[0].lex).loc, *(yyvsp[-2].interm.attributes));
     }
-#line 6288 "MachineIndependent/glslang_tab.cpp"
+#line 6279 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 112: /* function_prototype: attribute function_declarator RIGHT_PAREN attribute  */
-#line 996 "MachineIndependent/glslang.y"
+#line 979 "MachineIndependent/glslang.y"
                                                           {
         (yyval.interm).function = (yyvsp[-2].interm.function);
+        if (parseContext.compileOnly) (yyval.interm).function->setExport();
         (yyval.interm).loc = (yyvsp[-1].lex).loc;
-        parseContext.requireExtensions((yyvsp[-1].lex).loc, 1, &E_GL_EXT_subgroup_uniform_control_flow, "attribute");
+        const char * extensions[2] = { E_GL_EXT_subgroup_uniform_control_flow, E_GL_EXT_maximal_reconvergence };
+        parseContext.requireExtensions((yyvsp[-1].lex).loc, 2, extensions, "attribute");
         parseContext.handleFunctionAttributes((yyvsp[-1].lex).loc, *(yyvsp[-3].interm.attributes));
         parseContext.handleFunctionAttributes((yyvsp[-1].lex).loc, *(yyvsp[0].interm.attributes));
     }
-#line 6300 "MachineIndependent/glslang_tab.cpp"
+#line 6293 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 113: /* function_declarator: function_header  */
-#line 1006 "MachineIndependent/glslang.y"
+#line 991 "MachineIndependent/glslang.y"
                       {
         (yyval.interm.function) = (yyvsp[0].interm.function);
     }
-#line 6308 "MachineIndependent/glslang_tab.cpp"
+#line 6301 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 114: /* function_declarator: function_header_with_parameters  */
-#line 1009 "MachineIndependent/glslang.y"
+#line 994 "MachineIndependent/glslang.y"
                                       {
         (yyval.interm.function) = (yyvsp[0].interm.function);
     }
-#line 6316 "MachineIndependent/glslang_tab.cpp"
+#line 6309 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 115: /* function_header_with_parameters: function_header parameter_declaration  */
-#line 1016 "MachineIndependent/glslang.y"
+#line 1001 "MachineIndependent/glslang.y"
                                             {
         // Add the parameter
         (yyval.interm.function) = (yyvsp[-1].interm.function);
         if ((yyvsp[0].interm).param.type->getBasicType() != EbtVoid)
-            (yyvsp[-1].interm.function)->addParameter((yyvsp[0].interm).param);
+        {
+            if (!(parseContext.spvVersion.vulkan > 0 && parseContext.spvVersion.vulkanRelaxed))
+                (yyvsp[-1].interm.function)->addParameter((yyvsp[0].interm).param);
+            else
+                parseContext.vkRelaxedRemapFunctionParameter((yyvsp[-1].interm.function), (yyvsp[0].interm).param);
+        }
         else
             delete (yyvsp[0].interm).param.type;
     }
-#line 6329 "MachineIndependent/glslang_tab.cpp"
+#line 6327 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 116: /* function_header_with_parameters: function_header_with_parameters COMMA parameter_declaration  */
-#line 1024 "MachineIndependent/glslang.y"
+#line 1014 "MachineIndependent/glslang.y"
                                                                   {
         //
         // Only first parameter of one-parameter functions can be void
@@ -6344,14 +6342,17 @@
         } else {
             // Add the parameter
             (yyval.interm.function) = (yyvsp[-2].interm.function);
-            (yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param);
+            if (!(parseContext.spvVersion.vulkan > 0 && parseContext.spvVersion.vulkanRelaxed))
+                (yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param);
+            else
+                parseContext.vkRelaxedRemapFunctionParameter((yyvsp[-2].interm.function), (yyvsp[0].interm).param);
         }
     }
-#line 6351 "MachineIndependent/glslang_tab.cpp"
+#line 6352 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 117: /* function_header: fully_specified_type IDENTIFIER LEFT_PAREN  */
-#line 1044 "MachineIndependent/glslang.y"
+#line 1037 "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",
@@ -6371,11 +6372,11 @@
         function = new TFunction((yyvsp[-1].lex).string, type);
         (yyval.interm.function) = function;
     }
-#line 6375 "MachineIndependent/glslang_tab.cpp"
+#line 6376 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 118: /* parameter_declarator: type_specifier IDENTIFIER  */
-#line 1067 "MachineIndependent/glslang.y"
+#line 1060 "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");
@@ -6391,11 +6392,11 @@
         (yyval.interm).loc = (yyvsp[0].lex).loc;
         (yyval.interm).param = param;
     }
-#line 6395 "MachineIndependent/glslang_tab.cpp"
+#line 6396 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 119: /* parameter_declarator: type_specifier IDENTIFIER array_specifier  */
-#line 1082 "MachineIndependent/glslang.y"
+#line 1075 "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");
@@ -6415,175 +6416,173 @@
         (yyval.interm).loc = (yyvsp[-1].lex).loc;
         (yyval.interm).param = param;
     }
-#line 6419 "MachineIndependent/glslang_tab.cpp"
+#line 6420 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 120: /* parameter_declaration: type_qualifier parameter_declarator  */
-#line 1107 "MachineIndependent/glslang.y"
+#line 1100 "MachineIndependent/glslang.y"
                                           {
         (yyval.interm) = (yyvsp[0].interm);
         if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
             (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
-        parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
+        parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier(), (yyval.interm).param.type->isCoopMat());
 
         parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
         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 6435 "MachineIndependent/glslang_tab.cpp"
+#line 6436 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 121: /* parameter_declaration: parameter_declarator  */
-#line 1118 "MachineIndependent/glslang.y"
+#line 1111 "MachineIndependent/glslang.y"
                            {
         (yyval.interm) = (yyvsp[0].interm);
 
         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
         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());
+        parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier(), (yyval.interm).param.type->isCoopMat());
     }
-#line 6447 "MachineIndependent/glslang_tab.cpp"
+#line 6448 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 122: /* parameter_declaration: type_qualifier parameter_type_specifier  */
-#line 1128 "MachineIndependent/glslang.y"
+#line 1121 "MachineIndependent/glslang.y"
                                               {
         (yyval.interm) = (yyvsp[0].interm);
         if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
             (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
-        parseContext.precisionQualifierCheck((yyvsp[-1].interm.type).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
+        parseContext.precisionQualifierCheck((yyvsp[-1].interm.type).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier(), (yyval.interm).param.type->isCoopMat());
 
         parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
         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 6462 "MachineIndependent/glslang_tab.cpp"
+#line 6463 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 123: /* parameter_declaration: parameter_type_specifier  */
-#line 1138 "MachineIndependent/glslang.y"
+#line 1131 "MachineIndependent/glslang.y"
                                {
         (yyval.interm) = (yyvsp[0].interm);
 
         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
         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());
+        parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier(), (yyval.interm).param.type->isCoopMat());
     }
-#line 6474 "MachineIndependent/glslang_tab.cpp"
+#line 6475 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 124: /* parameter_type_specifier: type_specifier  */
-#line 1148 "MachineIndependent/glslang.y"
+#line 1141 "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 6485 "MachineIndependent/glslang_tab.cpp"
+#line 6486 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 125: /* init_declarator_list: single_declaration  */
-#line 1157 "MachineIndependent/glslang.y"
+#line 1150 "MachineIndependent/glslang.y"
                          {
         (yyval.interm) = (yyvsp[0].interm);
     }
-#line 6493 "MachineIndependent/glslang_tab.cpp"
+#line 6494 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 126: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER  */
-#line 1160 "MachineIndependent/glslang.y"
+#line 1153 "MachineIndependent/glslang.y"
                                             {
         (yyval.interm) = (yyvsp[-2].interm);
         parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type);
     }
-#line 6502 "MachineIndependent/glslang_tab.cpp"
+#line 6503 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 127: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER array_specifier  */
-#line 1164 "MachineIndependent/glslang.y"
+#line 1157 "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 6511 "MachineIndependent/glslang_tab.cpp"
+#line 6512 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 128: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER array_specifier EQUAL initializer  */
-#line 1168 "MachineIndependent/glslang.y"
+#line 1161 "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 6521 "MachineIndependent/glslang_tab.cpp"
+#line 6522 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 129: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER EQUAL initializer  */
-#line 1173 "MachineIndependent/glslang.y"
+#line 1166 "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 6531 "MachineIndependent/glslang_tab.cpp"
+#line 6532 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 130: /* single_declaration: fully_specified_type  */
-#line 1181 "MachineIndependent/glslang.y"
+#line 1174 "MachineIndependent/glslang.y"
                            {
         (yyval.interm).type = (yyvsp[0].interm.type);
         (yyval.interm).intermNode = 0;
-
         parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type);
-
     }
-#line 6543 "MachineIndependent/glslang_tab.cpp"
+#line 6542 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 131: /* single_declaration: fully_specified_type IDENTIFIER  */
-#line 1188 "MachineIndependent/glslang.y"
+#line 1179 "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 6553 "MachineIndependent/glslang_tab.cpp"
+#line 6552 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 132: /* single_declaration: fully_specified_type IDENTIFIER array_specifier  */
-#line 1193 "MachineIndependent/glslang.y"
+#line 1184 "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 6563 "MachineIndependent/glslang_tab.cpp"
+#line 6562 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 133: /* single_declaration: fully_specified_type IDENTIFIER array_specifier EQUAL initializer  */
-#line 1198 "MachineIndependent/glslang.y"
+#line 1189 "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 6573 "MachineIndependent/glslang_tab.cpp"
+#line 6572 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 134: /* single_declaration: fully_specified_type IDENTIFIER EQUAL initializer  */
-#line 1203 "MachineIndependent/glslang.y"
+#line 1194 "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 6583 "MachineIndependent/glslang_tab.cpp"
+#line 6582 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 135: /* fully_specified_type: type_specifier  */
-#line 1212 "MachineIndependent/glslang.y"
+#line 1203 "MachineIndependent/glslang.y"
                      {
         (yyval.interm.type) = (yyvsp[0].interm.type);
 
@@ -6592,13 +6591,13 @@
             parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
             parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
         }
-        parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier);
+        parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier, (yyval.interm.type).isCoopmat());
     }
-#line 6598 "MachineIndependent/glslang_tab.cpp"
+#line 6597 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 136: /* fully_specified_type: type_qualifier type_specifier  */
-#line 1222 "MachineIndependent/glslang.y"
+#line 1213 "MachineIndependent/glslang.y"
                                      {
         parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, false, &(yyvsp[0].interm.type));
         parseContext.globalQualifierTypeCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, (yyvsp[0].interm.type));
@@ -6614,7 +6613,7 @@
         parseContext.checkNoShaderLayouts((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
         (yyvsp[0].interm.type).shaderQualifiers.merge((yyvsp[-1].interm.type).shaderQualifiers);
         parseContext.mergeQualifiers((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyvsp[-1].interm.type).qualifier, true);
-        parseContext.precisionQualifierCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).basicType, (yyvsp[0].interm.type).qualifier);
+        parseContext.precisionQualifierCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).basicType, (yyvsp[0].interm.type).qualifier, (yyvsp[0].interm.type).isCoopmat());
 
         (yyval.interm.type) = (yyvsp[0].interm.type);
 
@@ -6623,22 +6622,22 @@
              (parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn)))
             (yyval.interm.type).qualifier.smooth = true;
     }
-#line 6627 "MachineIndependent/glslang_tab.cpp"
+#line 6626 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 137: /* invariant_qualifier: INVARIANT  */
-#line 1249 "MachineIndependent/glslang.y"
+#line 1240 "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 6638 "MachineIndependent/glslang_tab.cpp"
+#line 6637 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 138: /* interpolation_qualifier: SMOOTH  */
-#line 1258 "MachineIndependent/glslang.y"
+#line 1249 "MachineIndependent/glslang.y"
              {
         parseContext.globalCheck((yyvsp[0].lex).loc, "smooth");
         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "smooth");
@@ -6646,11 +6645,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.smooth = true;
     }
-#line 6650 "MachineIndependent/glslang_tab.cpp"
+#line 6649 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 139: /* interpolation_qualifier: FLAT  */
-#line 1265 "MachineIndependent/glslang.y"
+#line 1256 "MachineIndependent/glslang.y"
            {
         parseContext.globalCheck((yyvsp[0].lex).loc, "flat");
         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "flat");
@@ -6658,11 +6657,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.flat = true;
     }
-#line 6662 "MachineIndependent/glslang_tab.cpp"
+#line 6661 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 140: /* interpolation_qualifier: NOPERSPECTIVE  */
-#line 1273 "MachineIndependent/glslang.y"
+#line 1263 "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");
@@ -6670,11 +6669,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.nopersp = true;
     }
-#line 6674 "MachineIndependent/glslang_tab.cpp"
+#line 6673 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 141: /* interpolation_qualifier: EXPLICITINTERPAMD  */
-#line 1280 "MachineIndependent/glslang.y"
+#line 1270 "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");
@@ -6682,11 +6681,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.explicitInterp = true;
     }
-#line 6686 "MachineIndependent/glslang_tab.cpp"
+#line 6685 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 142: /* interpolation_qualifier: PERVERTEXNV  */
-#line 1287 "MachineIndependent/glslang.y"
+#line 1277 "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");
@@ -6695,11 +6694,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.pervertexNV = true;
     }
-#line 6699 "MachineIndependent/glslang_tab.cpp"
+#line 6698 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 143: /* interpolation_qualifier: PERVERTEXEXT  */
-#line 1295 "MachineIndependent/glslang.y"
+#line 1285 "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");
@@ -6708,11 +6707,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.pervertexEXT = true;
     }
-#line 6712 "MachineIndependent/glslang_tab.cpp"
+#line 6711 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 144: /* interpolation_qualifier: PERPRIMITIVENV  */
-#line 1303 "MachineIndependent/glslang.y"
+#line 1293 "MachineIndependent/glslang.y"
                      {
         // No need for profile version or extension check. Shader stage already checks both.
         parseContext.globalCheck((yyvsp[0].lex).loc, "perprimitiveNV");
@@ -6723,11 +6722,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.perPrimitiveNV = true;
     }
-#line 6727 "MachineIndependent/glslang_tab.cpp"
+#line 6726 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 145: /* interpolation_qualifier: PERPRIMITIVEEXT  */
-#line 1313 "MachineIndependent/glslang.y"
+#line 1303 "MachineIndependent/glslang.y"
                       {
         // No need for profile version or extension check. Shader stage already checks both.
         parseContext.globalCheck((yyvsp[0].lex).loc, "perprimitiveEXT");
@@ -6738,11 +6737,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.perPrimitiveNV = true;
     }
-#line 6742 "MachineIndependent/glslang_tab.cpp"
+#line 6741 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 146: /* interpolation_qualifier: PERVIEWNV  */
-#line 1323 "MachineIndependent/glslang.y"
+#line 1313 "MachineIndependent/glslang.y"
                 {
         // No need for profile version or extension check. Shader stage already checks both.
         parseContext.globalCheck((yyvsp[0].lex).loc, "perviewNV");
@@ -6750,11 +6749,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.perViewNV = true;
     }
-#line 6754 "MachineIndependent/glslang_tab.cpp"
+#line 6753 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 147: /* interpolation_qualifier: PERTASKNV  */
-#line 1330 "MachineIndependent/glslang.y"
+#line 1320 "MachineIndependent/glslang.y"
                 {
         // No need for profile version or extension check. Shader stage already checks both.
         parseContext.globalCheck((yyvsp[0].lex).loc, "taskNV");
@@ -6762,84 +6761,84 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.perTaskNV = true;
     }
-#line 6766 "MachineIndependent/glslang_tab.cpp"
+#line 6765 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 148: /* layout_qualifier: LAYOUT LEFT_PAREN layout_qualifier_id_list RIGHT_PAREN  */
-#line 1341 "MachineIndependent/glslang.y"
+#line 1330 "MachineIndependent/glslang.y"
                                                              {
         (yyval.interm.type) = (yyvsp[-1].interm.type);
     }
-#line 6774 "MachineIndependent/glslang_tab.cpp"
+#line 6773 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 149: /* layout_qualifier_id_list: layout_qualifier_id  */
-#line 1347 "MachineIndependent/glslang.y"
+#line 1336 "MachineIndependent/glslang.y"
                           {
         (yyval.interm.type) = (yyvsp[0].interm.type);
     }
-#line 6782 "MachineIndependent/glslang_tab.cpp"
+#line 6781 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 150: /* layout_qualifier_id_list: layout_qualifier_id_list COMMA layout_qualifier_id  */
-#line 1350 "MachineIndependent/glslang.y"
+#line 1339 "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 6792 "MachineIndependent/glslang_tab.cpp"
+#line 6791 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 151: /* layout_qualifier_id: IDENTIFIER  */
-#line 1357 "MachineIndependent/glslang.y"
+#line 1346 "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 6801 "MachineIndependent/glslang_tab.cpp"
+#line 6800 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 152: /* layout_qualifier_id: IDENTIFIER EQUAL constant_expression  */
-#line 1361 "MachineIndependent/glslang.y"
+#line 1350 "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 6810 "MachineIndependent/glslang_tab.cpp"
+#line 6809 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 153: /* layout_qualifier_id: SHARED  */
-#line 1365 "MachineIndependent/glslang.y"
+#line 1354 "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 6820 "MachineIndependent/glslang_tab.cpp"
+#line 6819 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 154: /* precise_qualifier: PRECISE  */
-#line 1374 "MachineIndependent/glslang.y"
+#line 1362 "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 6831 "MachineIndependent/glslang_tab.cpp"
+#line 6830 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 155: /* type_qualifier: single_type_qualifier  */
-#line 1384 "MachineIndependent/glslang.y"
+#line 1371 "MachineIndependent/glslang.y"
                             {
         (yyval.interm.type) = (yyvsp[0].interm.type);
     }
-#line 6839 "MachineIndependent/glslang_tab.cpp"
+#line 6838 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 156: /* type_qualifier: type_qualifier single_type_qualifier  */
-#line 1387 "MachineIndependent/glslang.y"
+#line 1374 "MachineIndependent/glslang.y"
                                            {
         (yyval.interm.type) = (yyvsp[-1].interm.type);
         if ((yyval.interm.type).basicType == EbtVoid)
@@ -6848,151 +6847,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 6852 "MachineIndependent/glslang_tab.cpp"
+#line 6851 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 157: /* single_type_qualifier: storage_qualifier  */
-#line 1398 "MachineIndependent/glslang.y"
+#line 1385 "MachineIndependent/glslang.y"
                         {
         (yyval.interm.type) = (yyvsp[0].interm.type);
     }
-#line 6860 "MachineIndependent/glslang_tab.cpp"
+#line 6859 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 158: /* single_type_qualifier: layout_qualifier  */
-#line 1401 "MachineIndependent/glslang.y"
+#line 1388 "MachineIndependent/glslang.y"
                        {
         (yyval.interm.type) = (yyvsp[0].interm.type);
     }
-#line 6868 "MachineIndependent/glslang_tab.cpp"
+#line 6867 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 159: /* single_type_qualifier: precision_qualifier  */
-#line 1404 "MachineIndependent/glslang.y"
+#line 1391 "MachineIndependent/glslang.y"
                           {
         parseContext.checkPrecisionQualifier((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier.precision);
         (yyval.interm.type) = (yyvsp[0].interm.type);
     }
-#line 6877 "MachineIndependent/glslang_tab.cpp"
+#line 6876 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 160: /* single_type_qualifier: interpolation_qualifier  */
-#line 1408 "MachineIndependent/glslang.y"
+#line 1395 "MachineIndependent/glslang.y"
                               {
         // allow inheritance of storage qualifier from block declaration
         (yyval.interm.type) = (yyvsp[0].interm.type);
     }
-#line 6886 "MachineIndependent/glslang_tab.cpp"
+#line 6885 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 161: /* single_type_qualifier: invariant_qualifier  */
-#line 1412 "MachineIndependent/glslang.y"
+#line 1399 "MachineIndependent/glslang.y"
                           {
         // allow inheritance of storage qualifier from block declaration
         (yyval.interm.type) = (yyvsp[0].interm.type);
     }
-#line 6895 "MachineIndependent/glslang_tab.cpp"
+#line 6894 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 162: /* single_type_qualifier: precise_qualifier  */
-#line 1417 "MachineIndependent/glslang.y"
+#line 1403 "MachineIndependent/glslang.y"
                         {
         // allow inheritance of storage qualifier from block declaration
         (yyval.interm.type) = (yyvsp[0].interm.type);
     }
-#line 6904 "MachineIndependent/glslang_tab.cpp"
+#line 6903 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 163: /* single_type_qualifier: non_uniform_qualifier  */
-#line 1421 "MachineIndependent/glslang.y"
+#line 1407 "MachineIndependent/glslang.y"
                             {
         (yyval.interm.type) = (yyvsp[0].interm.type);
     }
-#line 6912 "MachineIndependent/glslang_tab.cpp"
+#line 6911 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 164: /* single_type_qualifier: spirv_storage_class_qualifier  */
-#line 1424 "MachineIndependent/glslang.y"
+#line 1410 "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 6922 "MachineIndependent/glslang_tab.cpp"
+#line 6921 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 165: /* single_type_qualifier: spirv_decorate_qualifier  */
-#line 1429 "MachineIndependent/glslang.y"
+#line 1415 "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 6931 "MachineIndependent/glslang_tab.cpp"
+#line 6930 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 166: /* single_type_qualifier: SPIRV_BY_REFERENCE  */
-#line 1433 "MachineIndependent/glslang.y"
+#line 1419 "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 6941 "MachineIndependent/glslang_tab.cpp"
+#line 6940 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 167: /* single_type_qualifier: SPIRV_LITERAL  */
-#line 1438 "MachineIndependent/glslang.y"
+#line 1424 "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 6951 "MachineIndependent/glslang_tab.cpp"
+#line 6950 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 168: /* storage_qualifier: CONST  */
-#line 1447 "MachineIndependent/glslang.y"
+#line 1432 "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 6960 "MachineIndependent/glslang_tab.cpp"
+#line 6959 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 169: /* storage_qualifier: INOUT  */
-#line 1451 "MachineIndependent/glslang.y"
+#line 1436 "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 6970 "MachineIndependent/glslang_tab.cpp"
+#line 6969 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 170: /* storage_qualifier: IN  */
-#line 1456 "MachineIndependent/glslang.y"
+#line 1441 "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 6981 "MachineIndependent/glslang_tab.cpp"
+#line 6980 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 171: /* storage_qualifier: OUT  */
-#line 1462 "MachineIndependent/glslang.y"
+#line 1447 "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 6992 "MachineIndependent/glslang_tab.cpp"
+#line 6991 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 172: /* storage_qualifier: CENTROID  */
-#line 1468 "MachineIndependent/glslang.y"
+#line 1453 "MachineIndependent/glslang.y"
                {
         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 120, 0, "centroid");
         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "centroid");
@@ -7000,31 +6999,31 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.centroid = true;
     }
-#line 7004 "MachineIndependent/glslang_tab.cpp"
+#line 7003 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 173: /* storage_qualifier: UNIFORM  */
-#line 1475 "MachineIndependent/glslang.y"
+#line 1460 "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 7014 "MachineIndependent/glslang_tab.cpp"
+#line 7013 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 174: /* storage_qualifier: TILEIMAGEEXT  */
-#line 1480 "MachineIndependent/glslang.y"
+#line 1465 "MachineIndependent/glslang.y"
                    {
         parseContext.globalCheck((yyvsp[0].lex).loc, "tileImageEXT");
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.storage = EvqTileImageEXT;
     }
-#line 7024 "MachineIndependent/glslang_tab.cpp"
+#line 7023 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 175: /* storage_qualifier: SHARED  */
-#line 1485 "MachineIndependent/glslang.y"
+#line 1470 "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");
@@ -7033,21 +7032,21 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.storage = EvqShared;
     }
-#line 7037 "MachineIndependent/glslang_tab.cpp"
+#line 7036 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 176: /* storage_qualifier: BUFFER  */
-#line 1493 "MachineIndependent/glslang.y"
+#line 1478 "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 7047 "MachineIndependent/glslang_tab.cpp"
+#line 7046 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 177: /* storage_qualifier: ATTRIBUTE  */
-#line 1499 "MachineIndependent/glslang.y"
+#line 1483 "MachineIndependent/glslang.y"
                 {
         parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute");
         parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute");
@@ -7060,11 +7059,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.storage = EvqVaryingIn;
     }
-#line 7064 "MachineIndependent/glslang_tab.cpp"
+#line 7063 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 178: /* storage_qualifier: VARYING  */
-#line 1511 "MachineIndependent/glslang.y"
+#line 1495 "MachineIndependent/glslang.y"
               {
         parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying");
         parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying");
@@ -7079,32 +7078,32 @@
         else
             (yyval.interm.type).qualifier.storage = EvqVaryingIn;
     }
-#line 7083 "MachineIndependent/glslang_tab.cpp"
+#line 7082 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 179: /* storage_qualifier: PATCH  */
-#line 1525 "MachineIndependent/glslang.y"
+#line 1509 "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 7094 "MachineIndependent/glslang_tab.cpp"
+#line 7093 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 180: /* storage_qualifier: SAMPLE  */
-#line 1531 "MachineIndependent/glslang.y"
+#line 1515 "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 7104 "MachineIndependent/glslang_tab.cpp"
+#line 7103 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 181: /* storage_qualifier: HITATTRNV  */
-#line 1536 "MachineIndependent/glslang.y"
+#line 1520 "MachineIndependent/glslang.y"
                 {
         parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeNV");
         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
@@ -7113,11 +7112,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.storage = EvqHitAttr;
     }
-#line 7117 "MachineIndependent/glslang_tab.cpp"
+#line 7116 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 182: /* storage_qualifier: HITOBJECTATTRNV  */
-#line 1544 "MachineIndependent/glslang.y"
+#line 1528 "MachineIndependent/glslang.y"
                           {
         parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeNV");
         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask
@@ -7126,11 +7125,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.storage = EvqHitObjectAttrNV;
 	}
-#line 7130 "MachineIndependent/glslang_tab.cpp"
+#line 7129 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 183: /* storage_qualifier: HITATTREXT  */
-#line 1552 "MachineIndependent/glslang.y"
+#line 1536 "MachineIndependent/glslang.y"
                  {
         parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeEXT");
         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
@@ -7139,11 +7138,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.storage = EvqHitAttr;
     }
-#line 7143 "MachineIndependent/glslang_tab.cpp"
+#line 7142 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 184: /* storage_qualifier: PAYLOADNV  */
-#line 1560 "MachineIndependent/glslang.y"
+#line 1544 "MachineIndependent/glslang.y"
                 {
         parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadNV");
         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask |
@@ -7152,11 +7151,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.storage = EvqPayload;
     }
-#line 7156 "MachineIndependent/glslang_tab.cpp"
+#line 7155 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 185: /* storage_qualifier: PAYLOADEXT  */
-#line 1568 "MachineIndependent/glslang.y"
+#line 1552 "MachineIndependent/glslang.y"
                  {
         parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadEXT");
         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask |
@@ -7165,11 +7164,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.storage = EvqPayload;
     }
-#line 7169 "MachineIndependent/glslang_tab.cpp"
+#line 7168 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 186: /* storage_qualifier: PAYLOADINNV  */
-#line 1576 "MachineIndependent/glslang.y"
+#line 1560 "MachineIndependent/glslang.y"
                   {
         parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInNV");
         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitMask |
@@ -7178,11 +7177,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.storage = EvqPayloadIn;
     }
-#line 7182 "MachineIndependent/glslang_tab.cpp"
+#line 7181 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 187: /* storage_qualifier: PAYLOADINEXT  */
-#line 1584 "MachineIndependent/glslang.y"
+#line 1568 "MachineIndependent/glslang.y"
                    {
         parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInEXT");
         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitMask |
@@ -7191,11 +7190,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.storage = EvqPayloadIn;
     }
-#line 7195 "MachineIndependent/glslang_tab.cpp"
+#line 7194 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 188: /* storage_qualifier: CALLDATANV  */
-#line 1592 "MachineIndependent/glslang.y"
+#line 1576 "MachineIndependent/glslang.y"
                  {
         parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataNV");
         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask |
@@ -7204,11 +7203,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.storage = EvqCallableData;
     }
-#line 7208 "MachineIndependent/glslang_tab.cpp"
+#line 7207 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 189: /* storage_qualifier: CALLDATAEXT  */
-#line 1600 "MachineIndependent/glslang.y"
+#line 1584 "MachineIndependent/glslang.y"
                   {
         parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataEXT");
         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask |
@@ -7217,11 +7216,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.storage = EvqCallableData;
     }
-#line 7221 "MachineIndependent/glslang_tab.cpp"
+#line 7220 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 190: /* storage_qualifier: CALLDATAINNV  */
-#line 1608 "MachineIndependent/glslang.y"
+#line 1592 "MachineIndependent/glslang.y"
                    {
         parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInNV");
         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInNV");
@@ -7229,11 +7228,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.storage = EvqCallableDataIn;
     }
-#line 7233 "MachineIndependent/glslang_tab.cpp"
+#line 7232 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 191: /* storage_qualifier: CALLDATAINEXT  */
-#line 1615 "MachineIndependent/glslang.y"
+#line 1599 "MachineIndependent/glslang.y"
                     {
         parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInEXT");
         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInEXT");
@@ -7241,138 +7240,138 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.storage = EvqCallableDataIn;
     }
-#line 7245 "MachineIndependent/glslang_tab.cpp"
+#line 7244 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 192: /* storage_qualifier: COHERENT  */
-#line 1622 "MachineIndependent/glslang.y"
+#line 1606 "MachineIndependent/glslang.y"
                {
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.coherent = true;
     }
-#line 7254 "MachineIndependent/glslang_tab.cpp"
+#line 7253 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 193: /* storage_qualifier: DEVICECOHERENT  */
-#line 1626 "MachineIndependent/glslang.y"
+#line 1610 "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 7264 "MachineIndependent/glslang_tab.cpp"
+#line 7263 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 194: /* storage_qualifier: QUEUEFAMILYCOHERENT  */
-#line 1631 "MachineIndependent/glslang.y"
+#line 1615 "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 7274 "MachineIndependent/glslang_tab.cpp"
+#line 7273 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 195: /* storage_qualifier: WORKGROUPCOHERENT  */
-#line 1636 "MachineIndependent/glslang.y"
+#line 1620 "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 7284 "MachineIndependent/glslang_tab.cpp"
+#line 7283 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 196: /* storage_qualifier: SUBGROUPCOHERENT  */
-#line 1641 "MachineIndependent/glslang.y"
+#line 1625 "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 7294 "MachineIndependent/glslang_tab.cpp"
+#line 7293 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 197: /* storage_qualifier: NONPRIVATE  */
-#line 1646 "MachineIndependent/glslang.y"
+#line 1630 "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 7304 "MachineIndependent/glslang_tab.cpp"
+#line 7303 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 198: /* storage_qualifier: SHADERCALLCOHERENT  */
-#line 1651 "MachineIndependent/glslang.y"
+#line 1635 "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 7314 "MachineIndependent/glslang_tab.cpp"
+#line 7313 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 199: /* storage_qualifier: VOLATILE  */
-#line 1656 "MachineIndependent/glslang.y"
+#line 1640 "MachineIndependent/glslang.y"
                {
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.volatil = true;
     }
-#line 7323 "MachineIndependent/glslang_tab.cpp"
+#line 7322 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 200: /* storage_qualifier: RESTRICT  */
-#line 1660 "MachineIndependent/glslang.y"
+#line 1644 "MachineIndependent/glslang.y"
                {
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.restrict = true;
     }
-#line 7332 "MachineIndependent/glslang_tab.cpp"
+#line 7331 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 201: /* storage_qualifier: READONLY  */
-#line 1664 "MachineIndependent/glslang.y"
+#line 1648 "MachineIndependent/glslang.y"
                {
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.readonly = true;
     }
-#line 7341 "MachineIndependent/glslang_tab.cpp"
+#line 7340 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 202: /* storage_qualifier: WRITEONLY  */
-#line 1668 "MachineIndependent/glslang.y"
+#line 1652 "MachineIndependent/glslang.y"
                 {
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.writeonly = true;
     }
-#line 7350 "MachineIndependent/glslang_tab.cpp"
+#line 7349 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 203: /* storage_qualifier: SUBROUTINE  */
-#line 1672 "MachineIndependent/glslang.y"
+#line 1656 "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 7361 "MachineIndependent/glslang_tab.cpp"
+#line 7360 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 204: /* storage_qualifier: SUBROUTINE LEFT_PAREN type_name_list RIGHT_PAREN  */
-#line 1678 "MachineIndependent/glslang.y"
+#line 1662 "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 7372 "MachineIndependent/glslang_tab.cpp"
+#line 7371 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 205: /* storage_qualifier: TASKPAYLOADWORKGROUPEXT  */
-#line 1684 "MachineIndependent/glslang.y"
+#line 1668 "MachineIndependent/glslang.y"
                               {
         // No need for profile version or extension check. Shader stage already checks both.
         parseContext.globalCheck((yyvsp[0].lex).loc, "taskPayloadSharedEXT");
@@ -7380,70 +7379,73 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.storage = EvqtaskPayloadSharedEXT;
     }
-#line 7384 "MachineIndependent/glslang_tab.cpp"
+#line 7383 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 206: /* non_uniform_qualifier: NONUNIFORM  */
-#line 1696 "MachineIndependent/glslang.y"
+#line 1678 "MachineIndependent/glslang.y"
                  {
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.nonUniform = true;
     }
-#line 7393 "MachineIndependent/glslang_tab.cpp"
+#line 7392 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 207: /* type_name_list: IDENTIFIER  */
-#line 1703 "MachineIndependent/glslang.y"
+#line 1685 "MachineIndependent/glslang.y"
                  {
         // TODO
     }
-#line 7401 "MachineIndependent/glslang_tab.cpp"
+#line 7400 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 208: /* type_name_list: type_name_list COMMA IDENTIFIER  */
-#line 1706 "MachineIndependent/glslang.y"
+#line 1688 "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 7411 "MachineIndependent/glslang_tab.cpp"
+#line 7410 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 209: /* type_specifier: type_specifier_nonarray type_parameter_specifier_opt  */
-#line 1715 "MachineIndependent/glslang.y"
+#line 1696 "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);
+        parseContext.coopMatTypeParametersCheck((yyvsp[-1].interm.type).loc, (yyval.interm.type));
+
     }
-#line 7421 "MachineIndependent/glslang_tab.cpp"
+#line 7422 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 210: /* type_specifier: type_specifier_nonarray type_parameter_specifier_opt array_specifier  */
-#line 1720 "MachineIndependent/glslang.y"
+#line 1703 "MachineIndependent/glslang.y"
                                                                            {
         parseContext.arrayOfArrayVersionCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes);
         (yyval.interm.type) = (yyvsp[-2].interm.type);
         (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
         (yyval.interm.type).typeParameters = (yyvsp[-1].interm.typeParameters);
         (yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes;
+        parseContext.coopMatTypeParametersCheck((yyvsp[-2].interm.type).loc, (yyval.interm.type));
     }
-#line 7433 "MachineIndependent/glslang_tab.cpp"
+#line 7435 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 211: /* array_specifier: LEFT_BRACKET RIGHT_BRACKET  */
-#line 1730 "MachineIndependent/glslang.y"
+#line 1714 "MachineIndependent/glslang.y"
                                  {
         (yyval.interm).loc = (yyvsp[-1].lex).loc;
         (yyval.interm).arraySizes = new TArraySizes;
         (yyval.interm).arraySizes->addInnerSize();
     }
-#line 7443 "MachineIndependent/glslang_tab.cpp"
+#line 7445 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 212: /* array_specifier: LEFT_BRACKET conditional_expression RIGHT_BRACKET  */
-#line 1735 "MachineIndependent/glslang.y"
+#line 1719 "MachineIndependent/glslang.y"
                                                         {
         (yyval.interm).loc = (yyvsp[-2].lex).loc;
         (yyval.interm).arraySizes = new TArraySizes;
@@ -7452,20 +7454,20 @@
         parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
         (yyval.interm).arraySizes->addInnerSize(size);
     }
-#line 7456 "MachineIndependent/glslang_tab.cpp"
+#line 7458 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 213: /* array_specifier: array_specifier LEFT_BRACKET RIGHT_BRACKET  */
-#line 1743 "MachineIndependent/glslang.y"
+#line 1727 "MachineIndependent/glslang.y"
                                                  {
         (yyval.interm) = (yyvsp[-2].interm);
         (yyval.interm).arraySizes->addInnerSize();
     }
-#line 7465 "MachineIndependent/glslang_tab.cpp"
+#line 7467 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 214: /* array_specifier: array_specifier LEFT_BRACKET conditional_expression RIGHT_BRACKET  */
-#line 1747 "MachineIndependent/glslang.y"
+#line 1731 "MachineIndependent/glslang.y"
                                                                         {
         (yyval.interm) = (yyvsp[-3].interm);
 
@@ -7473,348 +7475,359 @@
         parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
         (yyval.interm).arraySizes->addInnerSize(size);
     }
-#line 7477 "MachineIndependent/glslang_tab.cpp"
+#line 7479 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 215: /* type_parameter_specifier_opt: type_parameter_specifier  */
-#line 1757 "MachineIndependent/glslang.y"
+#line 1741 "MachineIndependent/glslang.y"
                                {
         (yyval.interm.typeParameters) = (yyvsp[0].interm.typeParameters);
     }
-#line 7485 "MachineIndependent/glslang_tab.cpp"
+#line 7487 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 216: /* type_parameter_specifier_opt: %empty  */
-#line 1760 "MachineIndependent/glslang.y"
+#line 1744 "MachineIndependent/glslang.y"
                         {
         (yyval.interm.typeParameters) = 0;
     }
-#line 7493 "MachineIndependent/glslang_tab.cpp"
+#line 7495 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 217: /* type_parameter_specifier: LEFT_ANGLE type_parameter_specifier_list RIGHT_ANGLE  */
-#line 1766 "MachineIndependent/glslang.y"
+#line 1750 "MachineIndependent/glslang.y"
                                                            {
         (yyval.interm.typeParameters) = (yyvsp[-1].interm.typeParameters);
     }
-#line 7501 "MachineIndependent/glslang_tab.cpp"
+#line 7503 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 218: /* type_parameter_specifier_list: unary_expression  */
-#line 1772 "MachineIndependent/glslang.y"
-                       {
-        (yyval.interm.typeParameters) = new TArraySizes;
-
-        TArraySize size;
-        parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter");
-        (yyval.interm.typeParameters)->addInnerSize(size);
+  case 218: /* type_parameter_specifier_list: type_specifier  */
+#line 1756 "MachineIndependent/glslang.y"
+                     {
+        (yyval.interm.typeParameters) = new TTypeParameters;
+        (yyval.interm.typeParameters)->arraySizes = new TArraySizes;
+        (yyval.interm.typeParameters)->basicType = (yyvsp[0].interm.type).basicType;
     }
 #line 7513 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 219: /* type_parameter_specifier_list: type_parameter_specifier_list COMMA unary_expression  */
-#line 1779 "MachineIndependent/glslang.y"
+  case 219: /* type_parameter_specifier_list: unary_expression  */
+#line 1761 "MachineIndependent/glslang.y"
+                       {
+        (yyval.interm.typeParameters) = new TTypeParameters;
+        (yyval.interm.typeParameters)->arraySizes = new TArraySizes;
+
+        TArraySize size;
+        parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter", true);
+        (yyval.interm.typeParameters)->arraySizes->addInnerSize(size);
+    }
+#line 7526 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 220: /* type_parameter_specifier_list: type_parameter_specifier_list COMMA unary_expression  */
+#line 1769 "MachineIndependent/glslang.y"
                                                            {
         (yyval.interm.typeParameters) = (yyvsp[-2].interm.typeParameters);
 
         TArraySize size;
-        parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter");
-        (yyval.interm.typeParameters)->addInnerSize(size);
+        parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter", true);
+        (yyval.interm.typeParameters)->arraySizes->addInnerSize(size);
     }
-#line 7525 "MachineIndependent/glslang_tab.cpp"
+#line 7538 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 220: /* type_specifier_nonarray: VOID  */
-#line 1789 "MachineIndependent/glslang.y"
+  case 221: /* type_specifier_nonarray: VOID  */
+#line 1779 "MachineIndependent/glslang.y"
            {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtVoid;
     }
-#line 7534 "MachineIndependent/glslang_tab.cpp"
+#line 7547 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 221: /* type_specifier_nonarray: FLOAT  */
-#line 1793 "MachineIndependent/glslang.y"
+  case 222: /* type_specifier_nonarray: FLOAT  */
+#line 1783 "MachineIndependent/glslang.y"
             {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat;
     }
-#line 7543 "MachineIndependent/glslang_tab.cpp"
+#line 7556 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 222: /* type_specifier_nonarray: INT  */
-#line 1797 "MachineIndependent/glslang.y"
+  case 223: /* type_specifier_nonarray: INT  */
+#line 1787 "MachineIndependent/glslang.y"
           {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtInt;
     }
-#line 7552 "MachineIndependent/glslang_tab.cpp"
+#line 7565 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 223: /* type_specifier_nonarray: UINT  */
-#line 1801 "MachineIndependent/glslang.y"
+  case 224: /* type_specifier_nonarray: UINT  */
+#line 1791 "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 7562 "MachineIndependent/glslang_tab.cpp"
+#line 7575 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 224: /* type_specifier_nonarray: BOOL  */
-#line 1806 "MachineIndependent/glslang.y"
+  case 225: /* type_specifier_nonarray: BOOL  */
+#line 1796 "MachineIndependent/glslang.y"
            {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtBool;
     }
-#line 7571 "MachineIndependent/glslang_tab.cpp"
+#line 7584 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 225: /* type_specifier_nonarray: VEC2  */
+  case 226: /* type_specifier_nonarray: VEC2  */
+#line 1800 "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 7594 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 227: /* type_specifier_nonarray: VEC3  */
+#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(3);
+    }
+#line 7604 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 228: /* type_specifier_nonarray: VEC4  */
 #line 1810 "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 7581 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 226: /* type_specifier_nonarray: VEC3  */
-#line 1815 "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 7591 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 227: /* type_specifier_nonarray: VEC4  */
-#line 1820 "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 7601 "MachineIndependent/glslang_tab.cpp"
+#line 7614 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 228: /* type_specifier_nonarray: BVEC2  */
+  case 229: /* type_specifier_nonarray: BVEC2  */
+#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(2);
+    }
+#line 7624 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 230: /* type_specifier_nonarray: BVEC3  */
+#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(3);
+    }
+#line 7634 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 231: /* type_specifier_nonarray: BVEC4  */
 #line 1825 "MachineIndependent/glslang.y"
             {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtBool;
-        (yyval.interm.type).setVector(2);
+        (yyval.interm.type).setVector(4);
     }
-#line 7611 "MachineIndependent/glslang_tab.cpp"
+#line 7644 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 229: /* type_specifier_nonarray: BVEC3  */
+  case 232: /* type_specifier_nonarray: IVEC2  */
 #line 1830 "MachineIndependent/glslang.y"
             {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
-        (yyval.interm.type).basicType = EbtBool;
-        (yyval.interm.type).setVector(3);
+        (yyval.interm.type).basicType = EbtInt;
+        (yyval.interm.type).setVector(2);
     }
-#line 7621 "MachineIndependent/glslang_tab.cpp"
+#line 7654 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 230: /* type_specifier_nonarray: BVEC4  */
+  case 233: /* type_specifier_nonarray: IVEC3  */
 #line 1835 "MachineIndependent/glslang.y"
             {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
-        (yyval.interm.type).basicType = EbtBool;
-        (yyval.interm.type).setVector(4);
+        (yyval.interm.type).basicType = EbtInt;
+        (yyval.interm.type).setVector(3);
     }
-#line 7631 "MachineIndependent/glslang_tab.cpp"
+#line 7664 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 231: /* type_specifier_nonarray: IVEC2  */
+  case 234: /* type_specifier_nonarray: IVEC4  */
 #line 1840 "MachineIndependent/glslang.y"
             {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtInt;
-        (yyval.interm.type).setVector(2);
+        (yyval.interm.type).setVector(4);
     }
-#line 7641 "MachineIndependent/glslang_tab.cpp"
+#line 7674 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 232: /* type_specifier_nonarray: IVEC3  */
+  case 235: /* type_specifier_nonarray: UVEC2  */
 #line 1845 "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 7651 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 233: /* type_specifier_nonarray: IVEC4  */
-#line 1850 "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 7661 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 234: /* type_specifier_nonarray: UVEC2  */
-#line 1855 "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 7672 "MachineIndependent/glslang_tab.cpp"
+#line 7685 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 235: /* type_specifier_nonarray: UVEC3  */
-#line 1861 "MachineIndependent/glslang.y"
+  case 236: /* type_specifier_nonarray: UVEC3  */
+#line 1851 "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 7683 "MachineIndependent/glslang_tab.cpp"
+#line 7696 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 236: /* type_specifier_nonarray: UVEC4  */
-#line 1867 "MachineIndependent/glslang.y"
+  case 237: /* type_specifier_nonarray: UVEC4  */
+#line 1857 "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 7694 "MachineIndependent/glslang_tab.cpp"
+#line 7707 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 237: /* type_specifier_nonarray: MAT2  */
-#line 1873 "MachineIndependent/glslang.y"
+  case 238: /* type_specifier_nonarray: MAT2  */
+#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(2, 2);
     }
-#line 7704 "MachineIndependent/glslang_tab.cpp"
+#line 7717 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 238: /* type_specifier_nonarray: MAT3  */
-#line 1878 "MachineIndependent/glslang.y"
+  case 239: /* type_specifier_nonarray: MAT3  */
+#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(3, 3);
     }
-#line 7714 "MachineIndependent/glslang_tab.cpp"
+#line 7727 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 239: /* type_specifier_nonarray: MAT4  */
-#line 1883 "MachineIndependent/glslang.y"
+  case 240: /* type_specifier_nonarray: MAT4  */
+#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(4, 4);
     }
-#line 7724 "MachineIndependent/glslang_tab.cpp"
+#line 7737 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 240: /* type_specifier_nonarray: MAT2X2  */
-#line 1888 "MachineIndependent/glslang.y"
+  case 241: /* type_specifier_nonarray: MAT2X2  */
+#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, 2);
     }
-#line 7734 "MachineIndependent/glslang_tab.cpp"
+#line 7747 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 241: /* type_specifier_nonarray: MAT2X3  */
-#line 1893 "MachineIndependent/glslang.y"
+  case 242: /* type_specifier_nonarray: MAT2X3  */
+#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, 3);
     }
-#line 7744 "MachineIndependent/glslang_tab.cpp"
+#line 7757 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 242: /* type_specifier_nonarray: MAT2X4  */
-#line 1898 "MachineIndependent/glslang.y"
+  case 243: /* type_specifier_nonarray: MAT2X4  */
+#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(2, 4);
     }
-#line 7754 "MachineIndependent/glslang_tab.cpp"
+#line 7767 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 243: /* type_specifier_nonarray: MAT3X2  */
-#line 1903 "MachineIndependent/glslang.y"
+  case 244: /* type_specifier_nonarray: MAT3X2  */
+#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, 2);
     }
-#line 7764 "MachineIndependent/glslang_tab.cpp"
+#line 7777 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 244: /* type_specifier_nonarray: MAT3X3  */
-#line 1908 "MachineIndependent/glslang.y"
+  case 245: /* type_specifier_nonarray: MAT3X3  */
+#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, 3);
     }
-#line 7774 "MachineIndependent/glslang_tab.cpp"
+#line 7787 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 245: /* type_specifier_nonarray: MAT3X4  */
-#line 1913 "MachineIndependent/glslang.y"
+  case 246: /* type_specifier_nonarray: MAT3X4  */
+#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(3, 4);
     }
-#line 7784 "MachineIndependent/glslang_tab.cpp"
+#line 7797 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 246: /* type_specifier_nonarray: MAT4X2  */
-#line 1918 "MachineIndependent/glslang.y"
+  case 247: /* type_specifier_nonarray: MAT4X2  */
+#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, 2);
     }
-#line 7794 "MachineIndependent/glslang_tab.cpp"
+#line 7807 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 247: /* type_specifier_nonarray: MAT4X3  */
-#line 1923 "MachineIndependent/glslang.y"
+  case 248: /* type_specifier_nonarray: MAT4X3  */
+#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, 3);
     }
-#line 7804 "MachineIndependent/glslang_tab.cpp"
+#line 7817 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 248: /* type_specifier_nonarray: MAT4X4  */
-#line 1928 "MachineIndependent/glslang.y"
+  case 249: /* type_specifier_nonarray: MAT4X4  */
+#line 1918 "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 7814 "MachineIndependent/glslang_tab.cpp"
+#line 7827 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 249: /* type_specifier_nonarray: DOUBLE  */
-#line 1934 "MachineIndependent/glslang.y"
+  case 250: /* type_specifier_nonarray: DOUBLE  */
+#line 1923 "MachineIndependent/glslang.y"
              {
         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double");
         if (! parseContext.symbolTable.atBuiltInLevel())
@@ -7822,121 +7835,121 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtDouble;
     }
-#line 7826 "MachineIndependent/glslang_tab.cpp"
+#line 7839 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 250: /* type_specifier_nonarray: FLOAT16_T  */
-#line 1941 "MachineIndependent/glslang.y"
+  case 251: /* type_specifier_nonarray: FLOAT16_T  */
+#line 1930 "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 7836 "MachineIndependent/glslang_tab.cpp"
+#line 7849 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 251: /* type_specifier_nonarray: FLOAT32_T  */
-#line 1946 "MachineIndependent/glslang.y"
+  case 252: /* type_specifier_nonarray: FLOAT32_T  */
+#line 1935 "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 7846 "MachineIndependent/glslang_tab.cpp"
+#line 7859 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 252: /* type_specifier_nonarray: FLOAT64_T  */
-#line 1951 "MachineIndependent/glslang.y"
+  case 253: /* type_specifier_nonarray: FLOAT64_T  */
+#line 1940 "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 7856 "MachineIndependent/glslang_tab.cpp"
+#line 7869 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 253: /* type_specifier_nonarray: INT8_T  */
-#line 1956 "MachineIndependent/glslang.y"
+  case 254: /* type_specifier_nonarray: INT8_T  */
+#line 1945 "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 7866 "MachineIndependent/glslang_tab.cpp"
+#line 7879 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 254: /* type_specifier_nonarray: UINT8_T  */
-#line 1961 "MachineIndependent/glslang.y"
+  case 255: /* type_specifier_nonarray: UINT8_T  */
+#line 1950 "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 7876 "MachineIndependent/glslang_tab.cpp"
+#line 7889 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 255: /* type_specifier_nonarray: INT16_T  */
-#line 1966 "MachineIndependent/glslang.y"
+  case 256: /* type_specifier_nonarray: INT16_T  */
+#line 1955 "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 7886 "MachineIndependent/glslang_tab.cpp"
+#line 7899 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 256: /* type_specifier_nonarray: UINT16_T  */
-#line 1971 "MachineIndependent/glslang.y"
+  case 257: /* type_specifier_nonarray: UINT16_T  */
+#line 1960 "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 7896 "MachineIndependent/glslang_tab.cpp"
+#line 7909 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 257: /* type_specifier_nonarray: INT32_T  */
-#line 1976 "MachineIndependent/glslang.y"
+  case 258: /* type_specifier_nonarray: INT32_T  */
+#line 1965 "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 7906 "MachineIndependent/glslang_tab.cpp"
+#line 7919 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 258: /* type_specifier_nonarray: UINT32_T  */
-#line 1981 "MachineIndependent/glslang.y"
+  case 259: /* type_specifier_nonarray: UINT32_T  */
+#line 1970 "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 7916 "MachineIndependent/glslang_tab.cpp"
+#line 7929 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 259: /* type_specifier_nonarray: INT64_T  */
-#line 1986 "MachineIndependent/glslang.y"
+  case 260: /* type_specifier_nonarray: INT64_T  */
+#line 1975 "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 7926 "MachineIndependent/glslang_tab.cpp"
+#line 7939 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 260: /* type_specifier_nonarray: UINT64_T  */
-#line 1991 "MachineIndependent/glslang.y"
+  case 261: /* type_specifier_nonarray: UINT64_T  */
+#line 1980 "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 7936 "MachineIndependent/glslang_tab.cpp"
+#line 7949 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 261: /* type_specifier_nonarray: DVEC2  */
-#line 1996 "MachineIndependent/glslang.y"
+  case 262: /* type_specifier_nonarray: DVEC2  */
+#line 1985 "MachineIndependent/glslang.y"
             {
         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
         if (! parseContext.symbolTable.atBuiltInLevel())
@@ -7945,24 +7958,24 @@
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setVector(2);
     }
-#line 7949 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 262: /* type_specifier_nonarray: DVEC3  */
-#line 2004 "MachineIndependent/glslang.y"
-            {
-        parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
-        if (! parseContext.symbolTable.atBuiltInLevel())
-            parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
-        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
-        (yyval.interm.type).basicType = EbtDouble;
-        (yyval.interm.type).setVector(3);
-    }
 #line 7962 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 263: /* type_specifier_nonarray: DVEC4  */
-#line 2012 "MachineIndependent/glslang.y"
+  case 263: /* type_specifier_nonarray: DVEC3  */
+#line 1993 "MachineIndependent/glslang.y"
+            {
+        parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
+        if (! parseContext.symbolTable.atBuiltInLevel())
+            parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
+        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+        (yyval.interm.type).basicType = EbtDouble;
+        (yyval.interm.type).setVector(3);
+    }
+#line 7975 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 264: /* type_specifier_nonarray: DVEC4  */
+#line 2001 "MachineIndependent/glslang.y"
             {
         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
         if (! parseContext.symbolTable.atBuiltInLevel())
@@ -7971,400 +7984,400 @@
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setVector(4);
     }
-#line 7975 "MachineIndependent/glslang_tab.cpp"
+#line 7988 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 264: /* type_specifier_nonarray: F16VEC2  */
-#line 2020 "MachineIndependent/glslang.y"
+  case 265: /* type_specifier_nonarray: F16VEC2  */
+#line 2009 "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 7986 "MachineIndependent/glslang_tab.cpp"
+#line 7999 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 265: /* type_specifier_nonarray: F16VEC3  */
-#line 2026 "MachineIndependent/glslang.y"
+  case 266: /* type_specifier_nonarray: F16VEC3  */
+#line 2015 "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 7997 "MachineIndependent/glslang_tab.cpp"
+#line 8010 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 266: /* type_specifier_nonarray: F16VEC4  */
-#line 2032 "MachineIndependent/glslang.y"
+  case 267: /* type_specifier_nonarray: F16VEC4  */
+#line 2021 "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 8008 "MachineIndependent/glslang_tab.cpp"
+#line 8021 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 267: /* type_specifier_nonarray: F32VEC2  */
-#line 2038 "MachineIndependent/glslang.y"
+  case 268: /* type_specifier_nonarray: F32VEC2  */
+#line 2027 "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 8019 "MachineIndependent/glslang_tab.cpp"
+#line 8032 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 268: /* type_specifier_nonarray: F32VEC3  */
-#line 2044 "MachineIndependent/glslang.y"
+  case 269: /* type_specifier_nonarray: F32VEC3  */
+#line 2033 "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 8030 "MachineIndependent/glslang_tab.cpp"
+#line 8043 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 269: /* type_specifier_nonarray: F32VEC4  */
-#line 2050 "MachineIndependent/glslang.y"
+  case 270: /* type_specifier_nonarray: F32VEC4  */
+#line 2039 "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 8041 "MachineIndependent/glslang_tab.cpp"
+#line 8054 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 270: /* type_specifier_nonarray: F64VEC2  */
-#line 2056 "MachineIndependent/glslang.y"
+  case 271: /* type_specifier_nonarray: F64VEC2  */
+#line 2045 "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 8052 "MachineIndependent/glslang_tab.cpp"
+#line 8065 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 271: /* type_specifier_nonarray: F64VEC3  */
-#line 2062 "MachineIndependent/glslang.y"
+  case 272: /* type_specifier_nonarray: F64VEC3  */
+#line 2051 "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 8063 "MachineIndependent/glslang_tab.cpp"
+#line 8076 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 272: /* type_specifier_nonarray: F64VEC4  */
-#line 2068 "MachineIndependent/glslang.y"
+  case 273: /* type_specifier_nonarray: F64VEC4  */
+#line 2057 "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 8074 "MachineIndependent/glslang_tab.cpp"
+#line 8087 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 273: /* type_specifier_nonarray: I8VEC2  */
-#line 2074 "MachineIndependent/glslang.y"
+  case 274: /* type_specifier_nonarray: I8VEC2  */
+#line 2063 "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 8085 "MachineIndependent/glslang_tab.cpp"
+#line 8098 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 274: /* type_specifier_nonarray: I8VEC3  */
-#line 2080 "MachineIndependent/glslang.y"
+  case 275: /* type_specifier_nonarray: I8VEC3  */
+#line 2069 "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 8096 "MachineIndependent/glslang_tab.cpp"
+#line 8109 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 275: /* type_specifier_nonarray: I8VEC4  */
-#line 2086 "MachineIndependent/glslang.y"
+  case 276: /* type_specifier_nonarray: I8VEC4  */
+#line 2075 "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 8107 "MachineIndependent/glslang_tab.cpp"
+#line 8120 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 276: /* type_specifier_nonarray: I16VEC2  */
-#line 2092 "MachineIndependent/glslang.y"
+  case 277: /* type_specifier_nonarray: I16VEC2  */
+#line 2081 "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 8118 "MachineIndependent/glslang_tab.cpp"
+#line 8131 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 277: /* type_specifier_nonarray: I16VEC3  */
-#line 2098 "MachineIndependent/glslang.y"
+  case 278: /* type_specifier_nonarray: I16VEC3  */
+#line 2087 "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 8129 "MachineIndependent/glslang_tab.cpp"
+#line 8142 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 278: /* type_specifier_nonarray: I16VEC4  */
-#line 2104 "MachineIndependent/glslang.y"
+  case 279: /* type_specifier_nonarray: I16VEC4  */
+#line 2093 "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 8140 "MachineIndependent/glslang_tab.cpp"
+#line 8153 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 279: /* type_specifier_nonarray: I32VEC2  */
-#line 2110 "MachineIndependent/glslang.y"
+  case 280: /* type_specifier_nonarray: I32VEC2  */
+#line 2099 "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 8151 "MachineIndependent/glslang_tab.cpp"
+#line 8164 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 280: /* type_specifier_nonarray: I32VEC3  */
-#line 2116 "MachineIndependent/glslang.y"
+  case 281: /* type_specifier_nonarray: I32VEC3  */
+#line 2105 "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 8162 "MachineIndependent/glslang_tab.cpp"
+#line 8175 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 281: /* type_specifier_nonarray: I32VEC4  */
-#line 2122 "MachineIndependent/glslang.y"
+  case 282: /* type_specifier_nonarray: I32VEC4  */
+#line 2111 "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 8173 "MachineIndependent/glslang_tab.cpp"
+#line 8186 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 282: /* type_specifier_nonarray: I64VEC2  */
-#line 2128 "MachineIndependent/glslang.y"
+  case 283: /* type_specifier_nonarray: I64VEC2  */
+#line 2117 "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 8184 "MachineIndependent/glslang_tab.cpp"
+#line 8197 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 283: /* type_specifier_nonarray: I64VEC3  */
-#line 2134 "MachineIndependent/glslang.y"
+  case 284: /* type_specifier_nonarray: I64VEC3  */
+#line 2123 "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 8195 "MachineIndependent/glslang_tab.cpp"
+#line 8208 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 284: /* type_specifier_nonarray: I64VEC4  */
-#line 2140 "MachineIndependent/glslang.y"
+  case 285: /* type_specifier_nonarray: I64VEC4  */
+#line 2129 "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 8206 "MachineIndependent/glslang_tab.cpp"
+#line 8219 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 285: /* type_specifier_nonarray: U8VEC2  */
-#line 2146 "MachineIndependent/glslang.y"
+  case 286: /* type_specifier_nonarray: U8VEC2  */
+#line 2135 "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 8217 "MachineIndependent/glslang_tab.cpp"
+#line 8230 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 286: /* type_specifier_nonarray: U8VEC3  */
-#line 2152 "MachineIndependent/glslang.y"
+  case 287: /* type_specifier_nonarray: U8VEC3  */
+#line 2141 "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 8228 "MachineIndependent/glslang_tab.cpp"
+#line 8241 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 287: /* type_specifier_nonarray: U8VEC4  */
-#line 2158 "MachineIndependent/glslang.y"
+  case 288: /* type_specifier_nonarray: U8VEC4  */
+#line 2147 "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 8239 "MachineIndependent/glslang_tab.cpp"
+#line 8252 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 288: /* type_specifier_nonarray: U16VEC2  */
-#line 2164 "MachineIndependent/glslang.y"
+  case 289: /* type_specifier_nonarray: U16VEC2  */
+#line 2153 "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 8250 "MachineIndependent/glslang_tab.cpp"
+#line 8263 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 289: /* type_specifier_nonarray: U16VEC3  */
-#line 2170 "MachineIndependent/glslang.y"
+  case 290: /* type_specifier_nonarray: U16VEC3  */
+#line 2159 "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 8261 "MachineIndependent/glslang_tab.cpp"
+#line 8274 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 290: /* type_specifier_nonarray: U16VEC4  */
-#line 2176 "MachineIndependent/glslang.y"
+  case 291: /* type_specifier_nonarray: U16VEC4  */
+#line 2165 "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 8272 "MachineIndependent/glslang_tab.cpp"
+#line 8285 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 291: /* type_specifier_nonarray: U32VEC2  */
-#line 2182 "MachineIndependent/glslang.y"
+  case 292: /* type_specifier_nonarray: U32VEC2  */
+#line 2171 "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 8283 "MachineIndependent/glslang_tab.cpp"
+#line 8296 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 292: /* type_specifier_nonarray: U32VEC3  */
-#line 2188 "MachineIndependent/glslang.y"
+  case 293: /* type_specifier_nonarray: U32VEC3  */
+#line 2177 "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 8294 "MachineIndependent/glslang_tab.cpp"
+#line 8307 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 293: /* type_specifier_nonarray: U32VEC4  */
-#line 2194 "MachineIndependent/glslang.y"
+  case 294: /* type_specifier_nonarray: U32VEC4  */
+#line 2183 "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 8305 "MachineIndependent/glslang_tab.cpp"
+#line 8318 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 294: /* type_specifier_nonarray: U64VEC2  */
-#line 2200 "MachineIndependent/glslang.y"
+  case 295: /* type_specifier_nonarray: U64VEC2  */
+#line 2189 "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 8316 "MachineIndependent/glslang_tab.cpp"
+#line 8329 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 295: /* type_specifier_nonarray: U64VEC3  */
-#line 2206 "MachineIndependent/glslang.y"
+  case 296: /* type_specifier_nonarray: U64VEC3  */
+#line 2195 "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 8327 "MachineIndependent/glslang_tab.cpp"
+#line 8340 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 296: /* type_specifier_nonarray: U64VEC4  */
-#line 2212 "MachineIndependent/glslang.y"
+  case 297: /* type_specifier_nonarray: U64VEC4  */
+#line 2201 "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 8338 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 297: /* type_specifier_nonarray: DMAT2  */
-#line 2218 "MachineIndependent/glslang.y"
-            {
-        parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
-        if (! parseContext.symbolTable.atBuiltInLevel())
-            parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
-        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
-        (yyval.interm.type).basicType = EbtDouble;
-        (yyval.interm.type).setMatrix(2, 2);
-    }
 #line 8351 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 298: /* type_specifier_nonarray: DMAT3  */
-#line 2226 "MachineIndependent/glslang.y"
+  case 298: /* type_specifier_nonarray: DMAT2  */
+#line 2207 "MachineIndependent/glslang.y"
             {
         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
         if (! parseContext.symbolTable.atBuiltInLevel())
             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtDouble;
-        (yyval.interm.type).setMatrix(3, 3);
+        (yyval.interm.type).setMatrix(2, 2);
     }
 #line 8364 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 299: /* type_specifier_nonarray: DMAT4  */
-#line 2234 "MachineIndependent/glslang.y"
+  case 299: /* type_specifier_nonarray: DMAT3  */
+#line 2215 "MachineIndependent/glslang.y"
+            {
+        parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+        if (! parseContext.symbolTable.atBuiltInLevel())
+            parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
+        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+        (yyval.interm.type).basicType = EbtDouble;
+        (yyval.interm.type).setMatrix(3, 3);
+    }
+#line 8377 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 300: /* type_specifier_nonarray: DMAT4  */
+#line 2223 "MachineIndependent/glslang.y"
             {
         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
         if (! parseContext.symbolTable.atBuiltInLevel())
@@ -8373,11 +8386,11 @@
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setMatrix(4, 4);
     }
-#line 8377 "MachineIndependent/glslang_tab.cpp"
+#line 8390 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 300: /* type_specifier_nonarray: DMAT2X2  */
-#line 2242 "MachineIndependent/glslang.y"
+  case 301: /* type_specifier_nonarray: DMAT2X2  */
+#line 2231 "MachineIndependent/glslang.y"
               {
         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
         if (! parseContext.symbolTable.atBuiltInLevel())
@@ -8386,102 +8399,102 @@
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setMatrix(2, 2);
     }
-#line 8390 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 301: /* type_specifier_nonarray: DMAT2X3  */
-#line 2250 "MachineIndependent/glslang.y"
-              {
-        parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
-        if (! parseContext.symbolTable.atBuiltInLevel())
-            parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
-        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
-        (yyval.interm.type).basicType = EbtDouble;
-        (yyval.interm.type).setMatrix(2, 3);
-    }
 #line 8403 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 302: /* type_specifier_nonarray: DMAT2X4  */
-#line 2258 "MachineIndependent/glslang.y"
+  case 302: /* type_specifier_nonarray: DMAT2X3  */
+#line 2239 "MachineIndependent/glslang.y"
               {
         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
         if (! parseContext.symbolTable.atBuiltInLevel())
             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtDouble;
-        (yyval.interm.type).setMatrix(2, 4);
+        (yyval.interm.type).setMatrix(2, 3);
     }
 #line 8416 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 303: /* type_specifier_nonarray: DMAT3X2  */
-#line 2266 "MachineIndependent/glslang.y"
+  case 303: /* type_specifier_nonarray: DMAT2X4  */
+#line 2247 "MachineIndependent/glslang.y"
               {
         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
         if (! parseContext.symbolTable.atBuiltInLevel())
             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtDouble;
-        (yyval.interm.type).setMatrix(3, 2);
+        (yyval.interm.type).setMatrix(2, 4);
     }
 #line 8429 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 304: /* type_specifier_nonarray: DMAT3X3  */
-#line 2274 "MachineIndependent/glslang.y"
+  case 304: /* type_specifier_nonarray: DMAT3X2  */
+#line 2255 "MachineIndependent/glslang.y"
               {
         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
         if (! parseContext.symbolTable.atBuiltInLevel())
             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtDouble;
-        (yyval.interm.type).setMatrix(3, 3);
+        (yyval.interm.type).setMatrix(3, 2);
     }
 #line 8442 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 305: /* type_specifier_nonarray: DMAT3X4  */
-#line 2282 "MachineIndependent/glslang.y"
+  case 305: /* type_specifier_nonarray: DMAT3X3  */
+#line 2263 "MachineIndependent/glslang.y"
               {
         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
         if (! parseContext.symbolTable.atBuiltInLevel())
             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtDouble;
-        (yyval.interm.type).setMatrix(3, 4);
+        (yyval.interm.type).setMatrix(3, 3);
     }
 #line 8455 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 306: /* type_specifier_nonarray: DMAT4X2  */
-#line 2290 "MachineIndependent/glslang.y"
+  case 306: /* type_specifier_nonarray: DMAT3X4  */
+#line 2271 "MachineIndependent/glslang.y"
               {
         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
         if (! parseContext.symbolTable.atBuiltInLevel())
             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtDouble;
-        (yyval.interm.type).setMatrix(4, 2);
+        (yyval.interm.type).setMatrix(3, 4);
     }
 #line 8468 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 307: /* type_specifier_nonarray: DMAT4X3  */
-#line 2298 "MachineIndependent/glslang.y"
+  case 307: /* type_specifier_nonarray: DMAT4X2  */
+#line 2279 "MachineIndependent/glslang.y"
               {
         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
         if (! parseContext.symbolTable.atBuiltInLevel())
             parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtDouble;
-        (yyval.interm.type).setMatrix(4, 3);
+        (yyval.interm.type).setMatrix(4, 2);
     }
 #line 8481 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 308: /* type_specifier_nonarray: DMAT4X4  */
-#line 2306 "MachineIndependent/glslang.y"
+  case 308: /* type_specifier_nonarray: DMAT4X3  */
+#line 2287 "MachineIndependent/glslang.y"
+              {
+        parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
+        if (! parseContext.symbolTable.atBuiltInLevel())
+            parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
+        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+        (yyval.interm.type).basicType = EbtDouble;
+        (yyval.interm.type).setMatrix(4, 3);
+    }
+#line 8494 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 309: /* type_specifier_nonarray: DMAT4X4  */
+#line 2295 "MachineIndependent/glslang.y"
               {
         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
         if (! parseContext.symbolTable.atBuiltInLevel())
@@ -8490,2261 +8503,2261 @@
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setMatrix(4, 4);
     }
-#line 8494 "MachineIndependent/glslang_tab.cpp"
+#line 8507 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 309: /* type_specifier_nonarray: F16MAT2  */
-#line 2314 "MachineIndependent/glslang.y"
+  case 310: /* type_specifier_nonarray: F16MAT2  */
+#line 2303 "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 8505 "MachineIndependent/glslang_tab.cpp"
+#line 8518 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 310: /* type_specifier_nonarray: F16MAT3  */
-#line 2320 "MachineIndependent/glslang.y"
+  case 311: /* type_specifier_nonarray: F16MAT3  */
+#line 2309 "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 8516 "MachineIndependent/glslang_tab.cpp"
+#line 8529 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 311: /* type_specifier_nonarray: F16MAT4  */
-#line 2326 "MachineIndependent/glslang.y"
+  case 312: /* type_specifier_nonarray: F16MAT4  */
+#line 2315 "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 8527 "MachineIndependent/glslang_tab.cpp"
+#line 8540 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 312: /* type_specifier_nonarray: F16MAT2X2  */
-#line 2332 "MachineIndependent/glslang.y"
+  case 313: /* type_specifier_nonarray: F16MAT2X2  */
+#line 2321 "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 8538 "MachineIndependent/glslang_tab.cpp"
+#line 8551 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 313: /* type_specifier_nonarray: F16MAT2X3  */
-#line 2338 "MachineIndependent/glslang.y"
+  case 314: /* type_specifier_nonarray: F16MAT2X3  */
+#line 2327 "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 8549 "MachineIndependent/glslang_tab.cpp"
+#line 8562 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 314: /* type_specifier_nonarray: F16MAT2X4  */
-#line 2344 "MachineIndependent/glslang.y"
+  case 315: /* type_specifier_nonarray: F16MAT2X4  */
+#line 2333 "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 8560 "MachineIndependent/glslang_tab.cpp"
+#line 8573 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 315: /* type_specifier_nonarray: F16MAT3X2  */
-#line 2350 "MachineIndependent/glslang.y"
+  case 316: /* type_specifier_nonarray: F16MAT3X2  */
+#line 2339 "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 8571 "MachineIndependent/glslang_tab.cpp"
+#line 8584 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 316: /* type_specifier_nonarray: F16MAT3X3  */
-#line 2356 "MachineIndependent/glslang.y"
+  case 317: /* type_specifier_nonarray: F16MAT3X3  */
+#line 2345 "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 8582 "MachineIndependent/glslang_tab.cpp"
+#line 8595 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 317: /* type_specifier_nonarray: F16MAT3X4  */
-#line 2362 "MachineIndependent/glslang.y"
+  case 318: /* type_specifier_nonarray: F16MAT3X4  */
+#line 2351 "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 8593 "MachineIndependent/glslang_tab.cpp"
+#line 8606 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 318: /* type_specifier_nonarray: F16MAT4X2  */
-#line 2368 "MachineIndependent/glslang.y"
+  case 319: /* type_specifier_nonarray: F16MAT4X2  */
+#line 2357 "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 8604 "MachineIndependent/glslang_tab.cpp"
+#line 8617 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 319: /* type_specifier_nonarray: F16MAT4X3  */
-#line 2374 "MachineIndependent/glslang.y"
+  case 320: /* type_specifier_nonarray: F16MAT4X3  */
+#line 2363 "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 8615 "MachineIndependent/glslang_tab.cpp"
+#line 8628 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 320: /* type_specifier_nonarray: F16MAT4X4  */
-#line 2380 "MachineIndependent/glslang.y"
+  case 321: /* type_specifier_nonarray: F16MAT4X4  */
+#line 2369 "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 8626 "MachineIndependent/glslang_tab.cpp"
+#line 8639 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 321: /* type_specifier_nonarray: F32MAT2  */
-#line 2386 "MachineIndependent/glslang.y"
+  case 322: /* type_specifier_nonarray: F32MAT2  */
+#line 2375 "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 8637 "MachineIndependent/glslang_tab.cpp"
+#line 8650 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 322: /* type_specifier_nonarray: F32MAT3  */
-#line 2392 "MachineIndependent/glslang.y"
+  case 323: /* type_specifier_nonarray: F32MAT3  */
+#line 2381 "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 8648 "MachineIndependent/glslang_tab.cpp"
+#line 8661 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 323: /* type_specifier_nonarray: F32MAT4  */
-#line 2398 "MachineIndependent/glslang.y"
+  case 324: /* type_specifier_nonarray: F32MAT4  */
+#line 2387 "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 8659 "MachineIndependent/glslang_tab.cpp"
+#line 8672 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 324: /* type_specifier_nonarray: F32MAT2X2  */
-#line 2404 "MachineIndependent/glslang.y"
+  case 325: /* type_specifier_nonarray: F32MAT2X2  */
+#line 2393 "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 8670 "MachineIndependent/glslang_tab.cpp"
+#line 8683 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 325: /* type_specifier_nonarray: F32MAT2X3  */
-#line 2410 "MachineIndependent/glslang.y"
+  case 326: /* type_specifier_nonarray: F32MAT2X3  */
+#line 2399 "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 8681 "MachineIndependent/glslang_tab.cpp"
+#line 8694 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 326: /* type_specifier_nonarray: F32MAT2X4  */
-#line 2416 "MachineIndependent/glslang.y"
+  case 327: /* type_specifier_nonarray: F32MAT2X4  */
+#line 2405 "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 8692 "MachineIndependent/glslang_tab.cpp"
+#line 8705 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 327: /* type_specifier_nonarray: F32MAT3X2  */
-#line 2422 "MachineIndependent/glslang.y"
+  case 328: /* type_specifier_nonarray: F32MAT3X2  */
+#line 2411 "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 8703 "MachineIndependent/glslang_tab.cpp"
+#line 8716 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 328: /* type_specifier_nonarray: F32MAT3X3  */
-#line 2428 "MachineIndependent/glslang.y"
+  case 329: /* type_specifier_nonarray: F32MAT3X3  */
+#line 2417 "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 8714 "MachineIndependent/glslang_tab.cpp"
+#line 8727 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 329: /* type_specifier_nonarray: F32MAT3X4  */
-#line 2434 "MachineIndependent/glslang.y"
+  case 330: /* type_specifier_nonarray: F32MAT3X4  */
+#line 2423 "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 8725 "MachineIndependent/glslang_tab.cpp"
+#line 8738 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 330: /* type_specifier_nonarray: F32MAT4X2  */
-#line 2440 "MachineIndependent/glslang.y"
+  case 331: /* type_specifier_nonarray: F32MAT4X2  */
+#line 2429 "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 8736 "MachineIndependent/glslang_tab.cpp"
+#line 8749 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 331: /* type_specifier_nonarray: F32MAT4X3  */
-#line 2446 "MachineIndependent/glslang.y"
+  case 332: /* type_specifier_nonarray: F32MAT4X3  */
+#line 2435 "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 8747 "MachineIndependent/glslang_tab.cpp"
+#line 8760 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 332: /* type_specifier_nonarray: F32MAT4X4  */
-#line 2452 "MachineIndependent/glslang.y"
+  case 333: /* type_specifier_nonarray: F32MAT4X4  */
+#line 2441 "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 8758 "MachineIndependent/glslang_tab.cpp"
+#line 8771 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 333: /* type_specifier_nonarray: F64MAT2  */
-#line 2458 "MachineIndependent/glslang.y"
+  case 334: /* type_specifier_nonarray: F64MAT2  */
+#line 2447 "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 8769 "MachineIndependent/glslang_tab.cpp"
+#line 8782 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 334: /* type_specifier_nonarray: F64MAT3  */
-#line 2464 "MachineIndependent/glslang.y"
+  case 335: /* type_specifier_nonarray: F64MAT3  */
+#line 2453 "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 8780 "MachineIndependent/glslang_tab.cpp"
+#line 8793 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 335: /* type_specifier_nonarray: F64MAT4  */
-#line 2470 "MachineIndependent/glslang.y"
+  case 336: /* type_specifier_nonarray: F64MAT4  */
+#line 2459 "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 8791 "MachineIndependent/glslang_tab.cpp"
+#line 8804 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 336: /* type_specifier_nonarray: F64MAT2X2  */
-#line 2476 "MachineIndependent/glslang.y"
+  case 337: /* type_specifier_nonarray: F64MAT2X2  */
+#line 2465 "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 8802 "MachineIndependent/glslang_tab.cpp"
+#line 8815 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 337: /* type_specifier_nonarray: F64MAT2X3  */
-#line 2482 "MachineIndependent/glslang.y"
+  case 338: /* type_specifier_nonarray: F64MAT2X3  */
+#line 2471 "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 8813 "MachineIndependent/glslang_tab.cpp"
+#line 8826 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 338: /* type_specifier_nonarray: F64MAT2X4  */
-#line 2488 "MachineIndependent/glslang.y"
+  case 339: /* type_specifier_nonarray: F64MAT2X4  */
+#line 2477 "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 8824 "MachineIndependent/glslang_tab.cpp"
+#line 8837 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 339: /* type_specifier_nonarray: F64MAT3X2  */
-#line 2494 "MachineIndependent/glslang.y"
+  case 340: /* type_specifier_nonarray: F64MAT3X2  */
+#line 2483 "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 8835 "MachineIndependent/glslang_tab.cpp"
+#line 8848 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 340: /* type_specifier_nonarray: F64MAT3X3  */
-#line 2500 "MachineIndependent/glslang.y"
+  case 341: /* type_specifier_nonarray: F64MAT3X3  */
+#line 2489 "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 8846 "MachineIndependent/glslang_tab.cpp"
+#line 8859 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 341: /* type_specifier_nonarray: F64MAT3X4  */
-#line 2506 "MachineIndependent/glslang.y"
+  case 342: /* type_specifier_nonarray: F64MAT3X4  */
+#line 2495 "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 8857 "MachineIndependent/glslang_tab.cpp"
+#line 8870 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 342: /* type_specifier_nonarray: F64MAT4X2  */
-#line 2512 "MachineIndependent/glslang.y"
+  case 343: /* type_specifier_nonarray: F64MAT4X2  */
+#line 2501 "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 8868 "MachineIndependent/glslang_tab.cpp"
+#line 8881 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 343: /* type_specifier_nonarray: F64MAT4X3  */
-#line 2518 "MachineIndependent/glslang.y"
+  case 344: /* type_specifier_nonarray: F64MAT4X3  */
+#line 2507 "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 8879 "MachineIndependent/glslang_tab.cpp"
+#line 8892 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 344: /* type_specifier_nonarray: F64MAT4X4  */
-#line 2524 "MachineIndependent/glslang.y"
+  case 345: /* type_specifier_nonarray: F64MAT4X4  */
+#line 2513 "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 8890 "MachineIndependent/glslang_tab.cpp"
+#line 8903 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 345: /* type_specifier_nonarray: ACCSTRUCTNV  */
-#line 2530 "MachineIndependent/glslang.y"
+  case 346: /* type_specifier_nonarray: ACCSTRUCTNV  */
+#line 2519 "MachineIndependent/glslang.y"
                   {
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
        (yyval.interm.type).basicType = EbtAccStruct;
     }
-#line 8899 "MachineIndependent/glslang_tab.cpp"
+#line 8912 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 346: /* type_specifier_nonarray: ACCSTRUCTEXT  */
-#line 2534 "MachineIndependent/glslang.y"
+  case 347: /* type_specifier_nonarray: ACCSTRUCTEXT  */
+#line 2523 "MachineIndependent/glslang.y"
                    {
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
        (yyval.interm.type).basicType = EbtAccStruct;
     }
-#line 8908 "MachineIndependent/glslang_tab.cpp"
+#line 8921 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 347: /* type_specifier_nonarray: RAYQUERYEXT  */
-#line 2538 "MachineIndependent/glslang.y"
+  case 348: /* type_specifier_nonarray: RAYQUERYEXT  */
+#line 2527 "MachineIndependent/glslang.y"
                   {
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
        (yyval.interm.type).basicType = EbtRayQuery;
     }
-#line 8917 "MachineIndependent/glslang_tab.cpp"
+#line 8930 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 348: /* type_specifier_nonarray: ATOMIC_UINT  */
-#line 2542 "MachineIndependent/glslang.y"
+  case 349: /* type_specifier_nonarray: ATOMIC_UINT  */
+#line 2531 "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 8927 "MachineIndependent/glslang_tab.cpp"
+#line 8940 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 349: /* type_specifier_nonarray: SAMPLER1D  */
-#line 2547 "MachineIndependent/glslang.y"
+  case 350: /* type_specifier_nonarray: SAMPLER1D  */
+#line 2536 "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 8937 "MachineIndependent/glslang_tab.cpp"
+#line 8950 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 350: /* type_specifier_nonarray: SAMPLER2D  */
-#line 2553 "MachineIndependent/glslang.y"
+  case 351: /* type_specifier_nonarray: SAMPLER2D  */
+#line 2541 "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 8947 "MachineIndependent/glslang_tab.cpp"
+#line 8960 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 351: /* type_specifier_nonarray: SAMPLER3D  */
-#line 2558 "MachineIndependent/glslang.y"
+  case 352: /* type_specifier_nonarray: SAMPLER3D  */
+#line 2546 "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 8957 "MachineIndependent/glslang_tab.cpp"
+#line 8970 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 352: /* type_specifier_nonarray: SAMPLERCUBE  */
-#line 2563 "MachineIndependent/glslang.y"
+  case 353: /* type_specifier_nonarray: SAMPLERCUBE  */
+#line 2551 "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 8967 "MachineIndependent/glslang_tab.cpp"
+#line 8980 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 353: /* type_specifier_nonarray: SAMPLER2DSHADOW  */
-#line 2568 "MachineIndependent/glslang.y"
+  case 354: /* type_specifier_nonarray: SAMPLER2DSHADOW  */
+#line 2556 "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 8977 "MachineIndependent/glslang_tab.cpp"
+#line 8990 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 354: /* type_specifier_nonarray: SAMPLERCUBESHADOW  */
-#line 2573 "MachineIndependent/glslang.y"
+  case 355: /* type_specifier_nonarray: SAMPLERCUBESHADOW  */
+#line 2561 "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 8987 "MachineIndependent/glslang_tab.cpp"
+#line 9000 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 355: /* type_specifier_nonarray: SAMPLER2DARRAY  */
-#line 2578 "MachineIndependent/glslang.y"
+  case 356: /* type_specifier_nonarray: SAMPLER2DARRAY  */
+#line 2566 "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 8997 "MachineIndependent/glslang_tab.cpp"
+#line 9010 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 356: /* type_specifier_nonarray: SAMPLER2DARRAYSHADOW  */
-#line 2583 "MachineIndependent/glslang.y"
+  case 357: /* type_specifier_nonarray: SAMPLER2DARRAYSHADOW  */
+#line 2571 "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 9007 "MachineIndependent/glslang_tab.cpp"
+#line 9020 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 357: /* type_specifier_nonarray: SAMPLER1DSHADOW  */
-#line 2589 "MachineIndependent/glslang.y"
+  case 358: /* type_specifier_nonarray: SAMPLER1DSHADOW  */
+#line 2576 "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 9017 "MachineIndependent/glslang_tab.cpp"
+#line 9030 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 358: /* type_specifier_nonarray: SAMPLER1DARRAY  */
-#line 2594 "MachineIndependent/glslang.y"
+  case 359: /* type_specifier_nonarray: SAMPLER1DARRAY  */
+#line 2581 "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 9027 "MachineIndependent/glslang_tab.cpp"
+#line 9040 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 359: /* type_specifier_nonarray: SAMPLER1DARRAYSHADOW  */
-#line 2599 "MachineIndependent/glslang.y"
+  case 360: /* type_specifier_nonarray: SAMPLER1DARRAYSHADOW  */
+#line 2586 "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 9037 "MachineIndependent/glslang_tab.cpp"
+#line 9050 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 360: /* type_specifier_nonarray: SAMPLERCUBEARRAY  */
-#line 2604 "MachineIndependent/glslang.y"
+  case 361: /* type_specifier_nonarray: SAMPLERCUBEARRAY  */
+#line 2591 "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 9047 "MachineIndependent/glslang_tab.cpp"
+#line 9060 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 361: /* type_specifier_nonarray: SAMPLERCUBEARRAYSHADOW  */
-#line 2609 "MachineIndependent/glslang.y"
+  case 362: /* type_specifier_nonarray: SAMPLERCUBEARRAYSHADOW  */
+#line 2596 "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 9057 "MachineIndependent/glslang_tab.cpp"
+#line 9070 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 362: /* type_specifier_nonarray: F16SAMPLER1D  */
-#line 2614 "MachineIndependent/glslang.y"
+  case 363: /* type_specifier_nonarray: F16SAMPLER1D  */
+#line 2601 "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 9068 "MachineIndependent/glslang_tab.cpp"
+#line 9081 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 363: /* type_specifier_nonarray: F16SAMPLER2D  */
-#line 2620 "MachineIndependent/glslang.y"
+  case 364: /* type_specifier_nonarray: F16SAMPLER2D  */
+#line 2607 "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 9079 "MachineIndependent/glslang_tab.cpp"
+#line 9092 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 364: /* type_specifier_nonarray: F16SAMPLER3D  */
-#line 2626 "MachineIndependent/glslang.y"
+  case 365: /* type_specifier_nonarray: F16SAMPLER3D  */
+#line 2613 "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 9090 "MachineIndependent/glslang_tab.cpp"
+#line 9103 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 365: /* type_specifier_nonarray: F16SAMPLERCUBE  */
-#line 2632 "MachineIndependent/glslang.y"
+  case 366: /* type_specifier_nonarray: F16SAMPLERCUBE  */
+#line 2619 "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 9101 "MachineIndependent/glslang_tab.cpp"
+#line 9114 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 366: /* type_specifier_nonarray: F16SAMPLER1DSHADOW  */
-#line 2638 "MachineIndependent/glslang.y"
+  case 367: /* type_specifier_nonarray: F16SAMPLER1DSHADOW  */
+#line 2625 "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 9112 "MachineIndependent/glslang_tab.cpp"
+#line 9125 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 367: /* type_specifier_nonarray: F16SAMPLER2DSHADOW  */
-#line 2644 "MachineIndependent/glslang.y"
+  case 368: /* type_specifier_nonarray: F16SAMPLER2DSHADOW  */
+#line 2631 "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 9123 "MachineIndependent/glslang_tab.cpp"
+#line 9136 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 368: /* type_specifier_nonarray: F16SAMPLERCUBESHADOW  */
-#line 2650 "MachineIndependent/glslang.y"
+  case 369: /* type_specifier_nonarray: F16SAMPLERCUBESHADOW  */
+#line 2637 "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 9134 "MachineIndependent/glslang_tab.cpp"
+#line 9147 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 369: /* type_specifier_nonarray: F16SAMPLER1DARRAY  */
-#line 2656 "MachineIndependent/glslang.y"
+  case 370: /* type_specifier_nonarray: F16SAMPLER1DARRAY  */
+#line 2643 "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 9145 "MachineIndependent/glslang_tab.cpp"
+#line 9158 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 370: /* type_specifier_nonarray: F16SAMPLER2DARRAY  */
-#line 2662 "MachineIndependent/glslang.y"
+  case 371: /* type_specifier_nonarray: F16SAMPLER2DARRAY  */
+#line 2649 "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 9156 "MachineIndependent/glslang_tab.cpp"
+#line 9169 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 371: /* type_specifier_nonarray: F16SAMPLER1DARRAYSHADOW  */
-#line 2668 "MachineIndependent/glslang.y"
+  case 372: /* type_specifier_nonarray: F16SAMPLER1DARRAYSHADOW  */
+#line 2655 "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 9167 "MachineIndependent/glslang_tab.cpp"
+#line 9180 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 372: /* type_specifier_nonarray: F16SAMPLER2DARRAYSHADOW  */
-#line 2674 "MachineIndependent/glslang.y"
+  case 373: /* type_specifier_nonarray: F16SAMPLER2DARRAYSHADOW  */
+#line 2661 "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 9178 "MachineIndependent/glslang_tab.cpp"
+#line 9191 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 373: /* type_specifier_nonarray: F16SAMPLERCUBEARRAY  */
-#line 2680 "MachineIndependent/glslang.y"
+  case 374: /* type_specifier_nonarray: F16SAMPLERCUBEARRAY  */
+#line 2667 "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 9189 "MachineIndependent/glslang_tab.cpp"
+#line 9202 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 374: /* type_specifier_nonarray: F16SAMPLERCUBEARRAYSHADOW  */
-#line 2686 "MachineIndependent/glslang.y"
+  case 375: /* type_specifier_nonarray: F16SAMPLERCUBEARRAYSHADOW  */
+#line 2673 "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 9200 "MachineIndependent/glslang_tab.cpp"
+#line 9213 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 375: /* type_specifier_nonarray: ISAMPLER1D  */
-#line 2692 "MachineIndependent/glslang.y"
+  case 376: /* type_specifier_nonarray: ISAMPLER1D  */
+#line 2679 "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 9210 "MachineIndependent/glslang_tab.cpp"
+#line 9223 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 376: /* type_specifier_nonarray: ISAMPLER2D  */
-#line 2698 "MachineIndependent/glslang.y"
+  case 377: /* type_specifier_nonarray: ISAMPLER2D  */
+#line 2684 "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 9220 "MachineIndependent/glslang_tab.cpp"
+#line 9233 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 377: /* type_specifier_nonarray: ISAMPLER3D  */
-#line 2703 "MachineIndependent/glslang.y"
+  case 378: /* type_specifier_nonarray: ISAMPLER3D  */
+#line 2689 "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 9230 "MachineIndependent/glslang_tab.cpp"
+#line 9243 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 378: /* type_specifier_nonarray: ISAMPLERCUBE  */
-#line 2708 "MachineIndependent/glslang.y"
+  case 379: /* type_specifier_nonarray: ISAMPLERCUBE  */
+#line 2694 "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 9240 "MachineIndependent/glslang_tab.cpp"
+#line 9253 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 379: /* type_specifier_nonarray: ISAMPLER2DARRAY  */
-#line 2713 "MachineIndependent/glslang.y"
+  case 380: /* type_specifier_nonarray: ISAMPLER2DARRAY  */
+#line 2699 "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 9250 "MachineIndependent/glslang_tab.cpp"
+#line 9263 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 380: /* type_specifier_nonarray: USAMPLER2D  */
-#line 2718 "MachineIndependent/glslang.y"
+  case 381: /* type_specifier_nonarray: USAMPLER2D  */
+#line 2704 "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 9260 "MachineIndependent/glslang_tab.cpp"
+#line 9273 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 381: /* type_specifier_nonarray: USAMPLER3D  */
-#line 2723 "MachineIndependent/glslang.y"
+  case 382: /* type_specifier_nonarray: USAMPLER3D  */
+#line 2709 "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 9270 "MachineIndependent/glslang_tab.cpp"
+#line 9283 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 382: /* type_specifier_nonarray: USAMPLERCUBE  */
-#line 2728 "MachineIndependent/glslang.y"
+  case 383: /* type_specifier_nonarray: USAMPLERCUBE  */
+#line 2714 "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 9280 "MachineIndependent/glslang_tab.cpp"
+#line 9293 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 383: /* type_specifier_nonarray: ISAMPLER1DARRAY  */
-#line 2734 "MachineIndependent/glslang.y"
+  case 384: /* 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 9290 "MachineIndependent/glslang_tab.cpp"
+#line 9303 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 384: /* type_specifier_nonarray: ISAMPLERCUBEARRAY  */
-#line 2739 "MachineIndependent/glslang.y"
+  case 385: /* 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 9300 "MachineIndependent/glslang_tab.cpp"
+#line 9313 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 385: /* type_specifier_nonarray: USAMPLER1D  */
-#line 2744 "MachineIndependent/glslang.y"
+  case 386: /* 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 9310 "MachineIndependent/glslang_tab.cpp"
+#line 9323 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 386: /* type_specifier_nonarray: USAMPLER1DARRAY  */
-#line 2749 "MachineIndependent/glslang.y"
+  case 387: /* 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 9320 "MachineIndependent/glslang_tab.cpp"
+#line 9333 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 387: /* type_specifier_nonarray: USAMPLERCUBEARRAY  */
-#line 2754 "MachineIndependent/glslang.y"
+  case 388: /* 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 9330 "MachineIndependent/glslang_tab.cpp"
+#line 9343 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 388: /* type_specifier_nonarray: TEXTURECUBEARRAY  */
-#line 2759 "MachineIndependent/glslang.y"
+  case 389: /* 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 9340 "MachineIndependent/glslang_tab.cpp"
+#line 9353 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 389: /* type_specifier_nonarray: ITEXTURECUBEARRAY  */
-#line 2764 "MachineIndependent/glslang.y"
+  case 390: /* 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 9350 "MachineIndependent/glslang_tab.cpp"
+#line 9363 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 390: /* type_specifier_nonarray: UTEXTURECUBEARRAY  */
-#line 2769 "MachineIndependent/glslang.y"
+  case 391: /* 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 9360 "MachineIndependent/glslang_tab.cpp"
+#line 9373 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 391: /* type_specifier_nonarray: USAMPLER2DARRAY  */
-#line 2775 "MachineIndependent/glslang.y"
+  case 392: /* type_specifier_nonarray: USAMPLER2DARRAY  */
+#line 2759 "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 9370 "MachineIndependent/glslang_tab.cpp"
+#line 9383 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 392: /* type_specifier_nonarray: TEXTURE2D  */
-#line 2780 "MachineIndependent/glslang.y"
+  case 393: /* type_specifier_nonarray: TEXTURE2D  */
+#line 2764 "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 9380 "MachineIndependent/glslang_tab.cpp"
+#line 9393 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 393: /* type_specifier_nonarray: TEXTURE3D  */
-#line 2785 "MachineIndependent/glslang.y"
+  case 394: /* type_specifier_nonarray: TEXTURE3D  */
+#line 2769 "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 9390 "MachineIndependent/glslang_tab.cpp"
+#line 9403 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 394: /* type_specifier_nonarray: TEXTURE2DARRAY  */
-#line 2790 "MachineIndependent/glslang.y"
+  case 395: /* type_specifier_nonarray: TEXTURE2DARRAY  */
+#line 2774 "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 9400 "MachineIndependent/glslang_tab.cpp"
+#line 9413 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 395: /* type_specifier_nonarray: TEXTURECUBE  */
-#line 2795 "MachineIndependent/glslang.y"
+  case 396: /* type_specifier_nonarray: TEXTURECUBE  */
+#line 2779 "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 9410 "MachineIndependent/glslang_tab.cpp"
+#line 9423 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 396: /* type_specifier_nonarray: ITEXTURE2D  */
-#line 2800 "MachineIndependent/glslang.y"
+  case 397: /* type_specifier_nonarray: ITEXTURE2D  */
+#line 2784 "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 9420 "MachineIndependent/glslang_tab.cpp"
+#line 9433 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 397: /* type_specifier_nonarray: ITEXTURE3D  */
-#line 2805 "MachineIndependent/glslang.y"
+  case 398: /* type_specifier_nonarray: ITEXTURE3D  */
+#line 2789 "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 9430 "MachineIndependent/glslang_tab.cpp"
+#line 9443 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 398: /* type_specifier_nonarray: ITEXTURECUBE  */
-#line 2810 "MachineIndependent/glslang.y"
+  case 399: /* type_specifier_nonarray: ITEXTURECUBE  */
+#line 2794 "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 9440 "MachineIndependent/glslang_tab.cpp"
+#line 9453 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 399: /* type_specifier_nonarray: ITEXTURE2DARRAY  */
-#line 2815 "MachineIndependent/glslang.y"
+  case 400: /* type_specifier_nonarray: ITEXTURE2DARRAY  */
+#line 2799 "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 9450 "MachineIndependent/glslang_tab.cpp"
+#line 9463 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 400: /* type_specifier_nonarray: UTEXTURE2D  */
-#line 2820 "MachineIndependent/glslang.y"
+  case 401: /* type_specifier_nonarray: UTEXTURE2D  */
+#line 2804 "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 9460 "MachineIndependent/glslang_tab.cpp"
+#line 9473 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 401: /* type_specifier_nonarray: UTEXTURE3D  */
-#line 2825 "MachineIndependent/glslang.y"
+  case 402: /* type_specifier_nonarray: UTEXTURE3D  */
+#line 2809 "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 9470 "MachineIndependent/glslang_tab.cpp"
+#line 9483 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 402: /* type_specifier_nonarray: UTEXTURECUBE  */
-#line 2830 "MachineIndependent/glslang.y"
+  case 403: /* type_specifier_nonarray: UTEXTURECUBE  */
+#line 2814 "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 9480 "MachineIndependent/glslang_tab.cpp"
+#line 9493 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 403: /* type_specifier_nonarray: UTEXTURE2DARRAY  */
-#line 2835 "MachineIndependent/glslang.y"
+  case 404: /* type_specifier_nonarray: UTEXTURE2DARRAY  */
+#line 2819 "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 9490 "MachineIndependent/glslang_tab.cpp"
+#line 9503 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 404: /* type_specifier_nonarray: SAMPLER  */
-#line 2840 "MachineIndependent/glslang.y"
+  case 405: /* type_specifier_nonarray: SAMPLER  */
+#line 2824 "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 9500 "MachineIndependent/glslang_tab.cpp"
+#line 9513 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 405: /* type_specifier_nonarray: SAMPLERSHADOW  */
-#line 2845 "MachineIndependent/glslang.y"
+  case 406: /* type_specifier_nonarray: SAMPLERSHADOW  */
+#line 2829 "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 9510 "MachineIndependent/glslang_tab.cpp"
+#line 9523 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 406: /* type_specifier_nonarray: SAMPLER2DRECT  */
-#line 2851 "MachineIndependent/glslang.y"
+  case 407: /* type_specifier_nonarray: SAMPLER2DRECT  */
+#line 2834 "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 9520 "MachineIndependent/glslang_tab.cpp"
+#line 9533 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 407: /* type_specifier_nonarray: SAMPLER2DRECTSHADOW  */
-#line 2856 "MachineIndependent/glslang.y"
+  case 408: /* type_specifier_nonarray: SAMPLER2DRECTSHADOW  */
+#line 2839 "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 9530 "MachineIndependent/glslang_tab.cpp"
+#line 9543 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 408: /* type_specifier_nonarray: F16SAMPLER2DRECT  */
-#line 2861 "MachineIndependent/glslang.y"
+  case 409: /* type_specifier_nonarray: F16SAMPLER2DRECT  */
+#line 2844 "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 9541 "MachineIndependent/glslang_tab.cpp"
+#line 9554 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 409: /* type_specifier_nonarray: F16SAMPLER2DRECTSHADOW  */
-#line 2867 "MachineIndependent/glslang.y"
+  case 410: /* type_specifier_nonarray: F16SAMPLER2DRECTSHADOW  */
+#line 2850 "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 9552 "MachineIndependent/glslang_tab.cpp"
+#line 9565 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 410: /* type_specifier_nonarray: ISAMPLER2DRECT  */
-#line 2873 "MachineIndependent/glslang.y"
+  case 411: /* type_specifier_nonarray: ISAMPLER2DRECT  */
+#line 2856 "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 9562 "MachineIndependent/glslang_tab.cpp"
+#line 9575 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 411: /* type_specifier_nonarray: USAMPLER2DRECT  */
-#line 2878 "MachineIndependent/glslang.y"
+  case 412: /* type_specifier_nonarray: USAMPLER2DRECT  */
+#line 2861 "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 9572 "MachineIndependent/glslang_tab.cpp"
+#line 9585 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 412: /* type_specifier_nonarray: SAMPLERBUFFER  */
-#line 2883 "MachineIndependent/glslang.y"
+  case 413: /* type_specifier_nonarray: SAMPLERBUFFER  */
+#line 2866 "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 9582 "MachineIndependent/glslang_tab.cpp"
+#line 9595 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 413: /* type_specifier_nonarray: F16SAMPLERBUFFER  */
-#line 2888 "MachineIndependent/glslang.y"
+  case 414: /* type_specifier_nonarray: F16SAMPLERBUFFER  */
+#line 2871 "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 9593 "MachineIndependent/glslang_tab.cpp"
+#line 9606 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 414: /* type_specifier_nonarray: ISAMPLERBUFFER  */
-#line 2894 "MachineIndependent/glslang.y"
+  case 415: /* type_specifier_nonarray: ISAMPLERBUFFER  */
+#line 2877 "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 9603 "MachineIndependent/glslang_tab.cpp"
+#line 9616 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 415: /* type_specifier_nonarray: USAMPLERBUFFER  */
-#line 2899 "MachineIndependent/glslang.y"
+  case 416: /* type_specifier_nonarray: USAMPLERBUFFER  */
+#line 2882 "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 9613 "MachineIndependent/glslang_tab.cpp"
+#line 9626 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 416: /* type_specifier_nonarray: SAMPLER2DMS  */
-#line 2904 "MachineIndependent/glslang.y"
+  case 417: /* type_specifier_nonarray: SAMPLER2DMS  */
+#line 2887 "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 9623 "MachineIndependent/glslang_tab.cpp"
+#line 9636 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 417: /* type_specifier_nonarray: F16SAMPLER2DMS  */
-#line 2909 "MachineIndependent/glslang.y"
+  case 418: /* type_specifier_nonarray: F16SAMPLER2DMS  */
+#line 2892 "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 9634 "MachineIndependent/glslang_tab.cpp"
+#line 9647 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 418: /* type_specifier_nonarray: ISAMPLER2DMS  */
-#line 2915 "MachineIndependent/glslang.y"
+  case 419: /* type_specifier_nonarray: ISAMPLER2DMS  */
+#line 2898 "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 9644 "MachineIndependent/glslang_tab.cpp"
+#line 9657 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 419: /* type_specifier_nonarray: USAMPLER2DMS  */
-#line 2920 "MachineIndependent/glslang.y"
+  case 420: /* type_specifier_nonarray: USAMPLER2DMS  */
+#line 2903 "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 9654 "MachineIndependent/glslang_tab.cpp"
+#line 9667 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 420: /* type_specifier_nonarray: SAMPLER2DMSARRAY  */
-#line 2925 "MachineIndependent/glslang.y"
+  case 421: /* type_specifier_nonarray: SAMPLER2DMSARRAY  */
+#line 2908 "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 9664 "MachineIndependent/glslang_tab.cpp"
+#line 9677 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 421: /* type_specifier_nonarray: F16SAMPLER2DMSARRAY  */
-#line 2930 "MachineIndependent/glslang.y"
+  case 422: /* type_specifier_nonarray: F16SAMPLER2DMSARRAY  */
+#line 2913 "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 9675 "MachineIndependent/glslang_tab.cpp"
+#line 9688 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 422: /* type_specifier_nonarray: ISAMPLER2DMSARRAY  */
-#line 2936 "MachineIndependent/glslang.y"
+  case 423: /* type_specifier_nonarray: ISAMPLER2DMSARRAY  */
+#line 2919 "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 9685 "MachineIndependent/glslang_tab.cpp"
+#line 9698 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 423: /* type_specifier_nonarray: USAMPLER2DMSARRAY  */
-#line 2941 "MachineIndependent/glslang.y"
+  case 424: /* type_specifier_nonarray: USAMPLER2DMSARRAY  */
+#line 2924 "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 9695 "MachineIndependent/glslang_tab.cpp"
+#line 9708 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 424: /* type_specifier_nonarray: TEXTURE1D  */
-#line 2946 "MachineIndependent/glslang.y"
+  case 425: /* type_specifier_nonarray: TEXTURE1D  */
+#line 2929 "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 9705 "MachineIndependent/glslang_tab.cpp"
+#line 9718 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 425: /* type_specifier_nonarray: F16TEXTURE1D  */
-#line 2951 "MachineIndependent/glslang.y"
+  case 426: /* type_specifier_nonarray: F16TEXTURE1D  */
+#line 2934 "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 9716 "MachineIndependent/glslang_tab.cpp"
+#line 9729 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 426: /* type_specifier_nonarray: F16TEXTURE2D  */
-#line 2957 "MachineIndependent/glslang.y"
+  case 427: /* type_specifier_nonarray: F16TEXTURE2D  */
+#line 2940 "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 9727 "MachineIndependent/glslang_tab.cpp"
+#line 9740 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 427: /* type_specifier_nonarray: F16TEXTURE3D  */
-#line 2963 "MachineIndependent/glslang.y"
+  case 428: /* type_specifier_nonarray: F16TEXTURE3D  */
+#line 2946 "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 9738 "MachineIndependent/glslang_tab.cpp"
+#line 9751 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 428: /* type_specifier_nonarray: F16TEXTURECUBE  */
-#line 2969 "MachineIndependent/glslang.y"
+  case 429: /* type_specifier_nonarray: F16TEXTURECUBE  */
+#line 2952 "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 9749 "MachineIndependent/glslang_tab.cpp"
+#line 9762 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 429: /* type_specifier_nonarray: TEXTURE1DARRAY  */
-#line 2975 "MachineIndependent/glslang.y"
+  case 430: /* type_specifier_nonarray: TEXTURE1DARRAY  */
+#line 2958 "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 9759 "MachineIndependent/glslang_tab.cpp"
+#line 9772 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 430: /* type_specifier_nonarray: F16TEXTURE1DARRAY  */
-#line 2980 "MachineIndependent/glslang.y"
+  case 431: /* type_specifier_nonarray: F16TEXTURE1DARRAY  */
+#line 2963 "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 9770 "MachineIndependent/glslang_tab.cpp"
+#line 9783 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 431: /* type_specifier_nonarray: F16TEXTURE2DARRAY  */
-#line 2986 "MachineIndependent/glslang.y"
+  case 432: /* type_specifier_nonarray: F16TEXTURE2DARRAY  */
+#line 2969 "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 9781 "MachineIndependent/glslang_tab.cpp"
+#line 9794 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 432: /* type_specifier_nonarray: F16TEXTURECUBEARRAY  */
-#line 2992 "MachineIndependent/glslang.y"
+  case 433: /* type_specifier_nonarray: F16TEXTURECUBEARRAY  */
+#line 2975 "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 9792 "MachineIndependent/glslang_tab.cpp"
+#line 9805 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 433: /* type_specifier_nonarray: ITEXTURE1D  */
-#line 2998 "MachineIndependent/glslang.y"
+  case 434: /* type_specifier_nonarray: ITEXTURE1D  */
+#line 2981 "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 9802 "MachineIndependent/glslang_tab.cpp"
+#line 9815 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 434: /* type_specifier_nonarray: ITEXTURE1DARRAY  */
-#line 3003 "MachineIndependent/glslang.y"
+  case 435: /* type_specifier_nonarray: ITEXTURE1DARRAY  */
+#line 2986 "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 9812 "MachineIndependent/glslang_tab.cpp"
+#line 9825 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 435: /* type_specifier_nonarray: UTEXTURE1D  */
-#line 3008 "MachineIndependent/glslang.y"
+  case 436: /* type_specifier_nonarray: UTEXTURE1D  */
+#line 2991 "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 9822 "MachineIndependent/glslang_tab.cpp"
+#line 9835 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 436: /* type_specifier_nonarray: UTEXTURE1DARRAY  */
-#line 3013 "MachineIndependent/glslang.y"
+  case 437: /* type_specifier_nonarray: UTEXTURE1DARRAY  */
+#line 2996 "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 9832 "MachineIndependent/glslang_tab.cpp"
+#line 9845 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 437: /* type_specifier_nonarray: TEXTURE2DRECT  */
-#line 3018 "MachineIndependent/glslang.y"
+  case 438: /* type_specifier_nonarray: TEXTURE2DRECT  */
+#line 3001 "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 9842 "MachineIndependent/glslang_tab.cpp"
+#line 9855 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 438: /* type_specifier_nonarray: F16TEXTURE2DRECT  */
-#line 3023 "MachineIndependent/glslang.y"
+  case 439: /* type_specifier_nonarray: F16TEXTURE2DRECT  */
+#line 3006 "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 9853 "MachineIndependent/glslang_tab.cpp"
+#line 9866 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 439: /* type_specifier_nonarray: ITEXTURE2DRECT  */
-#line 3029 "MachineIndependent/glslang.y"
+  case 440: /* type_specifier_nonarray: ITEXTURE2DRECT  */
+#line 3012 "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 9863 "MachineIndependent/glslang_tab.cpp"
+#line 9876 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 440: /* type_specifier_nonarray: UTEXTURE2DRECT  */
-#line 3034 "MachineIndependent/glslang.y"
+  case 441: /* type_specifier_nonarray: UTEXTURE2DRECT  */
+#line 3017 "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 9873 "MachineIndependent/glslang_tab.cpp"
+#line 9886 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 441: /* type_specifier_nonarray: TEXTUREBUFFER  */
-#line 3039 "MachineIndependent/glslang.y"
+  case 442: /* type_specifier_nonarray: TEXTUREBUFFER  */
+#line 3022 "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 9883 "MachineIndependent/glslang_tab.cpp"
+#line 9896 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 442: /* type_specifier_nonarray: F16TEXTUREBUFFER  */
-#line 3044 "MachineIndependent/glslang.y"
+  case 443: /* type_specifier_nonarray: F16TEXTUREBUFFER  */
+#line 3027 "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 9894 "MachineIndependent/glslang_tab.cpp"
+#line 9907 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 443: /* type_specifier_nonarray: ITEXTUREBUFFER  */
-#line 3050 "MachineIndependent/glslang.y"
+  case 444: /* type_specifier_nonarray: ITEXTUREBUFFER  */
+#line 3033 "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 9904 "MachineIndependent/glslang_tab.cpp"
+#line 9917 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 444: /* type_specifier_nonarray: UTEXTUREBUFFER  */
-#line 3055 "MachineIndependent/glslang.y"
+  case 445: /* type_specifier_nonarray: UTEXTUREBUFFER  */
+#line 3038 "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 9914 "MachineIndependent/glslang_tab.cpp"
+#line 9927 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 445: /* type_specifier_nonarray: TEXTURE2DMS  */
-#line 3060 "MachineIndependent/glslang.y"
+  case 446: /* type_specifier_nonarray: TEXTURE2DMS  */
+#line 3043 "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 9924 "MachineIndependent/glslang_tab.cpp"
+#line 9937 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 446: /* type_specifier_nonarray: F16TEXTURE2DMS  */
-#line 3065 "MachineIndependent/glslang.y"
+  case 447: /* type_specifier_nonarray: F16TEXTURE2DMS  */
+#line 3048 "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 9935 "MachineIndependent/glslang_tab.cpp"
+#line 9948 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 447: /* type_specifier_nonarray: ITEXTURE2DMS  */
-#line 3071 "MachineIndependent/glslang.y"
+  case 448: /* type_specifier_nonarray: ITEXTURE2DMS  */
+#line 3054 "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 9945 "MachineIndependent/glslang_tab.cpp"
+#line 9958 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 448: /* type_specifier_nonarray: UTEXTURE2DMS  */
-#line 3076 "MachineIndependent/glslang.y"
+  case 449: /* type_specifier_nonarray: UTEXTURE2DMS  */
+#line 3059 "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 9955 "MachineIndependent/glslang_tab.cpp"
+#line 9968 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 449: /* type_specifier_nonarray: TEXTURE2DMSARRAY  */
-#line 3081 "MachineIndependent/glslang.y"
+  case 450: /* type_specifier_nonarray: TEXTURE2DMSARRAY  */
+#line 3064 "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 9965 "MachineIndependent/glslang_tab.cpp"
+#line 9978 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 450: /* type_specifier_nonarray: F16TEXTURE2DMSARRAY  */
-#line 3086 "MachineIndependent/glslang.y"
+  case 451: /* type_specifier_nonarray: F16TEXTURE2DMSARRAY  */
+#line 3069 "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 9976 "MachineIndependent/glslang_tab.cpp"
+#line 9989 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 451: /* type_specifier_nonarray: ITEXTURE2DMSARRAY  */
-#line 3092 "MachineIndependent/glslang.y"
+  case 452: /* type_specifier_nonarray: ITEXTURE2DMSARRAY  */
+#line 3075 "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 9986 "MachineIndependent/glslang_tab.cpp"
+#line 9999 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 452: /* type_specifier_nonarray: UTEXTURE2DMSARRAY  */
-#line 3097 "MachineIndependent/glslang.y"
+  case 453: /* type_specifier_nonarray: UTEXTURE2DMSARRAY  */
+#line 3080 "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 9996 "MachineIndependent/glslang_tab.cpp"
+#line 10009 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 453: /* type_specifier_nonarray: IMAGE1D  */
-#line 3102 "MachineIndependent/glslang.y"
+  case 454: /* type_specifier_nonarray: IMAGE1D  */
+#line 3085 "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 10006 "MachineIndependent/glslang_tab.cpp"
+#line 10019 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 454: /* type_specifier_nonarray: F16IMAGE1D  */
-#line 3107 "MachineIndependent/glslang.y"
+  case 455: /* type_specifier_nonarray: F16IMAGE1D  */
+#line 3090 "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 10017 "MachineIndependent/glslang_tab.cpp"
+#line 10030 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 455: /* type_specifier_nonarray: IIMAGE1D  */
-#line 3113 "MachineIndependent/glslang.y"
+  case 456: /* type_specifier_nonarray: IIMAGE1D  */
+#line 3096 "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 10027 "MachineIndependent/glslang_tab.cpp"
+#line 10040 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 456: /* type_specifier_nonarray: UIMAGE1D  */
-#line 3118 "MachineIndependent/glslang.y"
+  case 457: /* type_specifier_nonarray: UIMAGE1D  */
+#line 3101 "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 10037 "MachineIndependent/glslang_tab.cpp"
+#line 10050 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 457: /* type_specifier_nonarray: IMAGE2D  */
-#line 3123 "MachineIndependent/glslang.y"
+  case 458: /* type_specifier_nonarray: IMAGE2D  */
+#line 3106 "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 10047 "MachineIndependent/glslang_tab.cpp"
+#line 10060 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 458: /* type_specifier_nonarray: F16IMAGE2D  */
-#line 3128 "MachineIndependent/glslang.y"
+  case 459: /* type_specifier_nonarray: F16IMAGE2D  */
+#line 3111 "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 10058 "MachineIndependent/glslang_tab.cpp"
+#line 10071 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 459: /* type_specifier_nonarray: IIMAGE2D  */
-#line 3134 "MachineIndependent/glslang.y"
+  case 460: /* type_specifier_nonarray: IIMAGE2D  */
+#line 3117 "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 10068 "MachineIndependent/glslang_tab.cpp"
+#line 10081 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 460: /* type_specifier_nonarray: UIMAGE2D  */
-#line 3139 "MachineIndependent/glslang.y"
+  case 461: /* type_specifier_nonarray: UIMAGE2D  */
+#line 3122 "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 10078 "MachineIndependent/glslang_tab.cpp"
+#line 10091 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 461: /* type_specifier_nonarray: IMAGE3D  */
-#line 3144 "MachineIndependent/glslang.y"
+  case 462: /* type_specifier_nonarray: IMAGE3D  */
+#line 3127 "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 10088 "MachineIndependent/glslang_tab.cpp"
+#line 10101 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 462: /* type_specifier_nonarray: F16IMAGE3D  */
-#line 3149 "MachineIndependent/glslang.y"
+  case 463: /* type_specifier_nonarray: F16IMAGE3D  */
+#line 3132 "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 10099 "MachineIndependent/glslang_tab.cpp"
+#line 10112 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 463: /* type_specifier_nonarray: IIMAGE3D  */
-#line 3155 "MachineIndependent/glslang.y"
+  case 464: /* type_specifier_nonarray: IIMAGE3D  */
+#line 3138 "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 10109 "MachineIndependent/glslang_tab.cpp"
+#line 10122 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 464: /* type_specifier_nonarray: UIMAGE3D  */
-#line 3160 "MachineIndependent/glslang.y"
+  case 465: /* type_specifier_nonarray: UIMAGE3D  */
+#line 3143 "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 10119 "MachineIndependent/glslang_tab.cpp"
+#line 10132 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 465: /* type_specifier_nonarray: IMAGE2DRECT  */
-#line 3165 "MachineIndependent/glslang.y"
+  case 466: /* type_specifier_nonarray: IMAGE2DRECT  */
+#line 3148 "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 10129 "MachineIndependent/glslang_tab.cpp"
+#line 10142 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 466: /* type_specifier_nonarray: F16IMAGE2DRECT  */
-#line 3170 "MachineIndependent/glslang.y"
+  case 467: /* type_specifier_nonarray: F16IMAGE2DRECT  */
+#line 3153 "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 10140 "MachineIndependent/glslang_tab.cpp"
+#line 10153 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 467: /* type_specifier_nonarray: IIMAGE2DRECT  */
-#line 3176 "MachineIndependent/glslang.y"
+  case 468: /* type_specifier_nonarray: IIMAGE2DRECT  */
+#line 3159 "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 10150 "MachineIndependent/glslang_tab.cpp"
+#line 10163 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 468: /* type_specifier_nonarray: UIMAGE2DRECT  */
-#line 3181 "MachineIndependent/glslang.y"
+  case 469: /* type_specifier_nonarray: UIMAGE2DRECT  */
+#line 3164 "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 10160 "MachineIndependent/glslang_tab.cpp"
+#line 10173 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 469: /* type_specifier_nonarray: IMAGECUBE  */
-#line 3186 "MachineIndependent/glslang.y"
+  case 470: /* type_specifier_nonarray: IMAGECUBE  */
+#line 3169 "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 10170 "MachineIndependent/glslang_tab.cpp"
+#line 10183 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 470: /* type_specifier_nonarray: F16IMAGECUBE  */
-#line 3191 "MachineIndependent/glslang.y"
+  case 471: /* type_specifier_nonarray: F16IMAGECUBE  */
+#line 3174 "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 10181 "MachineIndependent/glslang_tab.cpp"
+#line 10194 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 471: /* type_specifier_nonarray: IIMAGECUBE  */
-#line 3197 "MachineIndependent/glslang.y"
+  case 472: /* type_specifier_nonarray: IIMAGECUBE  */
+#line 3180 "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 10191 "MachineIndependent/glslang_tab.cpp"
+#line 10204 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 472: /* type_specifier_nonarray: UIMAGECUBE  */
-#line 3202 "MachineIndependent/glslang.y"
+  case 473: /* type_specifier_nonarray: UIMAGECUBE  */
+#line 3185 "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 10201 "MachineIndependent/glslang_tab.cpp"
+#line 10214 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 473: /* type_specifier_nonarray: IMAGEBUFFER  */
-#line 3207 "MachineIndependent/glslang.y"
+  case 474: /* type_specifier_nonarray: IMAGEBUFFER  */
+#line 3190 "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 10211 "MachineIndependent/glslang_tab.cpp"
+#line 10224 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 474: /* type_specifier_nonarray: F16IMAGEBUFFER  */
-#line 3212 "MachineIndependent/glslang.y"
+  case 475: /* type_specifier_nonarray: F16IMAGEBUFFER  */
+#line 3195 "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 10222 "MachineIndependent/glslang_tab.cpp"
+#line 10235 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 475: /* type_specifier_nonarray: IIMAGEBUFFER  */
-#line 3218 "MachineIndependent/glslang.y"
+  case 476: /* type_specifier_nonarray: IIMAGEBUFFER  */
+#line 3201 "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 10232 "MachineIndependent/glslang_tab.cpp"
+#line 10245 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 476: /* type_specifier_nonarray: UIMAGEBUFFER  */
-#line 3223 "MachineIndependent/glslang.y"
+  case 477: /* type_specifier_nonarray: UIMAGEBUFFER  */
+#line 3206 "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 10242 "MachineIndependent/glslang_tab.cpp"
+#line 10255 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 477: /* type_specifier_nonarray: IMAGE1DARRAY  */
-#line 3228 "MachineIndependent/glslang.y"
+  case 478: /* type_specifier_nonarray: IMAGE1DARRAY  */
+#line 3211 "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 10252 "MachineIndependent/glslang_tab.cpp"
+#line 10265 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 478: /* type_specifier_nonarray: F16IMAGE1DARRAY  */
-#line 3233 "MachineIndependent/glslang.y"
+  case 479: /* type_specifier_nonarray: F16IMAGE1DARRAY  */
+#line 3216 "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 10263 "MachineIndependent/glslang_tab.cpp"
+#line 10276 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 479: /* type_specifier_nonarray: IIMAGE1DARRAY  */
-#line 3239 "MachineIndependent/glslang.y"
+  case 480: /* type_specifier_nonarray: IIMAGE1DARRAY  */
+#line 3222 "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 10273 "MachineIndependent/glslang_tab.cpp"
+#line 10286 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 480: /* type_specifier_nonarray: UIMAGE1DARRAY  */
-#line 3244 "MachineIndependent/glslang.y"
+  case 481: /* type_specifier_nonarray: UIMAGE1DARRAY  */
+#line 3227 "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 10283 "MachineIndependent/glslang_tab.cpp"
+#line 10296 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 481: /* type_specifier_nonarray: IMAGE2DARRAY  */
-#line 3249 "MachineIndependent/glslang.y"
+  case 482: /* type_specifier_nonarray: IMAGE2DARRAY  */
+#line 3232 "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 10293 "MachineIndependent/glslang_tab.cpp"
+#line 10306 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 482: /* type_specifier_nonarray: F16IMAGE2DARRAY  */
-#line 3254 "MachineIndependent/glslang.y"
+  case 483: /* type_specifier_nonarray: F16IMAGE2DARRAY  */
+#line 3237 "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 10304 "MachineIndependent/glslang_tab.cpp"
+#line 10317 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 483: /* type_specifier_nonarray: IIMAGE2DARRAY  */
-#line 3260 "MachineIndependent/glslang.y"
+  case 484: /* type_specifier_nonarray: IIMAGE2DARRAY  */
+#line 3243 "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 10314 "MachineIndependent/glslang_tab.cpp"
+#line 10327 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 484: /* type_specifier_nonarray: UIMAGE2DARRAY  */
-#line 3265 "MachineIndependent/glslang.y"
+  case 485: /* type_specifier_nonarray: UIMAGE2DARRAY  */
+#line 3248 "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 10324 "MachineIndependent/glslang_tab.cpp"
+#line 10337 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 485: /* type_specifier_nonarray: IMAGECUBEARRAY  */
-#line 3270 "MachineIndependent/glslang.y"
+  case 486: /* type_specifier_nonarray: IMAGECUBEARRAY  */
+#line 3253 "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 10334 "MachineIndependent/glslang_tab.cpp"
+#line 10347 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 486: /* type_specifier_nonarray: F16IMAGECUBEARRAY  */
-#line 3275 "MachineIndependent/glslang.y"
+  case 487: /* type_specifier_nonarray: F16IMAGECUBEARRAY  */
+#line 3258 "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 10345 "MachineIndependent/glslang_tab.cpp"
+#line 10358 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 487: /* type_specifier_nonarray: IIMAGECUBEARRAY  */
-#line 3281 "MachineIndependent/glslang.y"
+  case 488: /* type_specifier_nonarray: IIMAGECUBEARRAY  */
+#line 3264 "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 10355 "MachineIndependent/glslang_tab.cpp"
+#line 10368 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 488: /* type_specifier_nonarray: UIMAGECUBEARRAY  */
-#line 3286 "MachineIndependent/glslang.y"
+  case 489: /* type_specifier_nonarray: UIMAGECUBEARRAY  */
+#line 3269 "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 10365 "MachineIndependent/glslang_tab.cpp"
+#line 10378 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 489: /* type_specifier_nonarray: IMAGE2DMS  */
-#line 3291 "MachineIndependent/glslang.y"
+  case 490: /* type_specifier_nonarray: IMAGE2DMS  */
+#line 3274 "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 10375 "MachineIndependent/glslang_tab.cpp"
+#line 10388 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 490: /* type_specifier_nonarray: F16IMAGE2DMS  */
-#line 3296 "MachineIndependent/glslang.y"
+  case 491: /* type_specifier_nonarray: F16IMAGE2DMS  */
+#line 3279 "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 10386 "MachineIndependent/glslang_tab.cpp"
+#line 10399 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 491: /* type_specifier_nonarray: IIMAGE2DMS  */
-#line 3302 "MachineIndependent/glslang.y"
+  case 492: /* type_specifier_nonarray: IIMAGE2DMS  */
+#line 3285 "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 10396 "MachineIndependent/glslang_tab.cpp"
+#line 10409 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 492: /* type_specifier_nonarray: UIMAGE2DMS  */
-#line 3307 "MachineIndependent/glslang.y"
+  case 493: /* type_specifier_nonarray: UIMAGE2DMS  */
+#line 3290 "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 10406 "MachineIndependent/glslang_tab.cpp"
+#line 10419 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 493: /* type_specifier_nonarray: IMAGE2DMSARRAY  */
-#line 3312 "MachineIndependent/glslang.y"
+  case 494: /* type_specifier_nonarray: IMAGE2DMSARRAY  */
+#line 3295 "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 10416 "MachineIndependent/glslang_tab.cpp"
+#line 10429 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 494: /* type_specifier_nonarray: F16IMAGE2DMSARRAY  */
-#line 3317 "MachineIndependent/glslang.y"
+  case 495: /* type_specifier_nonarray: F16IMAGE2DMSARRAY  */
+#line 3300 "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 10427 "MachineIndependent/glslang_tab.cpp"
+#line 10440 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 495: /* type_specifier_nonarray: IIMAGE2DMSARRAY  */
-#line 3323 "MachineIndependent/glslang.y"
+  case 496: /* type_specifier_nonarray: IIMAGE2DMSARRAY  */
+#line 3306 "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 10437 "MachineIndependent/glslang_tab.cpp"
+#line 10450 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 496: /* type_specifier_nonarray: UIMAGE2DMSARRAY  */
-#line 3328 "MachineIndependent/glslang.y"
+  case 497: /* type_specifier_nonarray: UIMAGE2DMSARRAY  */
+#line 3311 "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 10447 "MachineIndependent/glslang_tab.cpp"
+#line 10460 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 497: /* type_specifier_nonarray: I64IMAGE1D  */
-#line 3333 "MachineIndependent/glslang.y"
+  case 498: /* type_specifier_nonarray: I64IMAGE1D  */
+#line 3316 "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 10457 "MachineIndependent/glslang_tab.cpp"
+#line 10470 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 498: /* type_specifier_nonarray: U64IMAGE1D  */
-#line 3338 "MachineIndependent/glslang.y"
+  case 499: /* type_specifier_nonarray: U64IMAGE1D  */
+#line 3321 "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 10467 "MachineIndependent/glslang_tab.cpp"
+#line 10480 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 499: /* type_specifier_nonarray: I64IMAGE2D  */
-#line 3343 "MachineIndependent/glslang.y"
+  case 500: /* type_specifier_nonarray: I64IMAGE2D  */
+#line 3326 "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 10477 "MachineIndependent/glslang_tab.cpp"
+#line 10490 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 500: /* type_specifier_nonarray: U64IMAGE2D  */
-#line 3348 "MachineIndependent/glslang.y"
+  case 501: /* type_specifier_nonarray: U64IMAGE2D  */
+#line 3331 "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 10487 "MachineIndependent/glslang_tab.cpp"
+#line 10500 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 501: /* type_specifier_nonarray: I64IMAGE3D  */
-#line 3353 "MachineIndependent/glslang.y"
+  case 502: /* type_specifier_nonarray: I64IMAGE3D  */
+#line 3336 "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 10497 "MachineIndependent/glslang_tab.cpp"
+#line 10510 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 502: /* type_specifier_nonarray: U64IMAGE3D  */
-#line 3358 "MachineIndependent/glslang.y"
+  case 503: /* type_specifier_nonarray: U64IMAGE3D  */
+#line 3341 "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 10507 "MachineIndependent/glslang_tab.cpp"
+#line 10520 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 503: /* type_specifier_nonarray: I64IMAGE2DRECT  */
-#line 3363 "MachineIndependent/glslang.y"
+  case 504: /* type_specifier_nonarray: I64IMAGE2DRECT  */
+#line 3346 "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 10517 "MachineIndependent/glslang_tab.cpp"
+#line 10530 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 504: /* type_specifier_nonarray: U64IMAGE2DRECT  */
-#line 3368 "MachineIndependent/glslang.y"
+  case 505: /* type_specifier_nonarray: U64IMAGE2DRECT  */
+#line 3351 "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 10527 "MachineIndependent/glslang_tab.cpp"
+#line 10540 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 505: /* type_specifier_nonarray: I64IMAGECUBE  */
-#line 3373 "MachineIndependent/glslang.y"
+  case 506: /* type_specifier_nonarray: I64IMAGECUBE  */
+#line 3356 "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 10537 "MachineIndependent/glslang_tab.cpp"
+#line 10550 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 506: /* type_specifier_nonarray: U64IMAGECUBE  */
-#line 3378 "MachineIndependent/glslang.y"
+  case 507: /* type_specifier_nonarray: U64IMAGECUBE  */
+#line 3361 "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 10547 "MachineIndependent/glslang_tab.cpp"
+#line 10560 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 507: /* type_specifier_nonarray: I64IMAGEBUFFER  */
-#line 3383 "MachineIndependent/glslang.y"
+  case 508: /* type_specifier_nonarray: I64IMAGEBUFFER  */
+#line 3366 "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 10557 "MachineIndependent/glslang_tab.cpp"
+#line 10570 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 508: /* type_specifier_nonarray: U64IMAGEBUFFER  */
-#line 3388 "MachineIndependent/glslang.y"
+  case 509: /* type_specifier_nonarray: U64IMAGEBUFFER  */
+#line 3371 "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 10567 "MachineIndependent/glslang_tab.cpp"
+#line 10580 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 509: /* type_specifier_nonarray: I64IMAGE1DARRAY  */
-#line 3393 "MachineIndependent/glslang.y"
+  case 510: /* type_specifier_nonarray: I64IMAGE1DARRAY  */
+#line 3376 "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 10577 "MachineIndependent/glslang_tab.cpp"
+#line 10590 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 510: /* type_specifier_nonarray: U64IMAGE1DARRAY  */
-#line 3398 "MachineIndependent/glslang.y"
+  case 511: /* type_specifier_nonarray: U64IMAGE1DARRAY  */
+#line 3381 "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 10587 "MachineIndependent/glslang_tab.cpp"
+#line 10600 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 511: /* type_specifier_nonarray: I64IMAGE2DARRAY  */
-#line 3403 "MachineIndependent/glslang.y"
+  case 512: /* type_specifier_nonarray: I64IMAGE2DARRAY  */
+#line 3386 "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 10597 "MachineIndependent/glslang_tab.cpp"
+#line 10610 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 512: /* type_specifier_nonarray: U64IMAGE2DARRAY  */
-#line 3408 "MachineIndependent/glslang.y"
+  case 513: /* type_specifier_nonarray: U64IMAGE2DARRAY  */
+#line 3391 "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 10607 "MachineIndependent/glslang_tab.cpp"
+#line 10620 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 513: /* type_specifier_nonarray: I64IMAGECUBEARRAY  */
-#line 3413 "MachineIndependent/glslang.y"
+  case 514: /* type_specifier_nonarray: I64IMAGECUBEARRAY  */
+#line 3396 "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 10617 "MachineIndependent/glslang_tab.cpp"
+#line 10630 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 514: /* type_specifier_nonarray: U64IMAGECUBEARRAY  */
-#line 3418 "MachineIndependent/glslang.y"
+  case 515: /* type_specifier_nonarray: U64IMAGECUBEARRAY  */
+#line 3401 "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 10627 "MachineIndependent/glslang_tab.cpp"
+#line 10640 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 515: /* type_specifier_nonarray: I64IMAGE2DMS  */
-#line 3423 "MachineIndependent/glslang.y"
+  case 516: /* type_specifier_nonarray: I64IMAGE2DMS  */
+#line 3406 "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 10637 "MachineIndependent/glslang_tab.cpp"
+#line 10650 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 516: /* type_specifier_nonarray: U64IMAGE2DMS  */
-#line 3428 "MachineIndependent/glslang.y"
+  case 517: /* type_specifier_nonarray: U64IMAGE2DMS  */
+#line 3411 "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 10647 "MachineIndependent/glslang_tab.cpp"
+#line 10660 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 517: /* type_specifier_nonarray: I64IMAGE2DMSARRAY  */
-#line 3433 "MachineIndependent/glslang.y"
+  case 518: /* type_specifier_nonarray: I64IMAGE2DMSARRAY  */
+#line 3416 "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 10657 "MachineIndependent/glslang_tab.cpp"
+#line 10670 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 518: /* type_specifier_nonarray: U64IMAGE2DMSARRAY  */
-#line 3438 "MachineIndependent/glslang.y"
+  case 519: /* type_specifier_nonarray: U64IMAGE2DMSARRAY  */
+#line 3421 "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 10667 "MachineIndependent/glslang_tab.cpp"
+#line 10680 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 519: /* type_specifier_nonarray: SAMPLEREXTERNALOES  */
-#line 3443 "MachineIndependent/glslang.y"
+  case 520: /* type_specifier_nonarray: SAMPLEREXTERNALOES  */
+#line 3426 "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 10678 "MachineIndependent/glslang_tab.cpp"
+#line 10691 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 520: /* type_specifier_nonarray: SAMPLEREXTERNAL2DY2YEXT  */
-#line 3449 "MachineIndependent/glslang.y"
+  case 521: /* type_specifier_nonarray: SAMPLEREXTERNAL2DY2YEXT  */
+#line 3432 "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 10689 "MachineIndependent/glslang_tab.cpp"
+#line 10702 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 521: /* type_specifier_nonarray: ATTACHMENTEXT  */
-#line 3455 "MachineIndependent/glslang.y"
+  case 522: /* type_specifier_nonarray: ATTACHMENTEXT  */
+#line 3438 "MachineIndependent/glslang.y"
                     {
         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "attachmentEXT input");
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setAttachmentEXT(EbtFloat);
     }
-#line 10700 "MachineIndependent/glslang_tab.cpp"
+#line 10713 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 522: /* type_specifier_nonarray: IATTACHMENTEXT  */
-#line 3461 "MachineIndependent/glslang.y"
+  case 523: /* type_specifier_nonarray: IATTACHMENTEXT  */
+#line 3444 "MachineIndependent/glslang.y"
                      {
         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "attachmentEXT input");
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setAttachmentEXT(EbtInt);
     }
-#line 10711 "MachineIndependent/glslang_tab.cpp"
+#line 10724 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 523: /* type_specifier_nonarray: UATTACHMENTEXT  */
-#line 3467 "MachineIndependent/glslang.y"
+  case 524: /* type_specifier_nonarray: UATTACHMENTEXT  */
+#line 3450 "MachineIndependent/glslang.y"
                      {
         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "attachmentEXT input");
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setAttachmentEXT(EbtUint);
     }
-#line 10722 "MachineIndependent/glslang_tab.cpp"
+#line 10735 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 524: /* type_specifier_nonarray: SUBPASSINPUT  */
-#line 3473 "MachineIndependent/glslang.y"
+  case 525: /* type_specifier_nonarray: SUBPASSINPUT  */
+#line 3456 "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 10733 "MachineIndependent/glslang_tab.cpp"
+#line 10746 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 525: /* type_specifier_nonarray: SUBPASSINPUTMS  */
-#line 3479 "MachineIndependent/glslang.y"
+  case 526: /* type_specifier_nonarray: SUBPASSINPUTMS  */
+#line 3462 "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 10744 "MachineIndependent/glslang_tab.cpp"
+#line 10757 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 526: /* type_specifier_nonarray: F16SUBPASSINPUT  */
-#line 3485 "MachineIndependent/glslang.y"
+  case 527: /* type_specifier_nonarray: F16SUBPASSINPUT  */
+#line 3468 "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");
@@ -10752,11 +10765,11 @@
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setSubpass(EbtFloat16);
     }
-#line 10756 "MachineIndependent/glslang_tab.cpp"
+#line 10769 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 527: /* type_specifier_nonarray: F16SUBPASSINPUTMS  */
-#line 3492 "MachineIndependent/glslang.y"
+  case 528: /* type_specifier_nonarray: F16SUBPASSINPUTMS  */
+#line 3475 "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");
@@ -10764,116 +10777,131 @@
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setSubpass(EbtFloat16, true);
     }
-#line 10768 "MachineIndependent/glslang_tab.cpp"
+#line 10781 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 528: /* type_specifier_nonarray: ISUBPASSINPUT  */
-#line 3499 "MachineIndependent/glslang.y"
+  case 529: /* type_specifier_nonarray: ISUBPASSINPUT  */
+#line 3482 "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 10779 "MachineIndependent/glslang_tab.cpp"
+#line 10792 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 529: /* type_specifier_nonarray: ISUBPASSINPUTMS  */
-#line 3505 "MachineIndependent/glslang.y"
+  case 530: /* type_specifier_nonarray: ISUBPASSINPUTMS  */
+#line 3488 "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 10790 "MachineIndependent/glslang_tab.cpp"
+#line 10803 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 530: /* type_specifier_nonarray: USUBPASSINPUT  */
-#line 3511 "MachineIndependent/glslang.y"
+  case 531: /* type_specifier_nonarray: USUBPASSINPUT  */
+#line 3494 "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 10801 "MachineIndependent/glslang_tab.cpp"
+#line 10814 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 531: /* type_specifier_nonarray: USUBPASSINPUTMS  */
-#line 3517 "MachineIndependent/glslang.y"
+  case 532: /* type_specifier_nonarray: USUBPASSINPUTMS  */
+#line 3500 "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 10812 "MachineIndependent/glslang_tab.cpp"
+#line 10825 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 532: /* type_specifier_nonarray: FCOOPMATNV  */
-#line 3523 "MachineIndependent/glslang.y"
+  case 533: /* type_specifier_nonarray: FCOOPMATNV  */
+#line 3506 "MachineIndependent/glslang.y"
                  {
-        parseContext.fcoopmatCheck((yyvsp[0].lex).loc, "fcoopmatNV", parseContext.symbolTable.atBuiltInLevel());
+        parseContext.fcoopmatCheckNV((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;
+        (yyval.interm.type).coopmatNV = true;
+        (yyval.interm.type).coopmatKHR = false;
     }
-#line 10823 "MachineIndependent/glslang_tab.cpp"
+#line 10837 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 533: /* type_specifier_nonarray: ICOOPMATNV  */
-#line 3529 "MachineIndependent/glslang.y"
+  case 534: /* type_specifier_nonarray: ICOOPMATNV  */
+#line 3513 "MachineIndependent/glslang.y"
                  {
-        parseContext.intcoopmatCheck((yyvsp[0].lex).loc, "icoopmatNV", parseContext.symbolTable.atBuiltInLevel());
+        parseContext.intcoopmatCheckNV((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;
+        (yyval.interm.type).coopmatNV = true;
+        (yyval.interm.type).coopmatKHR = false;
     }
-#line 10834 "MachineIndependent/glslang_tab.cpp"
+#line 10849 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 534: /* type_specifier_nonarray: UCOOPMATNV  */
-#line 3535 "MachineIndependent/glslang.y"
+  case 535: /* type_specifier_nonarray: UCOOPMATNV  */
+#line 3520 "MachineIndependent/glslang.y"
                  {
-        parseContext.intcoopmatCheck((yyvsp[0].lex).loc, "ucoopmatNV", parseContext.symbolTable.atBuiltInLevel());
+        parseContext.intcoopmatCheckNV((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;
+        (yyval.interm.type).coopmatNV = true;
+        (yyval.interm.type).coopmatKHR = false;
     }
-#line 10845 "MachineIndependent/glslang_tab.cpp"
+#line 10861 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 535: /* type_specifier_nonarray: spirv_type_specifier  */
-#line 3541 "MachineIndependent/glslang.y"
+  case 536: /* type_specifier_nonarray: COOPMAT  */
+#line 3527 "MachineIndependent/glslang.y"
+              {
+        parseContext.coopmatCheck((yyvsp[0].lex).loc, "coopmat", parseContext.symbolTable.atBuiltInLevel());
+        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+        (yyval.interm.type).basicType = EbtCoopmat;
+        (yyval.interm.type).coopmatNV = false;
+        (yyval.interm.type).coopmatKHR = true;
+    }
+#line 10873 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 537: /* type_specifier_nonarray: spirv_type_specifier  */
+#line 3534 "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 10854 "MachineIndependent/glslang_tab.cpp"
+#line 10882 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 536: /* type_specifier_nonarray: HITOBJECTNV  */
-#line 3545 "MachineIndependent/glslang.y"
+  case 538: /* type_specifier_nonarray: HITOBJECTNV  */
+#line 3538 "MachineIndependent/glslang.y"
                       {
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
        (yyval.interm.type).basicType = EbtHitObjectNV;
 	}
-#line 10863 "MachineIndependent/glslang_tab.cpp"
+#line 10891 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 537: /* type_specifier_nonarray: struct_specifier  */
-#line 3550 "MachineIndependent/glslang.y"
+  case 539: /* type_specifier_nonarray: struct_specifier  */
+#line 3542 "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 10873 "MachineIndependent/glslang_tab.cpp"
+#line 10901 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 538: /* type_specifier_nonarray: TYPE_NAME  */
-#line 3555 "MachineIndependent/glslang.y"
+  case 540: /* type_specifier_nonarray: TYPE_NAME  */
+#line 3547 "MachineIndependent/glslang.y"
                 {
         //
         // This is for user defined type names.  The lexical phase looked up the
@@ -10887,69 +10915,75 @@
         } else
             parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), "");
     }
-#line 10891 "MachineIndependent/glslang_tab.cpp"
+#line 10919 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 539: /* precision_qualifier: HIGH_PRECISION  */
-#line 3571 "MachineIndependent/glslang.y"
+  case 541: /* precision_qualifier: HIGH_PRECISION  */
+#line 3563 "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 10901 "MachineIndependent/glslang_tab.cpp"
+#line 10929 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 540: /* precision_qualifier: MEDIUM_PRECISION  */
-#line 3576 "MachineIndependent/glslang.y"
+  case 542: /* precision_qualifier: MEDIUM_PRECISION  */
+#line 3568 "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 10911 "MachineIndependent/glslang_tab.cpp"
+#line 10939 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 541: /* precision_qualifier: LOW_PRECISION  */
-#line 3581 "MachineIndependent/glslang.y"
+  case 543: /* precision_qualifier: LOW_PRECISION  */
+#line 3573 "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 10921 "MachineIndependent/glslang_tab.cpp"
+#line 10949 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 542: /* $@3: %empty  */
-#line 3589 "MachineIndependent/glslang.y"
+  case 544: /* $@3: %empty  */
+#line 3581 "MachineIndependent/glslang.y"
                                    { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); }
-#line 10927 "MachineIndependent/glslang_tab.cpp"
+#line 10955 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 543: /* struct_specifier: STRUCT IDENTIFIER LEFT_BRACE $@3 struct_declaration_list RIGHT_BRACE  */
-#line 3589 "MachineIndependent/glslang.y"
+  case 545: /* struct_specifier: STRUCT IDENTIFIER LEFT_BRACE $@3 struct_declaration_list RIGHT_BRACE  */
+#line 3581 "MachineIndependent/glslang.y"
                                                                                                                    {
+
         TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string);
         parseContext.structArrayCheck((yyvsp[-4].lex).loc, *structure);
+
         TVariable* userTypeDef = new TVariable((yyvsp[-4].lex).string, *structure, true);
         if (! parseContext.symbolTable.insert(*userTypeDef))
             parseContext.error((yyvsp[-4].lex).loc, "redefinition", (yyvsp[-4].lex).string->c_str(), "struct");
+        else if (parseContext.spvVersion.vulkanRelaxed
+                 && structure->containsOpaque())
+            parseContext.relaxedSymbols.push_back(structure->getTypeName());
+
         (yyval.interm.type).init((yyvsp[-5].lex).loc);
         (yyval.interm.type).basicType = EbtStruct;
         (yyval.interm.type).userDef = structure;
         --parseContext.structNestingLevel;
     }
-#line 10943 "MachineIndependent/glslang_tab.cpp"
+#line 10977 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 544: /* $@4: %empty  */
-#line 3600 "MachineIndependent/glslang.y"
+  case 546: /* $@4: %empty  */
+#line 3598 "MachineIndependent/glslang.y"
                         { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); }
-#line 10949 "MachineIndependent/glslang_tab.cpp"
+#line 10983 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 545: /* struct_specifier: STRUCT LEFT_BRACE $@4 struct_declaration_list RIGHT_BRACE  */
-#line 3600 "MachineIndependent/glslang.y"
+  case 547: /* struct_specifier: STRUCT LEFT_BRACE $@4 struct_declaration_list RIGHT_BRACE  */
+#line 3598 "MachineIndependent/glslang.y"
                                                                                                         {
         TType* structure = new TType((yyvsp[-1].interm.typeList), TString(""));
         (yyval.interm.type).init((yyvsp[-4].lex).loc);
@@ -10957,19 +10991,19 @@
         (yyval.interm.type).userDef = structure;
         --parseContext.structNestingLevel;
     }
-#line 10961 "MachineIndependent/glslang_tab.cpp"
+#line 10995 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 546: /* struct_declaration_list: struct_declaration  */
-#line 3610 "MachineIndependent/glslang.y"
+  case 548: /* struct_declaration_list: struct_declaration  */
+#line 3608 "MachineIndependent/glslang.y"
                          {
         (yyval.interm.typeList) = (yyvsp[0].interm.typeList);
     }
-#line 10969 "MachineIndependent/glslang_tab.cpp"
+#line 11003 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 547: /* struct_declaration_list: struct_declaration_list struct_declaration  */
-#line 3613 "MachineIndependent/glslang.y"
+  case 549: /* struct_declaration_list: struct_declaration_list struct_declaration  */
+#line 3611 "MachineIndependent/glslang.y"
                                                  {
         (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
         for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) {
@@ -10980,11 +11014,11 @@
             (yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]);
         }
     }
-#line 10984 "MachineIndependent/glslang_tab.cpp"
+#line 11018 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 548: /* struct_declaration: type_specifier struct_declarator_list SEMICOLON  */
-#line 3626 "MachineIndependent/glslang.y"
+  case 550: /* struct_declaration: type_specifier struct_declarator_list SEMICOLON  */
+#line 3624 "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");
@@ -10996,7 +11030,7 @@
         (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
 
         parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
-        parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier);
+        parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier, (yyvsp[-2].interm.type).isCoopmat());
 
         for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
             TType type((yyvsp[-2].interm.type));
@@ -11007,11 +11041,11 @@
             (*(yyval.interm.typeList))[i].type->shallowCopy(type);
         }
     }
-#line 11011 "MachineIndependent/glslang_tab.cpp"
+#line 11045 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 549: /* struct_declaration: type_qualifier type_specifier struct_declarator_list SEMICOLON  */
-#line 3648 "MachineIndependent/glslang.y"
+  case 551: /* struct_declaration: type_qualifier type_specifier struct_declarator_list SEMICOLON  */
+#line 3646 "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");
@@ -11025,7 +11059,7 @@
         parseContext.memberQualifierCheck((yyvsp[-3].interm.type));
         parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
         parseContext.mergeQualifiers((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, (yyvsp[-3].interm.type).qualifier, true);
-        parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier);
+        parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier, (yyvsp[-2].interm.type).isCoopmat());
 
         for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
             TType type((yyvsp[-2].interm.type));
@@ -11036,38 +11070,38 @@
             (*(yyval.interm.typeList))[i].type->shallowCopy(type);
         }
     }
-#line 11040 "MachineIndependent/glslang_tab.cpp"
+#line 11074 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 550: /* struct_declarator_list: struct_declarator  */
-#line 3675 "MachineIndependent/glslang.y"
+  case 552: /* struct_declarator_list: struct_declarator  */
+#line 3673 "MachineIndependent/glslang.y"
                         {
         (yyval.interm.typeList) = new TTypeList;
         (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
     }
-#line 11049 "MachineIndependent/glslang_tab.cpp"
+#line 11083 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 551: /* struct_declarator_list: struct_declarator_list COMMA struct_declarator  */
-#line 3679 "MachineIndependent/glslang.y"
+  case 553: /* struct_declarator_list: struct_declarator_list COMMA struct_declarator  */
+#line 3677 "MachineIndependent/glslang.y"
                                                      {
         (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
     }
-#line 11057 "MachineIndependent/glslang_tab.cpp"
+#line 11091 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 552: /* struct_declarator: IDENTIFIER  */
-#line 3685 "MachineIndependent/glslang.y"
+  case 554: /* struct_declarator: IDENTIFIER  */
+#line 3683 "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 11067 "MachineIndependent/glslang_tab.cpp"
+#line 11101 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 553: /* struct_declarator: IDENTIFIER array_specifier  */
-#line 3690 "MachineIndependent/glslang.y"
+  case 555: /* struct_declarator: IDENTIFIER array_specifier  */
+#line 3688 "MachineIndependent/glslang.y"
                                  {
         parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes);
 
@@ -11076,246 +11110,246 @@
         (yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string);
         (yyval.interm.typeLine).type->transferArraySizes((yyvsp[0].interm).arraySizes);
     }
-#line 11080 "MachineIndependent/glslang_tab.cpp"
+#line 11114 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 554: /* initializer: assignment_expression  */
-#line 3701 "MachineIndependent/glslang.y"
+  case 556: /* initializer: assignment_expression  */
+#line 3699 "MachineIndependent/glslang.y"
                             {
         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
     }
-#line 11088 "MachineIndependent/glslang_tab.cpp"
+#line 11122 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 555: /* initializer: LEFT_BRACE initializer_list RIGHT_BRACE  */
-#line 3705 "MachineIndependent/glslang.y"
+  case 557: /* initializer: LEFT_BRACE initializer_list RIGHT_BRACE  */
+#line 3702 "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 11099 "MachineIndependent/glslang_tab.cpp"
+#line 11133 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 556: /* initializer: LEFT_BRACE initializer_list COMMA RIGHT_BRACE  */
-#line 3711 "MachineIndependent/glslang.y"
+  case 558: /* initializer: LEFT_BRACE initializer_list COMMA RIGHT_BRACE  */
+#line 3708 "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 11110 "MachineIndependent/glslang_tab.cpp"
+#line 11144 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 557: /* initializer: LEFT_BRACE RIGHT_BRACE  */
-#line 3717 "MachineIndependent/glslang.y"
+  case 559: /* initializer: LEFT_BRACE RIGHT_BRACE  */
+#line 3714 "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 11121 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 558: /* initializer_list: initializer  */
-#line 3728 "MachineIndependent/glslang.y"
-                  {
-        (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc());
-    }
-#line 11129 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 559: /* initializer_list: initializer_list COMMA initializer  */
-#line 3731 "MachineIndependent/glslang.y"
-                                         {
-        (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
-    }
-#line 11137 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 560: /* declaration_statement: declaration  */
-#line 3738 "MachineIndependent/glslang.y"
-                  { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 11143 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 561: /* statement: compound_statement  */
-#line 3742 "MachineIndependent/glslang.y"
-                          { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 11149 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 562: /* statement: simple_statement  */
-#line 3743 "MachineIndependent/glslang.y"
-                          { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
 #line 11155 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 563: /* simple_statement: declaration_statement  */
+  case 560: /* initializer_list: initializer  */
+#line 3723 "MachineIndependent/glslang.y"
+                  {
+        (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc());
+    }
+#line 11163 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 561: /* initializer_list: initializer_list COMMA initializer  */
+#line 3726 "MachineIndependent/glslang.y"
+                                         {
+        (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
+    }
+#line 11171 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 562: /* declaration_statement: declaration  */
+#line 3732 "MachineIndependent/glslang.y"
+                  { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
+#line 11177 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 563: /* statement: compound_statement  */
+#line 3736 "MachineIndependent/glslang.y"
+                          { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
+#line 11183 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 564: /* statement: simple_statement  */
+#line 3737 "MachineIndependent/glslang.y"
+                          { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
+#line 11189 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 565: /* simple_statement: declaration_statement  */
+#line 3743 "MachineIndependent/glslang.y"
+                            { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
+#line 11195 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 566: /* simple_statement: expression_statement  */
+#line 3744 "MachineIndependent/glslang.y"
+                            { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
+#line 11201 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 567: /* simple_statement: selection_statement  */
+#line 3745 "MachineIndependent/glslang.y"
+                            { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
+#line 11207 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 568: /* simple_statement: switch_statement  */
+#line 3746 "MachineIndependent/glslang.y"
+                            { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
+#line 11213 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 569: /* simple_statement: case_label  */
+#line 3747 "MachineIndependent/glslang.y"
+                            { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
+#line 11219 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 570: /* simple_statement: iteration_statement  */
+#line 3748 "MachineIndependent/glslang.y"
+                            { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
+#line 11225 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 571: /* simple_statement: jump_statement  */
 #line 3749 "MachineIndependent/glslang.y"
                             { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 11161 "MachineIndependent/glslang_tab.cpp"
+#line 11231 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 564: /* simple_statement: expression_statement  */
+  case 572: /* simple_statement: demote_statement  */
 #line 3750 "MachineIndependent/glslang.y"
                             { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 11167 "MachineIndependent/glslang_tab.cpp"
+#line 11237 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 565: /* simple_statement: selection_statement  */
-#line 3751 "MachineIndependent/glslang.y"
-                            { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 11173 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 566: /* simple_statement: switch_statement  */
-#line 3752 "MachineIndependent/glslang.y"
-                            { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 11179 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 567: /* simple_statement: case_label  */
-#line 3753 "MachineIndependent/glslang.y"
-                            { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 11185 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 568: /* simple_statement: iteration_statement  */
+  case 573: /* demote_statement: DEMOTE SEMICOLON  */
 #line 3754 "MachineIndependent/glslang.y"
-                            { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 11191 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 569: /* simple_statement: jump_statement  */
-#line 3755 "MachineIndependent/glslang.y"
-                            { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 11197 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 570: /* simple_statement: demote_statement  */
-#line 3757 "MachineIndependent/glslang.y"
-                            { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 11203 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 571: /* demote_statement: DEMOTE SEMICOLON  */
-#line 3763 "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 11213 "MachineIndependent/glslang_tab.cpp"
+#line 11247 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 572: /* compound_statement: LEFT_BRACE RIGHT_BRACE  */
-#line 3772 "MachineIndependent/glslang.y"
+  case 574: /* compound_statement: LEFT_BRACE RIGHT_BRACE  */
+#line 3762 "MachineIndependent/glslang.y"
                              { (yyval.interm.intermNode) = 0; }
-#line 11219 "MachineIndependent/glslang_tab.cpp"
+#line 11253 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 573: /* $@5: %empty  */
-#line 3773 "MachineIndependent/glslang.y"
+  case 575: /* $@5: %empty  */
+#line 3763 "MachineIndependent/glslang.y"
                  {
         parseContext.symbolTable.push();
         ++parseContext.statementNestingLevel;
     }
-#line 11228 "MachineIndependent/glslang_tab.cpp"
+#line 11262 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 574: /* $@6: %empty  */
-#line 3777 "MachineIndependent/glslang.y"
+  case 576: /* $@6: %empty  */
+#line 3767 "MachineIndependent/glslang.y"
                      {
         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
         --parseContext.statementNestingLevel;
     }
-#line 11237 "MachineIndependent/glslang_tab.cpp"
+#line 11271 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 575: /* compound_statement: LEFT_BRACE $@5 statement_list $@6 RIGHT_BRACE  */
-#line 3781 "MachineIndependent/glslang.y"
+  case 577: /* compound_statement: LEFT_BRACE $@5 statement_list $@6 RIGHT_BRACE  */
+#line 3771 "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 11247 "MachineIndependent/glslang_tab.cpp"
+#line 11281 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 576: /* statement_no_new_scope: compound_statement_no_new_scope  */
-#line 3789 "MachineIndependent/glslang.y"
+  case 578: /* statement_no_new_scope: compound_statement_no_new_scope  */
+#line 3779 "MachineIndependent/glslang.y"
                                       { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 11253 "MachineIndependent/glslang_tab.cpp"
+#line 11287 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 577: /* statement_no_new_scope: simple_statement  */
-#line 3790 "MachineIndependent/glslang.y"
+  case 579: /* statement_no_new_scope: simple_statement  */
+#line 3780 "MachineIndependent/glslang.y"
                                       { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 11259 "MachineIndependent/glslang_tab.cpp"
+#line 11293 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 578: /* $@7: %empty  */
-#line 3794 "MachineIndependent/glslang.y"
+  case 580: /* $@7: %empty  */
+#line 3784 "MachineIndependent/glslang.y"
       {
         ++parseContext.controlFlowNestingLevel;
     }
-#line 11267 "MachineIndependent/glslang_tab.cpp"
+#line 11301 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 579: /* statement_scoped: $@7 compound_statement  */
-#line 3797 "MachineIndependent/glslang.y"
+  case 581: /* statement_scoped: $@7 compound_statement  */
+#line 3787 "MachineIndependent/glslang.y"
                           {
         --parseContext.controlFlowNestingLevel;
         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
     }
-#line 11276 "MachineIndependent/glslang_tab.cpp"
+#line 11310 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 580: /* $@8: %empty  */
-#line 3801 "MachineIndependent/glslang.y"
+  case 582: /* $@8: %empty  */
+#line 3791 "MachineIndependent/glslang.y"
       {
         parseContext.symbolTable.push();
         ++parseContext.statementNestingLevel;
         ++parseContext.controlFlowNestingLevel;
     }
-#line 11286 "MachineIndependent/glslang_tab.cpp"
+#line 11320 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 581: /* statement_scoped: $@8 simple_statement  */
-#line 3806 "MachineIndependent/glslang.y"
+  case 583: /* statement_scoped: $@8 simple_statement  */
+#line 3796 "MachineIndependent/glslang.y"
                        {
         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
         --parseContext.statementNestingLevel;
         --parseContext.controlFlowNestingLevel;
         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
     }
-#line 11297 "MachineIndependent/glslang_tab.cpp"
+#line 11331 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 582: /* compound_statement_no_new_scope: LEFT_BRACE RIGHT_BRACE  */
-#line 3815 "MachineIndependent/glslang.y"
+  case 584: /* compound_statement_no_new_scope: LEFT_BRACE RIGHT_BRACE  */
+#line 3805 "MachineIndependent/glslang.y"
                              {
         (yyval.interm.intermNode) = 0;
     }
-#line 11305 "MachineIndependent/glslang_tab.cpp"
+#line 11339 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 583: /* compound_statement_no_new_scope: LEFT_BRACE statement_list RIGHT_BRACE  */
-#line 3818 "MachineIndependent/glslang.y"
+  case 585: /* compound_statement_no_new_scope: LEFT_BRACE statement_list RIGHT_BRACE  */
+#line 3808 "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 11315 "MachineIndependent/glslang_tab.cpp"
+#line 11349 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 584: /* statement_list: statement  */
-#line 3826 "MachineIndependent/glslang.y"
+  case 586: /* statement_list: statement  */
+#line 3816 "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 ||
@@ -11324,11 +11358,11 @@
             (yyval.interm.intermNode) = 0;  // start a fresh subsequence for what's after this case
         }
     }
-#line 11328 "MachineIndependent/glslang_tab.cpp"
+#line 11362 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 585: /* statement_list: statement_list statement  */
-#line 3834 "MachineIndependent/glslang.y"
+  case 587: /* statement_list: statement_list statement  */
+#line 3824 "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)) {
@@ -11337,77 +11371,77 @@
         } else
             (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
     }
-#line 11341 "MachineIndependent/glslang_tab.cpp"
+#line 11375 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 586: /* expression_statement: SEMICOLON  */
-#line 3845 "MachineIndependent/glslang.y"
+  case 588: /* expression_statement: SEMICOLON  */
+#line 3835 "MachineIndependent/glslang.y"
                  { (yyval.interm.intermNode) = 0; }
-#line 11347 "MachineIndependent/glslang_tab.cpp"
+#line 11381 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 587: /* expression_statement: expression SEMICOLON  */
-#line 3846 "MachineIndependent/glslang.y"
+  case 589: /* expression_statement: expression SEMICOLON  */
+#line 3836 "MachineIndependent/glslang.y"
                             { (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[-1].interm.intermTypedNode)); }
-#line 11353 "MachineIndependent/glslang_tab.cpp"
+#line 11387 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 588: /* selection_statement: selection_statement_nonattributed  */
-#line 3850 "MachineIndependent/glslang.y"
+  case 590: /* selection_statement: selection_statement_nonattributed  */
+#line 3840 "MachineIndependent/glslang.y"
                                         {
         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
     }
-#line 11361 "MachineIndependent/glslang_tab.cpp"
+#line 11395 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 589: /* selection_statement: attribute selection_statement_nonattributed  */
-#line 3854 "MachineIndependent/glslang.y"
+  case 591: /* selection_statement: attribute selection_statement_nonattributed  */
+#line 3843 "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 11371 "MachineIndependent/glslang_tab.cpp"
+#line 11405 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 590: /* selection_statement_nonattributed: IF LEFT_PAREN expression RIGHT_PAREN selection_rest_statement  */
-#line 3862 "MachineIndependent/glslang.y"
+  case 592: /* selection_statement_nonattributed: IF LEFT_PAREN expression RIGHT_PAREN selection_rest_statement  */
+#line 3850 "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 11380 "MachineIndependent/glslang_tab.cpp"
+#line 11414 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 591: /* selection_rest_statement: statement_scoped ELSE statement_scoped  */
-#line 3869 "MachineIndependent/glslang.y"
+  case 593: /* selection_rest_statement: statement_scoped ELSE statement_scoped  */
+#line 3857 "MachineIndependent/glslang.y"
                                              {
         (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode);
         (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode);
     }
-#line 11389 "MachineIndependent/glslang_tab.cpp"
+#line 11423 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 592: /* selection_rest_statement: statement_scoped  */
-#line 3873 "MachineIndependent/glslang.y"
+  case 594: /* selection_rest_statement: statement_scoped  */
+#line 3861 "MachineIndependent/glslang.y"
                        {
         (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode);
         (yyval.interm.nodePair).node2 = 0;
     }
-#line 11398 "MachineIndependent/glslang_tab.cpp"
+#line 11432 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 593: /* condition: expression  */
-#line 3881 "MachineIndependent/glslang.y"
+  case 595: /* condition: expression  */
+#line 3869 "MachineIndependent/glslang.y"
                  {
         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
         parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode));
     }
-#line 11407 "MachineIndependent/glslang_tab.cpp"
+#line 11441 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 594: /* condition: fully_specified_type IDENTIFIER EQUAL initializer  */
-#line 3885 "MachineIndependent/glslang.y"
+  case 596: /* condition: fully_specified_type IDENTIFIER EQUAL initializer  */
+#line 3873 "MachineIndependent/glslang.y"
                                                         {
         parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type));
 
@@ -11418,29 +11452,29 @@
         else
             (yyval.interm.intermTypedNode) = 0;
     }
-#line 11422 "MachineIndependent/glslang_tab.cpp"
+#line 11456 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 595: /* switch_statement: switch_statement_nonattributed  */
-#line 3898 "MachineIndependent/glslang.y"
+  case 597: /* switch_statement: switch_statement_nonattributed  */
+#line 3886 "MachineIndependent/glslang.y"
                                      {
         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
     }
-#line 11430 "MachineIndependent/glslang_tab.cpp"
+#line 11464 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 596: /* switch_statement: attribute switch_statement_nonattributed  */
-#line 3902 "MachineIndependent/glslang.y"
+  case 598: /* switch_statement: attribute switch_statement_nonattributed  */
+#line 3889 "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 11440 "MachineIndependent/glslang_tab.cpp"
+#line 11474 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 597: /* $@9: %empty  */
-#line 3910 "MachineIndependent/glslang.y"
+  case 599: /* $@9: %empty  */
+#line 3896 "MachineIndependent/glslang.y"
                                                {
         // start new switch sequence on the switch stack
         ++parseContext.controlFlowNestingLevel;
@@ -11449,11 +11483,11 @@
         parseContext.switchLevel.push_back(parseContext.statementNestingLevel);
         parseContext.symbolTable.push();
     }
-#line 11453 "MachineIndependent/glslang_tab.cpp"
+#line 11487 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 598: /* switch_statement_nonattributed: SWITCH LEFT_PAREN expression RIGHT_PAREN $@9 LEFT_BRACE switch_statement_list RIGHT_BRACE  */
-#line 3918 "MachineIndependent/glslang.y"
+  case 600: /* switch_statement_nonattributed: SWITCH LEFT_PAREN expression RIGHT_PAREN $@9 LEFT_BRACE switch_statement_list RIGHT_BRACE  */
+#line 3904 "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();
@@ -11463,27 +11497,27 @@
         --parseContext.statementNestingLevel;
         --parseContext.controlFlowNestingLevel;
     }
-#line 11467 "MachineIndependent/glslang_tab.cpp"
+#line 11501 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 599: /* switch_statement_list: %empty  */
-#line 3930 "MachineIndependent/glslang.y"
+  case 601: /* switch_statement_list: %empty  */
+#line 3916 "MachineIndependent/glslang.y"
                     {
         (yyval.interm.intermNode) = 0;
     }
-#line 11475 "MachineIndependent/glslang_tab.cpp"
+#line 11509 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 600: /* switch_statement_list: statement_list  */
-#line 3933 "MachineIndependent/glslang.y"
+  case 602: /* switch_statement_list: statement_list  */
+#line 3919 "MachineIndependent/glslang.y"
                      {
         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
     }
-#line 11483 "MachineIndependent/glslang_tab.cpp"
+#line 11517 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 601: /* case_label: CASE expression COLON  */
-#line 3939 "MachineIndependent/glslang.y"
+  case 603: /* case_label: CASE expression COLON  */
+#line 3925 "MachineIndependent/glslang.y"
                             {
         (yyval.interm.intermNode) = 0;
         if (parseContext.switchLevel.size() == 0)
@@ -11496,11 +11530,11 @@
             (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc);
         }
     }
-#line 11500 "MachineIndependent/glslang_tab.cpp"
+#line 11534 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 602: /* case_label: DEFAULT COLON  */
-#line 3951 "MachineIndependent/glslang.y"
+  case 604: /* case_label: DEFAULT COLON  */
+#line 3937 "MachineIndependent/glslang.y"
                     {
         (yyval.interm.intermNode) = 0;
         if (parseContext.switchLevel.size() == 0)
@@ -11510,29 +11544,29 @@
         else
             (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc);
     }
-#line 11514 "MachineIndependent/glslang_tab.cpp"
+#line 11548 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 603: /* iteration_statement: iteration_statement_nonattributed  */
-#line 3963 "MachineIndependent/glslang.y"
+  case 605: /* iteration_statement: iteration_statement_nonattributed  */
+#line 3949 "MachineIndependent/glslang.y"
                                         {
         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
     }
-#line 11522 "MachineIndependent/glslang_tab.cpp"
+#line 11556 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 604: /* iteration_statement: attribute iteration_statement_nonattributed  */
-#line 3967 "MachineIndependent/glslang.y"
+  case 606: /* iteration_statement: attribute iteration_statement_nonattributed  */
+#line 3952 "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 11532 "MachineIndependent/glslang_tab.cpp"
+#line 11566 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 605: /* $@10: %empty  */
-#line 3975 "MachineIndependent/glslang.y"
+  case 607: /* $@10: %empty  */
+#line 3959 "MachineIndependent/glslang.y"
                        {
         if (! parseContext.limits.whileLoops)
             parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", "");
@@ -11541,11 +11575,11 @@
         ++parseContext.statementNestingLevel;
         ++parseContext.controlFlowNestingLevel;
     }
-#line 11545 "MachineIndependent/glslang_tab.cpp"
+#line 11579 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 606: /* iteration_statement_nonattributed: WHILE LEFT_PAREN $@10 condition RIGHT_PAREN statement_no_new_scope  */
-#line 3983 "MachineIndependent/glslang.y"
+  case 608: /* iteration_statement_nonattributed: WHILE LEFT_PAREN $@10 condition RIGHT_PAREN statement_no_new_scope  */
+#line 3967 "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);
@@ -11553,22 +11587,22 @@
         --parseContext.statementNestingLevel;
         --parseContext.controlFlowNestingLevel;
     }
-#line 11557 "MachineIndependent/glslang_tab.cpp"
+#line 11591 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 607: /* $@11: %empty  */
-#line 3990 "MachineIndependent/glslang.y"
+  case 609: /* $@11: %empty  */
+#line 3974 "MachineIndependent/glslang.y"
          {
         parseContext.symbolTable.push();
         ++parseContext.loopNestingLevel;
         ++parseContext.statementNestingLevel;
         ++parseContext.controlFlowNestingLevel;
     }
-#line 11568 "MachineIndependent/glslang_tab.cpp"
+#line 11602 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 608: /* iteration_statement_nonattributed: DO $@11 statement WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON  */
-#line 3996 "MachineIndependent/glslang.y"
+  case 610: /* iteration_statement_nonattributed: DO $@11 statement WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON  */
+#line 3980 "MachineIndependent/glslang.y"
                                                                   {
         if (! parseContext.limits.whileLoops)
             parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", "");
@@ -11581,22 +11615,22 @@
         --parseContext.statementNestingLevel;
         --parseContext.controlFlowNestingLevel;
     }
-#line 11585 "MachineIndependent/glslang_tab.cpp"
+#line 11619 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 609: /* $@12: %empty  */
-#line 4008 "MachineIndependent/glslang.y"
+  case 611: /* $@12: %empty  */
+#line 3992 "MachineIndependent/glslang.y"
                      {
         parseContext.symbolTable.push();
         ++parseContext.loopNestingLevel;
         ++parseContext.statementNestingLevel;
         ++parseContext.controlFlowNestingLevel;
     }
-#line 11596 "MachineIndependent/glslang_tab.cpp"
+#line 11630 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 610: /* iteration_statement_nonattributed: FOR LEFT_PAREN $@12 for_init_statement for_rest_statement RIGHT_PAREN statement_no_new_scope  */
-#line 4014 "MachineIndependent/glslang.y"
+  case 612: /* iteration_statement_nonattributed: FOR LEFT_PAREN $@12 for_init_statement for_rest_statement RIGHT_PAREN statement_no_new_scope  */
+#line 3998 "MachineIndependent/glslang.y"
                                                                                {
         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc);
@@ -11609,81 +11643,81 @@
         --parseContext.statementNestingLevel;
         --parseContext.controlFlowNestingLevel;
     }
-#line 11613 "MachineIndependent/glslang_tab.cpp"
+#line 11647 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 611: /* for_init_statement: expression_statement  */
-#line 4029 "MachineIndependent/glslang.y"
+  case 613: /* for_init_statement: expression_statement  */
+#line 4013 "MachineIndependent/glslang.y"
                            {
         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
     }
-#line 11621 "MachineIndependent/glslang_tab.cpp"
+#line 11655 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 612: /* for_init_statement: declaration_statement  */
-#line 4032 "MachineIndependent/glslang.y"
+  case 614: /* for_init_statement: declaration_statement  */
+#line 4016 "MachineIndependent/glslang.y"
                             {
         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
     }
-#line 11629 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 613: /* conditionopt: condition  */
-#line 4038 "MachineIndependent/glslang.y"
-                {
-        (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
-    }
-#line 11637 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 614: /* conditionopt: %empty  */
-#line 4041 "MachineIndependent/glslang.y"
-                        {
-        (yyval.interm.intermTypedNode) = 0;
-    }
-#line 11645 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 615: /* for_rest_statement: conditionopt SEMICOLON  */
-#line 4047 "MachineIndependent/glslang.y"
-                             {
-        (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode);
-        (yyval.interm.nodePair).node2 = 0;
-    }
-#line 11654 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 616: /* for_rest_statement: conditionopt SEMICOLON expression  */
-#line 4051 "MachineIndependent/glslang.y"
-                                         {
-        (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode);
-        (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode);
-    }
 #line 11663 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 617: /* jump_statement: CONTINUE SEMICOLON  */
-#line 4058 "MachineIndependent/glslang.y"
+  case 615: /* conditionopt: condition  */
+#line 4022 "MachineIndependent/glslang.y"
+                {
+        (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
+    }
+#line 11671 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 616: /* conditionopt: %empty  */
+#line 4025 "MachineIndependent/glslang.y"
+                        {
+        (yyval.interm.intermTypedNode) = 0;
+    }
+#line 11679 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 617: /* for_rest_statement: conditionopt SEMICOLON  */
+#line 4031 "MachineIndependent/glslang.y"
+                             {
+        (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode);
+        (yyval.interm.nodePair).node2 = 0;
+    }
+#line 11688 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 618: /* for_rest_statement: conditionopt SEMICOLON expression  */
+#line 4035 "MachineIndependent/glslang.y"
+                                         {
+        (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode);
+        (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode);
+    }
+#line 11697 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 619: /* jump_statement: CONTINUE SEMICOLON  */
+#line 4042 "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 11673 "MachineIndependent/glslang_tab.cpp"
+#line 11707 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 618: /* jump_statement: BREAK SEMICOLON  */
-#line 4063 "MachineIndependent/glslang.y"
+  case 620: /* jump_statement: BREAK SEMICOLON  */
+#line 4047 "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 11683 "MachineIndependent/glslang_tab.cpp"
+#line 11717 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 619: /* jump_statement: RETURN SEMICOLON  */
-#line 4068 "MachineIndependent/glslang.y"
+  case 621: /* jump_statement: RETURN SEMICOLON  */
+#line 4052 "MachineIndependent/glslang.y"
                        {
         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc);
         if (parseContext.currentFunctionType->getBasicType() != EbtVoid)
@@ -11691,101 +11725,101 @@
         if (parseContext.inMain)
             parseContext.postEntryPointReturn = true;
     }
-#line 11695 "MachineIndependent/glslang_tab.cpp"
+#line 11729 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 620: /* jump_statement: RETURN expression SEMICOLON  */
-#line 4075 "MachineIndependent/glslang.y"
+  case 622: /* jump_statement: RETURN expression SEMICOLON  */
+#line 4059 "MachineIndependent/glslang.y"
                                   {
         (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode));
     }
-#line 11703 "MachineIndependent/glslang_tab.cpp"
+#line 11737 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 621: /* jump_statement: DISCARD SEMICOLON  */
-#line 4078 "MachineIndependent/glslang.y"
+  case 623: /* jump_statement: DISCARD SEMICOLON  */
+#line 4062 "MachineIndependent/glslang.y"
                         {
         parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard");
         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc);
     }
-#line 11712 "MachineIndependent/glslang_tab.cpp"
+#line 11746 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 622: /* jump_statement: TERMINATE_INVOCATION SEMICOLON  */
-#line 4082 "MachineIndependent/glslang.y"
+  case 624: /* jump_statement: TERMINATE_INVOCATION SEMICOLON  */
+#line 4066 "MachineIndependent/glslang.y"
                                      {
         parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "terminateInvocation");
         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpTerminateInvocation, (yyvsp[-1].lex).loc);
     }
-#line 11721 "MachineIndependent/glslang_tab.cpp"
+#line 11755 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 623: /* jump_statement: TERMINATE_RAY SEMICOLON  */
-#line 4087 "MachineIndependent/glslang.y"
+  case 625: /* jump_statement: TERMINATE_RAY SEMICOLON  */
+#line 4070 "MachineIndependent/glslang.y"
                               {
         parseContext.requireStage((yyvsp[-1].lex).loc, EShLangAnyHit, "terminateRayEXT");
         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpTerminateRayKHR, (yyvsp[-1].lex).loc);
     }
-#line 11730 "MachineIndependent/glslang_tab.cpp"
+#line 11764 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 624: /* jump_statement: IGNORE_INTERSECTION SEMICOLON  */
-#line 4091 "MachineIndependent/glslang.y"
+  case 626: /* jump_statement: IGNORE_INTERSECTION SEMICOLON  */
+#line 4074 "MachineIndependent/glslang.y"
                                     {
         parseContext.requireStage((yyvsp[-1].lex).loc, EShLangAnyHit, "ignoreIntersectionEXT");
         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpIgnoreIntersectionKHR, (yyvsp[-1].lex).loc);
     }
-#line 11739 "MachineIndependent/glslang_tab.cpp"
+#line 11773 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 625: /* translation_unit: external_declaration  */
-#line 4101 "MachineIndependent/glslang.y"
+  case 627: /* translation_unit: external_declaration  */
+#line 4083 "MachineIndependent/glslang.y"
                            {
         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
         parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
     }
-#line 11748 "MachineIndependent/glslang_tab.cpp"
+#line 11782 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 626: /* translation_unit: translation_unit external_declaration  */
-#line 4105 "MachineIndependent/glslang.y"
+  case 628: /* translation_unit: translation_unit external_declaration  */
+#line 4087 "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 11759 "MachineIndependent/glslang_tab.cpp"
+#line 11793 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 627: /* external_declaration: function_definition  */
-#line 4114 "MachineIndependent/glslang.y"
+  case 629: /* external_declaration: function_definition  */
+#line 4096 "MachineIndependent/glslang.y"
                           {
         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
     }
-#line 11767 "MachineIndependent/glslang_tab.cpp"
+#line 11801 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 628: /* external_declaration: declaration  */
-#line 4117 "MachineIndependent/glslang.y"
+  case 630: /* external_declaration: declaration  */
+#line 4099 "MachineIndependent/glslang.y"
                   {
         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
     }
-#line 11775 "MachineIndependent/glslang_tab.cpp"
+#line 11809 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 629: /* external_declaration: SEMICOLON  */
-#line 4121 "MachineIndependent/glslang.y"
+  case 631: /* external_declaration: SEMICOLON  */
+#line 4102 "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 11785 "MachineIndependent/glslang_tab.cpp"
+#line 11819 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 630: /* $@13: %empty  */
-#line 4130 "MachineIndependent/glslang.y"
+  case 632: /* $@13: %empty  */
+#line 4110 "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);
@@ -11798,17 +11832,18 @@
             ++parseContext.statementNestingLevel;
         }
     }
-#line 11802 "MachineIndependent/glslang_tab.cpp"
+#line 11836 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 631: /* function_definition: function_prototype $@13 compound_statement_no_new_scope  */
-#line 4142 "MachineIndependent/glslang.y"
+  case 633: /* function_definition: function_prototype $@13 compound_statement_no_new_scope  */
+#line 4122 "MachineIndependent/glslang.y"
                                     {
         //   May be best done as post process phase on intermediate code
         if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue)
             parseContext.error((yyvsp[-2].interm).loc, "function does not return a value:", "", (yyvsp[-2].interm).function->getName().c_str());
         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
         (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermNode));
+        (yyval.interm.intermNode)->getAsAggregate()->setLinkType((yyvsp[-2].interm).function->getLinkType());
         parseContext.intermediate.setAggregateOperator((yyval.interm.intermNode), EOpFunction, (yyvsp[-2].interm).function->getType(), (yyvsp[-2].interm).loc);
         (yyval.interm.intermNode)->getAsAggregate()->setName((yyvsp[-2].interm).function->getMangledName().c_str());
 
@@ -11829,228 +11864,228 @@
             --parseContext.statementNestingLevel;
         }
     }
-#line 11833 "MachineIndependent/glslang_tab.cpp"
+#line 11868 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 632: /* attribute: LEFT_BRACKET LEFT_BRACKET attribute_list RIGHT_BRACKET RIGHT_BRACKET  */
-#line 4172 "MachineIndependent/glslang.y"
+  case 634: /* attribute: LEFT_BRACKET LEFT_BRACKET attribute_list RIGHT_BRACKET RIGHT_BRACKET  */
+#line 4152 "MachineIndependent/glslang.y"
                                                                            {
         (yyval.interm.attributes) = (yyvsp[-2].interm.attributes);
     }
-#line 11841 "MachineIndependent/glslang_tab.cpp"
+#line 11876 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 633: /* attribute_list: single_attribute  */
-#line 4177 "MachineIndependent/glslang.y"
+  case 635: /* attribute_list: single_attribute  */
+#line 4157 "MachineIndependent/glslang.y"
                        {
         (yyval.interm.attributes) = (yyvsp[0].interm.attributes);
     }
-#line 11849 "MachineIndependent/glslang_tab.cpp"
+#line 11884 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 634: /* attribute_list: attribute_list COMMA single_attribute  */
-#line 4180 "MachineIndependent/glslang.y"
+  case 636: /* attribute_list: attribute_list COMMA single_attribute  */
+#line 4160 "MachineIndependent/glslang.y"
                                             {
         (yyval.interm.attributes) = parseContext.mergeAttributes((yyvsp[-2].interm.attributes), (yyvsp[0].interm.attributes));
     }
-#line 11857 "MachineIndependent/glslang_tab.cpp"
+#line 11892 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 635: /* single_attribute: IDENTIFIER  */
-#line 4185 "MachineIndependent/glslang.y"
+  case 637: /* single_attribute: IDENTIFIER  */
+#line 4165 "MachineIndependent/glslang.y"
                  {
         (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[0].lex).string);
     }
-#line 11865 "MachineIndependent/glslang_tab.cpp"
+#line 11900 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 636: /* single_attribute: IDENTIFIER LEFT_PAREN constant_expression RIGHT_PAREN  */
-#line 4188 "MachineIndependent/glslang.y"
+  case 638: /* single_attribute: IDENTIFIER LEFT_PAREN constant_expression RIGHT_PAREN  */
+#line 4168 "MachineIndependent/glslang.y"
                                                             {
         (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[-3].lex).string, (yyvsp[-1].interm.intermTypedNode));
     }
-#line 11873 "MachineIndependent/glslang_tab.cpp"
+#line 11908 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 637: /* spirv_requirements_list: spirv_requirements_parameter  */
-#line 4195 "MachineIndependent/glslang.y"
+  case 639: /* spirv_requirements_list: spirv_requirements_parameter  */
+#line 4173 "MachineIndependent/glslang.y"
                                    {
         (yyval.interm.spirvReq) = (yyvsp[0].interm.spirvReq);
     }
-#line 11881 "MachineIndependent/glslang_tab.cpp"
+#line 11916 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 638: /* spirv_requirements_list: spirv_requirements_list COMMA spirv_requirements_parameter  */
-#line 4198 "MachineIndependent/glslang.y"
+  case 640: /* spirv_requirements_list: spirv_requirements_list COMMA spirv_requirements_parameter  */
+#line 4176 "MachineIndependent/glslang.y"
                                                                  {
         (yyval.interm.spirvReq) = parseContext.mergeSpirvRequirements((yyvsp[-1].lex).loc, (yyvsp[-2].interm.spirvReq), (yyvsp[0].interm.spirvReq));
     }
-#line 11889 "MachineIndependent/glslang_tab.cpp"
+#line 11924 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 639: /* spirv_requirements_parameter: IDENTIFIER EQUAL LEFT_BRACKET spirv_extension_list RIGHT_BRACKET  */
-#line 4203 "MachineIndependent/glslang.y"
+  case 641: /* spirv_requirements_parameter: IDENTIFIER EQUAL LEFT_BRACKET spirv_extension_list RIGHT_BRACKET  */
+#line 4181 "MachineIndependent/glslang.y"
                                                                        {
         (yyval.interm.spirvReq) = parseContext.makeSpirvRequirement((yyvsp[-3].lex).loc, *(yyvsp[-4].lex).string, (yyvsp[-1].interm.intermNode)->getAsAggregate(), nullptr);
     }
-#line 11897 "MachineIndependent/glslang_tab.cpp"
+#line 11932 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 640: /* spirv_requirements_parameter: IDENTIFIER EQUAL LEFT_BRACKET spirv_capability_list RIGHT_BRACKET  */
-#line 4206 "MachineIndependent/glslang.y"
+  case 642: /* spirv_requirements_parameter: IDENTIFIER EQUAL LEFT_BRACKET spirv_capability_list RIGHT_BRACKET  */
+#line 4184 "MachineIndependent/glslang.y"
                                                                         {
         (yyval.interm.spirvReq) = parseContext.makeSpirvRequirement((yyvsp[-3].lex).loc, *(yyvsp[-4].lex).string, nullptr, (yyvsp[-1].interm.intermNode)->getAsAggregate());
     }
-#line 11905 "MachineIndependent/glslang_tab.cpp"
+#line 11940 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 641: /* spirv_extension_list: STRING_LITERAL  */
-#line 4211 "MachineIndependent/glslang.y"
+  case 643: /* spirv_extension_list: STRING_LITERAL  */
+#line 4189 "MachineIndependent/glslang.y"
                      {
         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate(parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true));
     }
-#line 11913 "MachineIndependent/glslang_tab.cpp"
+#line 11948 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 642: /* spirv_extension_list: spirv_extension_list COMMA STRING_LITERAL  */
-#line 4214 "MachineIndependent/glslang.y"
+  case 644: /* spirv_extension_list: spirv_extension_list COMMA STRING_LITERAL  */
+#line 4192 "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 11921 "MachineIndependent/glslang_tab.cpp"
+#line 11956 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 643: /* spirv_capability_list: INTCONSTANT  */
-#line 4219 "MachineIndependent/glslang.y"
+  case 645: /* spirv_capability_list: INTCONSTANT  */
+#line 4197 "MachineIndependent/glslang.y"
                   {
         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate(parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true));
     }
-#line 11929 "MachineIndependent/glslang_tab.cpp"
+#line 11964 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 644: /* spirv_capability_list: spirv_capability_list COMMA INTCONSTANT  */
-#line 4222 "MachineIndependent/glslang.y"
+  case 646: /* spirv_capability_list: spirv_capability_list COMMA INTCONSTANT  */
+#line 4200 "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 11937 "MachineIndependent/glslang_tab.cpp"
+#line 11972 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 645: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN INTCONSTANT RIGHT_PAREN  */
-#line 4227 "MachineIndependent/glslang.y"
+  case 647: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN INTCONSTANT RIGHT_PAREN  */
+#line 4205 "MachineIndependent/glslang.y"
                                                               {
         parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-1].lex).i);
         (yyval.interm.intermNode) = 0;
     }
-#line 11946 "MachineIndependent/glslang_tab.cpp"
+#line 11981 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 646: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN  */
-#line 4231 "MachineIndependent/glslang.y"
+  case 648: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN  */
+#line 4209 "MachineIndependent/glslang.y"
                                                                                             {
         parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq));
         parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-1].lex).i);
         (yyval.interm.intermNode) = 0;
     }
-#line 11956 "MachineIndependent/glslang_tab.cpp"
+#line 11991 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 647: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN INTCONSTANT COMMA spirv_execution_mode_parameter_list RIGHT_PAREN  */
-#line 4236 "MachineIndependent/glslang.y"
+  case 649: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN INTCONSTANT COMMA spirv_execution_mode_parameter_list RIGHT_PAREN  */
+#line 4214 "MachineIndependent/glslang.y"
                                                                                                         {
         parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
         (yyval.interm.intermNode) = 0;
     }
-#line 11965 "MachineIndependent/glslang_tab.cpp"
+#line 12000 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 648: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_execution_mode_parameter_list RIGHT_PAREN  */
-#line 4240 "MachineIndependent/glslang.y"
+  case 650: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_execution_mode_parameter_list RIGHT_PAREN  */
+#line 4218 "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 11975 "MachineIndependent/glslang_tab.cpp"
+#line 12010 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 649: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE_ID LEFT_PAREN INTCONSTANT COMMA spirv_execution_mode_id_parameter_list RIGHT_PAREN  */
-#line 4245 "MachineIndependent/glslang.y"
+  case 651: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE_ID LEFT_PAREN INTCONSTANT COMMA spirv_execution_mode_id_parameter_list RIGHT_PAREN  */
+#line 4223 "MachineIndependent/glslang.y"
                                                                                                               {
         parseContext.intermediate.insertSpirvExecutionModeId((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
         (yyval.interm.intermNode) = 0;
     }
-#line 11984 "MachineIndependent/glslang_tab.cpp"
+#line 12019 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 650: /* 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 4249 "MachineIndependent/glslang.y"
+  case 652: /* 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 4227 "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 11994 "MachineIndependent/glslang_tab.cpp"
+#line 12029 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 651: /* spirv_execution_mode_parameter_list: spirv_execution_mode_parameter  */
-#line 4256 "MachineIndependent/glslang.y"
+  case 653: /* spirv_execution_mode_parameter_list: spirv_execution_mode_parameter  */
+#line 4234 "MachineIndependent/glslang.y"
                                      {
         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
     }
-#line 12002 "MachineIndependent/glslang_tab.cpp"
+#line 12037 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 652: /* spirv_execution_mode_parameter_list: spirv_execution_mode_parameter_list COMMA spirv_execution_mode_parameter  */
-#line 4259 "MachineIndependent/glslang.y"
+  case 654: /* spirv_execution_mode_parameter_list: spirv_execution_mode_parameter_list COMMA spirv_execution_mode_parameter  */
+#line 4237 "MachineIndependent/glslang.y"
                                                                                {
         (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermNode));
     }
-#line 12010 "MachineIndependent/glslang_tab.cpp"
+#line 12045 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 653: /* spirv_execution_mode_parameter: FLOATCONSTANT  */
-#line 4264 "MachineIndependent/glslang.y"
+  case 655: /* spirv_execution_mode_parameter: FLOATCONSTANT  */
+#line 4242 "MachineIndependent/glslang.y"
                     {
         (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
     }
-#line 12018 "MachineIndependent/glslang_tab.cpp"
+#line 12053 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 654: /* spirv_execution_mode_parameter: INTCONSTANT  */
-#line 4267 "MachineIndependent/glslang.y"
+  case 656: /* spirv_execution_mode_parameter: INTCONSTANT  */
+#line 4245 "MachineIndependent/glslang.y"
                   {
         (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
     }
-#line 12026 "MachineIndependent/glslang_tab.cpp"
+#line 12061 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 655: /* spirv_execution_mode_parameter: UINTCONSTANT  */
-#line 4270 "MachineIndependent/glslang.y"
+  case 657: /* spirv_execution_mode_parameter: UINTCONSTANT  */
+#line 4248 "MachineIndependent/glslang.y"
                    {
         (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
     }
-#line 12034 "MachineIndependent/glslang_tab.cpp"
+#line 12069 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 656: /* spirv_execution_mode_parameter: BOOLCONSTANT  */
-#line 4273 "MachineIndependent/glslang.y"
+  case 658: /* spirv_execution_mode_parameter: BOOLCONSTANT  */
+#line 4251 "MachineIndependent/glslang.y"
                    {
         (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
     }
-#line 12042 "MachineIndependent/glslang_tab.cpp"
+#line 12077 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 657: /* spirv_execution_mode_parameter: STRING_LITERAL  */
-#line 4276 "MachineIndependent/glslang.y"
+  case 659: /* spirv_execution_mode_parameter: STRING_LITERAL  */
+#line 4254 "MachineIndependent/glslang.y"
                      {
         (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true);
     }
-#line 12050 "MachineIndependent/glslang_tab.cpp"
+#line 12085 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 658: /* spirv_execution_mode_id_parameter_list: constant_expression  */
-#line 4281 "MachineIndependent/glslang.y"
+  case 660: /* spirv_execution_mode_id_parameter_list: constant_expression  */
+#line 4259 "MachineIndependent/glslang.y"
                           {
         if ((yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtFloat &&
             (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtInt &&
@@ -12060,11 +12095,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 12064 "MachineIndependent/glslang_tab.cpp"
+#line 12099 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 659: /* spirv_execution_mode_id_parameter_list: spirv_execution_mode_id_parameter_list COMMA constant_expression  */
-#line 4290 "MachineIndependent/glslang.y"
+  case 661: /* spirv_execution_mode_id_parameter_list: spirv_execution_mode_id_parameter_list COMMA constant_expression  */
+#line 4268 "MachineIndependent/glslang.y"
                                                                        {
         if ((yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtFloat &&
             (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtInt &&
@@ -12074,351 +12109,351 @@
             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 12078 "MachineIndependent/glslang_tab.cpp"
+#line 12113 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 660: /* spirv_storage_class_qualifier: SPIRV_STORAGE_CLASS LEFT_PAREN INTCONSTANT RIGHT_PAREN  */
-#line 4301 "MachineIndependent/glslang.y"
+  case 662: /* spirv_storage_class_qualifier: SPIRV_STORAGE_CLASS LEFT_PAREN INTCONSTANT RIGHT_PAREN  */
+#line 4279 "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 12088 "MachineIndependent/glslang_tab.cpp"
+#line 12123 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 661: /* spirv_storage_class_qualifier: SPIRV_STORAGE_CLASS LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN  */
-#line 4306 "MachineIndependent/glslang.y"
+  case 663: /* spirv_storage_class_qualifier: SPIRV_STORAGE_CLASS LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN  */
+#line 4284 "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 12099 "MachineIndependent/glslang_tab.cpp"
+#line 12134 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 662: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN INTCONSTANT RIGHT_PAREN  */
-#line 4314 "MachineIndependent/glslang.y"
+  case 664: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN INTCONSTANT RIGHT_PAREN  */
+#line 4292 "MachineIndependent/glslang.y"
                                                        {
         (yyval.interm.type).init((yyvsp[-3].lex).loc);
         (yyval.interm.type).qualifier.setSpirvDecorate((yyvsp[-1].lex).i);
     }
-#line 12108 "MachineIndependent/glslang_tab.cpp"
+#line 12143 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 663: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN  */
-#line 4318 "MachineIndependent/glslang.y"
+  case 665: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN  */
+#line 4296 "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 12118 "MachineIndependent/glslang_tab.cpp"
+#line 12153 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 664: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN INTCONSTANT COMMA spirv_decorate_parameter_list RIGHT_PAREN  */
-#line 4323 "MachineIndependent/glslang.y"
+  case 666: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN INTCONSTANT COMMA spirv_decorate_parameter_list RIGHT_PAREN  */
+#line 4301 "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 12127 "MachineIndependent/glslang_tab.cpp"
+#line 12162 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 665: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_parameter_list RIGHT_PAREN  */
-#line 4327 "MachineIndependent/glslang.y"
+  case 667: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_parameter_list RIGHT_PAREN  */
+#line 4305 "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 12137 "MachineIndependent/glslang_tab.cpp"
+#line 12172 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 666: /* spirv_decorate_qualifier: SPIRV_DECORATE_ID LEFT_PAREN INTCONSTANT COMMA spirv_decorate_id_parameter_list RIGHT_PAREN  */
-#line 4332 "MachineIndependent/glslang.y"
+  case 668: /* spirv_decorate_qualifier: SPIRV_DECORATE_ID LEFT_PAREN INTCONSTANT COMMA spirv_decorate_id_parameter_list RIGHT_PAREN  */
+#line 4310 "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 12146 "MachineIndependent/glslang_tab.cpp"
+#line 12181 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 667: /* spirv_decorate_qualifier: SPIRV_DECORATE_ID LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_id_parameter_list RIGHT_PAREN  */
-#line 4336 "MachineIndependent/glslang.y"
+  case 669: /* spirv_decorate_qualifier: SPIRV_DECORATE_ID LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_id_parameter_list RIGHT_PAREN  */
+#line 4314 "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 12156 "MachineIndependent/glslang_tab.cpp"
+#line 12191 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 668: /* spirv_decorate_qualifier: SPIRV_DECORATE_STRING LEFT_PAREN INTCONSTANT COMMA spirv_decorate_string_parameter_list RIGHT_PAREN  */
-#line 4341 "MachineIndependent/glslang.y"
+  case 670: /* spirv_decorate_qualifier: SPIRV_DECORATE_STRING LEFT_PAREN INTCONSTANT COMMA spirv_decorate_string_parameter_list RIGHT_PAREN  */
+#line 4319 "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 12165 "MachineIndependent/glslang_tab.cpp"
+#line 12200 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 669: /* spirv_decorate_qualifier: SPIRV_DECORATE_STRING LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_string_parameter_list RIGHT_PAREN  */
-#line 4345 "MachineIndependent/glslang.y"
+  case 671: /* spirv_decorate_qualifier: SPIRV_DECORATE_STRING LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_string_parameter_list RIGHT_PAREN  */
+#line 4323 "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 12175 "MachineIndependent/glslang_tab.cpp"
+#line 12210 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 670: /* spirv_decorate_parameter_list: spirv_decorate_parameter  */
-#line 4352 "MachineIndependent/glslang.y"
+  case 672: /* spirv_decorate_parameter_list: spirv_decorate_parameter  */
+#line 4330 "MachineIndependent/glslang.y"
                                {
         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
     }
-#line 12183 "MachineIndependent/glslang_tab.cpp"
+#line 12218 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 671: /* spirv_decorate_parameter_list: spirv_decorate_parameter_list COMMA spirv_decorate_parameter  */
-#line 4355 "MachineIndependent/glslang.y"
+  case 673: /* spirv_decorate_parameter_list: spirv_decorate_parameter_list COMMA spirv_decorate_parameter  */
+#line 4333 "MachineIndependent/glslang.y"
                                                                    {
         (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermNode));
     }
-#line 12191 "MachineIndependent/glslang_tab.cpp"
+#line 12226 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 672: /* spirv_decorate_parameter: FLOATCONSTANT  */
-#line 4360 "MachineIndependent/glslang.y"
+  case 674: /* spirv_decorate_parameter: FLOATCONSTANT  */
+#line 4338 "MachineIndependent/glslang.y"
                     {
         (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
     }
-#line 12199 "MachineIndependent/glslang_tab.cpp"
+#line 12234 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 673: /* spirv_decorate_parameter: INTCONSTANT  */
-#line 4363 "MachineIndependent/glslang.y"
+  case 675: /* spirv_decorate_parameter: INTCONSTANT  */
+#line 4341 "MachineIndependent/glslang.y"
                   {
         (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
     }
-#line 12207 "MachineIndependent/glslang_tab.cpp"
+#line 12242 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 674: /* spirv_decorate_parameter: UINTCONSTANT  */
-#line 4366 "MachineIndependent/glslang.y"
+  case 676: /* spirv_decorate_parameter: UINTCONSTANT  */
+#line 4344 "MachineIndependent/glslang.y"
                    {
         (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
     }
-#line 12215 "MachineIndependent/glslang_tab.cpp"
+#line 12250 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 675: /* spirv_decorate_parameter: BOOLCONSTANT  */
-#line 4369 "MachineIndependent/glslang.y"
+  case 677: /* spirv_decorate_parameter: BOOLCONSTANT  */
+#line 4347 "MachineIndependent/glslang.y"
                    {
         (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
     }
-#line 12223 "MachineIndependent/glslang_tab.cpp"
+#line 12258 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 676: /* spirv_decorate_id_parameter_list: spirv_decorate_id_parameter  */
-#line 4374 "MachineIndependent/glslang.y"
+  case 678: /* spirv_decorate_id_parameter_list: spirv_decorate_id_parameter  */
+#line 4352 "MachineIndependent/glslang.y"
                                   {
         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
     }
-#line 12231 "MachineIndependent/glslang_tab.cpp"
+#line 12266 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 677: /* spirv_decorate_id_parameter_list: spirv_decorate_id_parameter_list COMMA spirv_decorate_id_parameter  */
-#line 4377 "MachineIndependent/glslang.y"
+  case 679: /* spirv_decorate_id_parameter_list: spirv_decorate_id_parameter_list COMMA spirv_decorate_id_parameter  */
+#line 4355 "MachineIndependent/glslang.y"
                                                                          {
         (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermNode));
     }
-#line 12239 "MachineIndependent/glslang_tab.cpp"
+#line 12274 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 678: /* spirv_decorate_id_parameter: variable_identifier  */
-#line 4382 "MachineIndependent/glslang.y"
+  case 680: /* spirv_decorate_id_parameter: variable_identifier  */
+#line 4360 "MachineIndependent/glslang.y"
                           {
         if ((yyvsp[0].interm.intermTypedNode)->getAsConstantUnion() || (yyvsp[0].interm.intermTypedNode)->getAsSymbolNode())
             (yyval.interm.intermNode) = (yyvsp[0].interm.intermTypedNode);
         else
             parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "only allow constants or variables which are not elements of a composite", "", "");
     }
-#line 12250 "MachineIndependent/glslang_tab.cpp"
+#line 12285 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 679: /* spirv_decorate_id_parameter: FLOATCONSTANT  */
-#line 4388 "MachineIndependent/glslang.y"
+  case 681: /* spirv_decorate_id_parameter: FLOATCONSTANT  */
+#line 4366 "MachineIndependent/glslang.y"
                     {
         (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
     }
-#line 12258 "MachineIndependent/glslang_tab.cpp"
+#line 12293 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 680: /* spirv_decorate_id_parameter: INTCONSTANT  */
-#line 4391 "MachineIndependent/glslang.y"
+  case 682: /* spirv_decorate_id_parameter: INTCONSTANT  */
+#line 4369 "MachineIndependent/glslang.y"
                   {
         (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
     }
-#line 12266 "MachineIndependent/glslang_tab.cpp"
+#line 12301 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 681: /* spirv_decorate_id_parameter: UINTCONSTANT  */
-#line 4394 "MachineIndependent/glslang.y"
+  case 683: /* spirv_decorate_id_parameter: UINTCONSTANT  */
+#line 4372 "MachineIndependent/glslang.y"
                    {
         (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
     }
-#line 12274 "MachineIndependent/glslang_tab.cpp"
+#line 12309 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 682: /* spirv_decorate_id_parameter: BOOLCONSTANT  */
-#line 4397 "MachineIndependent/glslang.y"
+  case 684: /* spirv_decorate_id_parameter: BOOLCONSTANT  */
+#line 4375 "MachineIndependent/glslang.y"
                    {
         (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
     }
-#line 12282 "MachineIndependent/glslang_tab.cpp"
+#line 12317 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 683: /* spirv_decorate_string_parameter_list: STRING_LITERAL  */
-#line 4402 "MachineIndependent/glslang.y"
+  case 685: /* spirv_decorate_string_parameter_list: STRING_LITERAL  */
+#line 4380 "MachineIndependent/glslang.y"
                      {
         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate(
             parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true));
     }
-#line 12291 "MachineIndependent/glslang_tab.cpp"
+#line 12326 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 684: /* spirv_decorate_string_parameter_list: spirv_decorate_string_parameter_list COMMA STRING_LITERAL  */
-#line 4406 "MachineIndependent/glslang.y"
+  case 686: /* spirv_decorate_string_parameter_list: spirv_decorate_string_parameter_list COMMA STRING_LITERAL  */
+#line 4384 "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 12299 "MachineIndependent/glslang_tab.cpp"
+#line 12334 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 685: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_instruction_qualifier_list COMMA spirv_type_parameter_list RIGHT_PAREN  */
-#line 4411 "MachineIndependent/glslang.y"
+  case 687: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_instruction_qualifier_list COMMA spirv_type_parameter_list RIGHT_PAREN  */
+#line 4389 "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 12308 "MachineIndependent/glslang_tab.cpp"
+#line 12343 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 686: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list COMMA spirv_type_parameter_list RIGHT_PAREN  */
-#line 4415 "MachineIndependent/glslang.y"
+  case 688: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list COMMA spirv_type_parameter_list RIGHT_PAREN  */
+#line 4393 "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 12318 "MachineIndependent/glslang_tab.cpp"
+#line 12353 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 687: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_instruction_qualifier_list RIGHT_PAREN  */
-#line 4420 "MachineIndependent/glslang.y"
+  case 689: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_instruction_qualifier_list RIGHT_PAREN  */
+#line 4398 "MachineIndependent/glslang.y"
                                                                          {
         (yyval.interm.type).init((yyvsp[-3].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).setSpirvType(*(yyvsp[-1].interm.spirvInst));
     }
-#line 12327 "MachineIndependent/glslang_tab.cpp"
+#line 12362 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 688: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list RIGHT_PAREN  */
-#line 4424 "MachineIndependent/glslang.y"
+  case 690: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list RIGHT_PAREN  */
+#line 4402 "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 12337 "MachineIndependent/glslang_tab.cpp"
+#line 12372 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 689: /* spirv_type_parameter_list: spirv_type_parameter  */
-#line 4431 "MachineIndependent/glslang.y"
+  case 691: /* spirv_type_parameter_list: spirv_type_parameter  */
+#line 4409 "MachineIndependent/glslang.y"
                            {
         (yyval.interm.spirvTypeParams) = (yyvsp[0].interm.spirvTypeParams);
     }
-#line 12345 "MachineIndependent/glslang_tab.cpp"
+#line 12380 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 690: /* spirv_type_parameter_list: spirv_type_parameter_list COMMA spirv_type_parameter  */
-#line 4434 "MachineIndependent/glslang.y"
+  case 692: /* spirv_type_parameter_list: spirv_type_parameter_list COMMA spirv_type_parameter  */
+#line 4412 "MachineIndependent/glslang.y"
                                                            {
         (yyval.interm.spirvTypeParams) = parseContext.mergeSpirvTypeParameters((yyvsp[-2].interm.spirvTypeParams), (yyvsp[0].interm.spirvTypeParams));
     }
-#line 12353 "MachineIndependent/glslang_tab.cpp"
+#line 12388 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 691: /* spirv_type_parameter: constant_expression  */
-#line 4439 "MachineIndependent/glslang.y"
+  case 693: /* spirv_type_parameter: constant_expression  */
+#line 4417 "MachineIndependent/glslang.y"
                           {
         (yyval.interm.spirvTypeParams) = parseContext.makeSpirvTypeParameters((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode)->getAsConstantUnion());
     }
-#line 12361 "MachineIndependent/glslang_tab.cpp"
+#line 12396 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 692: /* spirv_type_parameter: type_specifier_nonarray  */
-#line 4442 "MachineIndependent/glslang.y"
+  case 694: /* spirv_type_parameter: type_specifier_nonarray  */
+#line 4420 "MachineIndependent/glslang.y"
                               {
         (yyval.interm.spirvTypeParams) = parseContext.makeSpirvTypeParameters((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
     }
-#line 12369 "MachineIndependent/glslang_tab.cpp"
+#line 12404 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 693: /* spirv_instruction_qualifier: SPIRV_INSTRUCTION LEFT_PAREN spirv_instruction_qualifier_list RIGHT_PAREN  */
-#line 4447 "MachineIndependent/glslang.y"
+  case 695: /* spirv_instruction_qualifier: SPIRV_INSTRUCTION LEFT_PAREN spirv_instruction_qualifier_list RIGHT_PAREN  */
+#line 4425 "MachineIndependent/glslang.y"
                                                                                 {
         (yyval.interm.spirvInst) = (yyvsp[-1].interm.spirvInst);
     }
-#line 12377 "MachineIndependent/glslang_tab.cpp"
+#line 12412 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 694: /* spirv_instruction_qualifier: SPIRV_INSTRUCTION LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list RIGHT_PAREN  */
-#line 4450 "MachineIndependent/glslang.y"
+  case 696: /* spirv_instruction_qualifier: SPIRV_INSTRUCTION LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list RIGHT_PAREN  */
+#line 4428 "MachineIndependent/glslang.y"
                                                                                                               {
         parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq));
         (yyval.interm.spirvInst) = (yyvsp[-1].interm.spirvInst);
     }
-#line 12386 "MachineIndependent/glslang_tab.cpp"
+#line 12421 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 695: /* spirv_instruction_qualifier_list: spirv_instruction_qualifier_id  */
-#line 4456 "MachineIndependent/glslang.y"
+  case 697: /* spirv_instruction_qualifier_list: spirv_instruction_qualifier_id  */
+#line 4434 "MachineIndependent/glslang.y"
                                      {
         (yyval.interm.spirvInst) = (yyvsp[0].interm.spirvInst);
     }
-#line 12394 "MachineIndependent/glslang_tab.cpp"
+#line 12429 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 696: /* spirv_instruction_qualifier_list: spirv_instruction_qualifier_list COMMA spirv_instruction_qualifier_id  */
-#line 4459 "MachineIndependent/glslang.y"
+  case 698: /* spirv_instruction_qualifier_list: spirv_instruction_qualifier_list COMMA spirv_instruction_qualifier_id  */
+#line 4437 "MachineIndependent/glslang.y"
                                                                             {
         (yyval.interm.spirvInst) = parseContext.mergeSpirvInstruction((yyvsp[-1].lex).loc, (yyvsp[-2].interm.spirvInst), (yyvsp[0].interm.spirvInst));
     }
-#line 12402 "MachineIndependent/glslang_tab.cpp"
+#line 12437 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 697: /* spirv_instruction_qualifier_id: IDENTIFIER EQUAL STRING_LITERAL  */
-#line 4464 "MachineIndependent/glslang.y"
+  case 699: /* spirv_instruction_qualifier_id: IDENTIFIER EQUAL STRING_LITERAL  */
+#line 4442 "MachineIndependent/glslang.y"
                                       {
         (yyval.interm.spirvInst) = parseContext.makeSpirvInstruction((yyvsp[-1].lex).loc, *(yyvsp[-2].lex).string, *(yyvsp[0].lex).string);
     }
-#line 12410 "MachineIndependent/glslang_tab.cpp"
+#line 12445 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 698: /* spirv_instruction_qualifier_id: IDENTIFIER EQUAL INTCONSTANT  */
-#line 4467 "MachineIndependent/glslang.y"
+  case 700: /* spirv_instruction_qualifier_id: IDENTIFIER EQUAL INTCONSTANT  */
+#line 4445 "MachineIndependent/glslang.y"
                                    {
         (yyval.interm.spirvInst) = parseContext.makeSpirvInstruction((yyvsp[-1].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[0].lex).i);
     }
-#line 12418 "MachineIndependent/glslang_tab.cpp"
+#line 12453 "MachineIndependent/glslang_tab.cpp"
     break;
 
 
-#line 12422 "MachineIndependent/glslang_tab.cpp"
+#line 12457 "MachineIndependent/glslang_tab.cpp"
 
       default: break;
     }
@@ -12494,7 +12529,7 @@
           }
         yyerror (pParseContext, yymsgp);
         if (yysyntax_error_status == YYENOMEM)
-          goto yyexhaustedlab;
+          YYNOMEM;
       }
     }
 
@@ -12530,6 +12565,7 @@
      label yyerrorlab therefore never appears in user code.  */
   if (0)
     YYERROR;
+  ++yynerrs;
 
   /* Do not reclaim the symbols of the rule whose action triggered
      this YYERROR.  */
@@ -12590,7 +12626,7 @@
 `-------------------------------------*/
 yyacceptlab:
   yyresult = 0;
-  goto yyreturn;
+  goto yyreturnlab;
 
 
 /*-----------------------------------.
@@ -12598,24 +12634,22 @@
 `-----------------------------------*/
 yyabortlab:
   yyresult = 1;
-  goto yyreturn;
+  goto yyreturnlab;
 
 
-#if 1
-/*-------------------------------------------------.
-| yyexhaustedlab -- memory exhaustion comes here.  |
-`-------------------------------------------------*/
+/*-----------------------------------------------------------.
+| yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here.  |
+`-----------------------------------------------------------*/
 yyexhaustedlab:
   yyerror (pParseContext, YY_("memory exhausted"));
   yyresult = 2;
-  goto yyreturn;
-#endif
+  goto yyreturnlab;
 
 
-/*-------------------------------------------------------.
-| yyreturn -- parsing is finished, clean up and return.  |
-`-------------------------------------------------------*/
-yyreturn:
+/*----------------------------------------------------------.
+| yyreturnlab -- parsing is finished, clean up and return.  |
+`----------------------------------------------------------*/
+yyreturnlab:
   if (yychar != YYEMPTY)
     {
       /* Make sure we have latest lookahead translation.  See comments at
@@ -12643,5 +12677,5 @@
   return yyresult;
 }
 
-#line 4472 "MachineIndependent/glslang.y"
+#line 4449 "MachineIndependent/glslang.y"
 
diff --git a/glslang/MachineIndependent/glslang_tab.cpp.h b/glslang/MachineIndependent/glslang_tab.cpp.h
index d2dd5e3..d648492 100644
--- a/glslang/MachineIndependent/glslang_tab.cpp.h
+++ b/glslang/MachineIndependent/glslang_tab.cpp.h
@@ -1,8 +1,8 @@
-/* A Bison parser, made by GNU Bison 3.7.4.  */
+/* A Bison parser, made by GNU Bison 3.8.2.  */
 
 /* Bison interface for Yacc-like parsers in C
 
-   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
+   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
@@ -16,7 +16,7 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
 
 /* As a special exception, you may create a larger work that contains
    part or all of the Bison parser skeleton and distribute that work
@@ -217,304 +217,305 @@
     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  */
-    ATTACHMENTEXT = 584,           /* ATTACHMENTEXT  */
-    IATTACHMENTEXT = 585,          /* IATTACHMENTEXT  */
-    UATTACHMENTEXT = 586,          /* UATTACHMENTEXT  */
-    LEFT_OP = 587,                 /* LEFT_OP  */
-    RIGHT_OP = 588,                /* RIGHT_OP  */
-    INC_OP = 589,                  /* INC_OP  */
-    DEC_OP = 590,                  /* DEC_OP  */
-    LE_OP = 591,                   /* LE_OP  */
-    GE_OP = 592,                   /* GE_OP  */
-    EQ_OP = 593,                   /* EQ_OP  */
-    NE_OP = 594,                   /* NE_OP  */
-    AND_OP = 595,                  /* AND_OP  */
-    OR_OP = 596,                   /* OR_OP  */
-    XOR_OP = 597,                  /* XOR_OP  */
-    MUL_ASSIGN = 598,              /* MUL_ASSIGN  */
-    DIV_ASSIGN = 599,              /* DIV_ASSIGN  */
-    ADD_ASSIGN = 600,              /* ADD_ASSIGN  */
-    MOD_ASSIGN = 601,              /* MOD_ASSIGN  */
-    LEFT_ASSIGN = 602,             /* LEFT_ASSIGN  */
-    RIGHT_ASSIGN = 603,            /* RIGHT_ASSIGN  */
-    AND_ASSIGN = 604,              /* AND_ASSIGN  */
-    XOR_ASSIGN = 605,              /* XOR_ASSIGN  */
-    OR_ASSIGN = 606,               /* OR_ASSIGN  */
-    SUB_ASSIGN = 607,              /* SUB_ASSIGN  */
-    STRING_LITERAL = 608,          /* STRING_LITERAL  */
-    LEFT_PAREN = 609,              /* LEFT_PAREN  */
-    RIGHT_PAREN = 610,             /* RIGHT_PAREN  */
-    LEFT_BRACKET = 611,            /* LEFT_BRACKET  */
-    RIGHT_BRACKET = 612,           /* RIGHT_BRACKET  */
-    LEFT_BRACE = 613,              /* LEFT_BRACE  */
-    RIGHT_BRACE = 614,             /* RIGHT_BRACE  */
-    DOT = 615,                     /* DOT  */
-    COMMA = 616,                   /* COMMA  */
-    COLON = 617,                   /* COLON  */
-    EQUAL = 618,                   /* EQUAL  */
-    SEMICOLON = 619,               /* SEMICOLON  */
-    BANG = 620,                    /* BANG  */
-    DASH = 621,                    /* DASH  */
-    TILDE = 622,                   /* TILDE  */
-    PLUS = 623,                    /* PLUS  */
-    STAR = 624,                    /* STAR  */
-    SLASH = 625,                   /* SLASH  */
-    PERCENT = 626,                 /* PERCENT  */
-    LEFT_ANGLE = 627,              /* LEFT_ANGLE  */
-    RIGHT_ANGLE = 628,             /* RIGHT_ANGLE  */
-    VERTICAL_BAR = 629,            /* VERTICAL_BAR  */
-    CARET = 630,                   /* CARET  */
-    AMPERSAND = 631,               /* AMPERSAND  */
-    QUESTION = 632,                /* QUESTION  */
-    INVARIANT = 633,               /* INVARIANT  */
-    HIGH_PRECISION = 634,          /* HIGH_PRECISION  */
-    MEDIUM_PRECISION = 635,        /* MEDIUM_PRECISION  */
-    LOW_PRECISION = 636,           /* LOW_PRECISION  */
-    PRECISION = 637,               /* PRECISION  */
-    PACKED = 638,                  /* PACKED  */
-    RESOURCE = 639,                /* RESOURCE  */
-    SUPERP = 640,                  /* SUPERP  */
-    FLOATCONSTANT = 641,           /* FLOATCONSTANT  */
-    INTCONSTANT = 642,             /* INTCONSTANT  */
-    UINTCONSTANT = 643,            /* UINTCONSTANT  */
-    BOOLCONSTANT = 644,            /* BOOLCONSTANT  */
-    IDENTIFIER = 645,              /* IDENTIFIER  */
-    TYPE_NAME = 646,               /* TYPE_NAME  */
-    CENTROID = 647,                /* CENTROID  */
-    IN = 648,                      /* IN  */
-    OUT = 649,                     /* OUT  */
-    INOUT = 650,                   /* INOUT  */
-    STRUCT = 651,                  /* STRUCT  */
-    VOID = 652,                    /* VOID  */
-    WHILE = 653,                   /* WHILE  */
-    BREAK = 654,                   /* BREAK  */
-    CONTINUE = 655,                /* CONTINUE  */
-    DO = 656,                      /* DO  */
-    ELSE = 657,                    /* ELSE  */
-    FOR = 658,                     /* FOR  */
-    IF = 659,                      /* IF  */
-    DISCARD = 660,                 /* DISCARD  */
-    RETURN = 661,                  /* RETURN  */
-    SWITCH = 662,                  /* SWITCH  */
-    CASE = 663,                    /* CASE  */
-    DEFAULT = 664,                 /* DEFAULT  */
-    TERMINATE_INVOCATION = 665,    /* TERMINATE_INVOCATION  */
-    TERMINATE_RAY = 666,           /* TERMINATE_RAY  */
-    IGNORE_INTERSECTION = 667,     /* IGNORE_INTERSECTION  */
-    UNIFORM = 668,                 /* UNIFORM  */
-    SHARED = 669,                  /* SHARED  */
-    BUFFER = 670,                  /* BUFFER  */
-    TILEIMAGEEXT = 671,            /* TILEIMAGEEXT  */
-    FLAT = 672,                    /* FLAT  */
-    SMOOTH = 673,                  /* SMOOTH  */
-    LAYOUT = 674,                  /* LAYOUT  */
-    DOUBLECONSTANT = 675,          /* DOUBLECONSTANT  */
-    INT16CONSTANT = 676,           /* INT16CONSTANT  */
-    UINT16CONSTANT = 677,          /* UINT16CONSTANT  */
-    FLOAT16CONSTANT = 678,         /* FLOAT16CONSTANT  */
-    INT32CONSTANT = 679,           /* INT32CONSTANT  */
-    UINT32CONSTANT = 680,          /* UINT32CONSTANT  */
-    INT64CONSTANT = 681,           /* INT64CONSTANT  */
-    UINT64CONSTANT = 682,          /* UINT64CONSTANT  */
-    SUBROUTINE = 683,              /* SUBROUTINE  */
-    DEMOTE = 684,                  /* DEMOTE  */
-    PAYLOADNV = 685,               /* PAYLOADNV  */
-    PAYLOADINNV = 686,             /* PAYLOADINNV  */
-    HITATTRNV = 687,               /* HITATTRNV  */
-    CALLDATANV = 688,              /* CALLDATANV  */
-    CALLDATAINNV = 689,            /* CALLDATAINNV  */
-    PAYLOADEXT = 690,              /* PAYLOADEXT  */
-    PAYLOADINEXT = 691,            /* PAYLOADINEXT  */
-    HITATTREXT = 692,              /* HITATTREXT  */
-    CALLDATAEXT = 693,             /* CALLDATAEXT  */
-    CALLDATAINEXT = 694,           /* CALLDATAINEXT  */
-    PATCH = 695,                   /* PATCH  */
-    SAMPLE = 696,                  /* SAMPLE  */
-    NONUNIFORM = 697,              /* NONUNIFORM  */
-    COHERENT = 698,                /* COHERENT  */
-    VOLATILE = 699,                /* VOLATILE  */
-    RESTRICT = 700,                /* RESTRICT  */
-    READONLY = 701,                /* READONLY  */
-    WRITEONLY = 702,               /* WRITEONLY  */
-    DEVICECOHERENT = 703,          /* DEVICECOHERENT  */
-    QUEUEFAMILYCOHERENT = 704,     /* QUEUEFAMILYCOHERENT  */
-    WORKGROUPCOHERENT = 705,       /* WORKGROUPCOHERENT  */
-    SUBGROUPCOHERENT = 706,        /* SUBGROUPCOHERENT  */
-    NONPRIVATE = 707,              /* NONPRIVATE  */
-    SHADERCALLCOHERENT = 708,      /* SHADERCALLCOHERENT  */
-    NOPERSPECTIVE = 709,           /* NOPERSPECTIVE  */
-    EXPLICITINTERPAMD = 710,       /* EXPLICITINTERPAMD  */
-    PERVERTEXEXT = 711,            /* PERVERTEXEXT  */
-    PERVERTEXNV = 712,             /* PERVERTEXNV  */
-    PERPRIMITIVENV = 713,          /* PERPRIMITIVENV  */
-    PERVIEWNV = 714,               /* PERVIEWNV  */
-    PERTASKNV = 715,               /* PERTASKNV  */
-    PERPRIMITIVEEXT = 716,         /* PERPRIMITIVEEXT  */
-    TASKPAYLOADWORKGROUPEXT = 717, /* TASKPAYLOADWORKGROUPEXT  */
-    PRECISE = 718                  /* PRECISE  */
+    COOPMAT = 421,                 /* COOPMAT  */
+    HITOBJECTNV = 422,             /* HITOBJECTNV  */
+    HITOBJECTATTRNV = 423,         /* HITOBJECTATTRNV  */
+    SAMPLERCUBEARRAY = 424,        /* SAMPLERCUBEARRAY  */
+    SAMPLERCUBEARRAYSHADOW = 425,  /* SAMPLERCUBEARRAYSHADOW  */
+    ISAMPLERCUBEARRAY = 426,       /* ISAMPLERCUBEARRAY  */
+    USAMPLERCUBEARRAY = 427,       /* USAMPLERCUBEARRAY  */
+    SAMPLER1D = 428,               /* SAMPLER1D  */
+    SAMPLER1DARRAY = 429,          /* SAMPLER1DARRAY  */
+    SAMPLER1DARRAYSHADOW = 430,    /* SAMPLER1DARRAYSHADOW  */
+    ISAMPLER1D = 431,              /* ISAMPLER1D  */
+    SAMPLER1DSHADOW = 432,         /* SAMPLER1DSHADOW  */
+    SAMPLER2DRECT = 433,           /* SAMPLER2DRECT  */
+    SAMPLER2DRECTSHADOW = 434,     /* SAMPLER2DRECTSHADOW  */
+    ISAMPLER2DRECT = 435,          /* ISAMPLER2DRECT  */
+    USAMPLER2DRECT = 436,          /* USAMPLER2DRECT  */
+    SAMPLERBUFFER = 437,           /* SAMPLERBUFFER  */
+    ISAMPLERBUFFER = 438,          /* ISAMPLERBUFFER  */
+    USAMPLERBUFFER = 439,          /* USAMPLERBUFFER  */
+    SAMPLER2DMS = 440,             /* SAMPLER2DMS  */
+    ISAMPLER2DMS = 441,            /* ISAMPLER2DMS  */
+    USAMPLER2DMS = 442,            /* USAMPLER2DMS  */
+    SAMPLER2DMSARRAY = 443,        /* SAMPLER2DMSARRAY  */
+    ISAMPLER2DMSARRAY = 444,       /* ISAMPLER2DMSARRAY  */
+    USAMPLER2DMSARRAY = 445,       /* USAMPLER2DMSARRAY  */
+    SAMPLEREXTERNALOES = 446,      /* SAMPLEREXTERNALOES  */
+    SAMPLEREXTERNAL2DY2YEXT = 447, /* SAMPLEREXTERNAL2DY2YEXT  */
+    ISAMPLER1DARRAY = 448,         /* ISAMPLER1DARRAY  */
+    USAMPLER1D = 449,              /* USAMPLER1D  */
+    USAMPLER1DARRAY = 450,         /* USAMPLER1DARRAY  */
+    F16SAMPLER1D = 451,            /* F16SAMPLER1D  */
+    F16SAMPLER2D = 452,            /* F16SAMPLER2D  */
+    F16SAMPLER3D = 453,            /* F16SAMPLER3D  */
+    F16SAMPLER2DRECT = 454,        /* F16SAMPLER2DRECT  */
+    F16SAMPLERCUBE = 455,          /* F16SAMPLERCUBE  */
+    F16SAMPLER1DARRAY = 456,       /* F16SAMPLER1DARRAY  */
+    F16SAMPLER2DARRAY = 457,       /* F16SAMPLER2DARRAY  */
+    F16SAMPLERCUBEARRAY = 458,     /* F16SAMPLERCUBEARRAY  */
+    F16SAMPLERBUFFER = 459,        /* F16SAMPLERBUFFER  */
+    F16SAMPLER2DMS = 460,          /* F16SAMPLER2DMS  */
+    F16SAMPLER2DMSARRAY = 461,     /* F16SAMPLER2DMSARRAY  */
+    F16SAMPLER1DSHADOW = 462,      /* F16SAMPLER1DSHADOW  */
+    F16SAMPLER2DSHADOW = 463,      /* F16SAMPLER2DSHADOW  */
+    F16SAMPLER1DARRAYSHADOW = 464, /* F16SAMPLER1DARRAYSHADOW  */
+    F16SAMPLER2DARRAYSHADOW = 465, /* F16SAMPLER2DARRAYSHADOW  */
+    F16SAMPLER2DRECTSHADOW = 466,  /* F16SAMPLER2DRECTSHADOW  */
+    F16SAMPLERCUBESHADOW = 467,    /* F16SAMPLERCUBESHADOW  */
+    F16SAMPLERCUBEARRAYSHADOW = 468, /* F16SAMPLERCUBEARRAYSHADOW  */
+    IMAGE1D = 469,                 /* IMAGE1D  */
+    IIMAGE1D = 470,                /* IIMAGE1D  */
+    UIMAGE1D = 471,                /* UIMAGE1D  */
+    IMAGE2D = 472,                 /* IMAGE2D  */
+    IIMAGE2D = 473,                /* IIMAGE2D  */
+    UIMAGE2D = 474,                /* UIMAGE2D  */
+    IMAGE3D = 475,                 /* IMAGE3D  */
+    IIMAGE3D = 476,                /* IIMAGE3D  */
+    UIMAGE3D = 477,                /* UIMAGE3D  */
+    IMAGE2DRECT = 478,             /* IMAGE2DRECT  */
+    IIMAGE2DRECT = 479,            /* IIMAGE2DRECT  */
+    UIMAGE2DRECT = 480,            /* UIMAGE2DRECT  */
+    IMAGECUBE = 481,               /* IMAGECUBE  */
+    IIMAGECUBE = 482,              /* IIMAGECUBE  */
+    UIMAGECUBE = 483,              /* UIMAGECUBE  */
+    IMAGEBUFFER = 484,             /* IMAGEBUFFER  */
+    IIMAGEBUFFER = 485,            /* IIMAGEBUFFER  */
+    UIMAGEBUFFER = 486,            /* UIMAGEBUFFER  */
+    IMAGE1DARRAY = 487,            /* IMAGE1DARRAY  */
+    IIMAGE1DARRAY = 488,           /* IIMAGE1DARRAY  */
+    UIMAGE1DARRAY = 489,           /* UIMAGE1DARRAY  */
+    IMAGE2DARRAY = 490,            /* IMAGE2DARRAY  */
+    IIMAGE2DARRAY = 491,           /* IIMAGE2DARRAY  */
+    UIMAGE2DARRAY = 492,           /* UIMAGE2DARRAY  */
+    IMAGECUBEARRAY = 493,          /* IMAGECUBEARRAY  */
+    IIMAGECUBEARRAY = 494,         /* IIMAGECUBEARRAY  */
+    UIMAGECUBEARRAY = 495,         /* UIMAGECUBEARRAY  */
+    IMAGE2DMS = 496,               /* IMAGE2DMS  */
+    IIMAGE2DMS = 497,              /* IIMAGE2DMS  */
+    UIMAGE2DMS = 498,              /* UIMAGE2DMS  */
+    IMAGE2DMSARRAY = 499,          /* IMAGE2DMSARRAY  */
+    IIMAGE2DMSARRAY = 500,         /* IIMAGE2DMSARRAY  */
+    UIMAGE2DMSARRAY = 501,         /* UIMAGE2DMSARRAY  */
+    F16IMAGE1D = 502,              /* F16IMAGE1D  */
+    F16IMAGE2D = 503,              /* F16IMAGE2D  */
+    F16IMAGE3D = 504,              /* F16IMAGE3D  */
+    F16IMAGE2DRECT = 505,          /* F16IMAGE2DRECT  */
+    F16IMAGECUBE = 506,            /* F16IMAGECUBE  */
+    F16IMAGE1DARRAY = 507,         /* F16IMAGE1DARRAY  */
+    F16IMAGE2DARRAY = 508,         /* F16IMAGE2DARRAY  */
+    F16IMAGECUBEARRAY = 509,       /* F16IMAGECUBEARRAY  */
+    F16IMAGEBUFFER = 510,          /* F16IMAGEBUFFER  */
+    F16IMAGE2DMS = 511,            /* F16IMAGE2DMS  */
+    F16IMAGE2DMSARRAY = 512,       /* F16IMAGE2DMSARRAY  */
+    I64IMAGE1D = 513,              /* I64IMAGE1D  */
+    U64IMAGE1D = 514,              /* U64IMAGE1D  */
+    I64IMAGE2D = 515,              /* I64IMAGE2D  */
+    U64IMAGE2D = 516,              /* U64IMAGE2D  */
+    I64IMAGE3D = 517,              /* I64IMAGE3D  */
+    U64IMAGE3D = 518,              /* U64IMAGE3D  */
+    I64IMAGE2DRECT = 519,          /* I64IMAGE2DRECT  */
+    U64IMAGE2DRECT = 520,          /* U64IMAGE2DRECT  */
+    I64IMAGECUBE = 521,            /* I64IMAGECUBE  */
+    U64IMAGECUBE = 522,            /* U64IMAGECUBE  */
+    I64IMAGEBUFFER = 523,          /* I64IMAGEBUFFER  */
+    U64IMAGEBUFFER = 524,          /* U64IMAGEBUFFER  */
+    I64IMAGE1DARRAY = 525,         /* I64IMAGE1DARRAY  */
+    U64IMAGE1DARRAY = 526,         /* U64IMAGE1DARRAY  */
+    I64IMAGE2DARRAY = 527,         /* I64IMAGE2DARRAY  */
+    U64IMAGE2DARRAY = 528,         /* U64IMAGE2DARRAY  */
+    I64IMAGECUBEARRAY = 529,       /* I64IMAGECUBEARRAY  */
+    U64IMAGECUBEARRAY = 530,       /* U64IMAGECUBEARRAY  */
+    I64IMAGE2DMS = 531,            /* I64IMAGE2DMS  */
+    U64IMAGE2DMS = 532,            /* U64IMAGE2DMS  */
+    I64IMAGE2DMSARRAY = 533,       /* I64IMAGE2DMSARRAY  */
+    U64IMAGE2DMSARRAY = 534,       /* U64IMAGE2DMSARRAY  */
+    TEXTURECUBEARRAY = 535,        /* TEXTURECUBEARRAY  */
+    ITEXTURECUBEARRAY = 536,       /* ITEXTURECUBEARRAY  */
+    UTEXTURECUBEARRAY = 537,       /* UTEXTURECUBEARRAY  */
+    TEXTURE1D = 538,               /* TEXTURE1D  */
+    ITEXTURE1D = 539,              /* ITEXTURE1D  */
+    UTEXTURE1D = 540,              /* UTEXTURE1D  */
+    TEXTURE1DARRAY = 541,          /* TEXTURE1DARRAY  */
+    ITEXTURE1DARRAY = 542,         /* ITEXTURE1DARRAY  */
+    UTEXTURE1DARRAY = 543,         /* UTEXTURE1DARRAY  */
+    TEXTURE2DRECT = 544,           /* TEXTURE2DRECT  */
+    ITEXTURE2DRECT = 545,          /* ITEXTURE2DRECT  */
+    UTEXTURE2DRECT = 546,          /* UTEXTURE2DRECT  */
+    TEXTUREBUFFER = 547,           /* TEXTUREBUFFER  */
+    ITEXTUREBUFFER = 548,          /* ITEXTUREBUFFER  */
+    UTEXTUREBUFFER = 549,          /* UTEXTUREBUFFER  */
+    TEXTURE2DMS = 550,             /* TEXTURE2DMS  */
+    ITEXTURE2DMS = 551,            /* ITEXTURE2DMS  */
+    UTEXTURE2DMS = 552,            /* UTEXTURE2DMS  */
+    TEXTURE2DMSARRAY = 553,        /* TEXTURE2DMSARRAY  */
+    ITEXTURE2DMSARRAY = 554,       /* ITEXTURE2DMSARRAY  */
+    UTEXTURE2DMSARRAY = 555,       /* UTEXTURE2DMSARRAY  */
+    F16TEXTURE1D = 556,            /* F16TEXTURE1D  */
+    F16TEXTURE2D = 557,            /* F16TEXTURE2D  */
+    F16TEXTURE3D = 558,            /* F16TEXTURE3D  */
+    F16TEXTURE2DRECT = 559,        /* F16TEXTURE2DRECT  */
+    F16TEXTURECUBE = 560,          /* F16TEXTURECUBE  */
+    F16TEXTURE1DARRAY = 561,       /* F16TEXTURE1DARRAY  */
+    F16TEXTURE2DARRAY = 562,       /* F16TEXTURE2DARRAY  */
+    F16TEXTURECUBEARRAY = 563,     /* F16TEXTURECUBEARRAY  */
+    F16TEXTUREBUFFER = 564,        /* F16TEXTUREBUFFER  */
+    F16TEXTURE2DMS = 565,          /* F16TEXTURE2DMS  */
+    F16TEXTURE2DMSARRAY = 566,     /* F16TEXTURE2DMSARRAY  */
+    SUBPASSINPUT = 567,            /* SUBPASSINPUT  */
+    SUBPASSINPUTMS = 568,          /* SUBPASSINPUTMS  */
+    ISUBPASSINPUT = 569,           /* ISUBPASSINPUT  */
+    ISUBPASSINPUTMS = 570,         /* ISUBPASSINPUTMS  */
+    USUBPASSINPUT = 571,           /* USUBPASSINPUT  */
+    USUBPASSINPUTMS = 572,         /* USUBPASSINPUTMS  */
+    F16SUBPASSINPUT = 573,         /* F16SUBPASSINPUT  */
+    F16SUBPASSINPUTMS = 574,       /* F16SUBPASSINPUTMS  */
+    SPIRV_INSTRUCTION = 575,       /* SPIRV_INSTRUCTION  */
+    SPIRV_EXECUTION_MODE = 576,    /* SPIRV_EXECUTION_MODE  */
+    SPIRV_EXECUTION_MODE_ID = 577, /* SPIRV_EXECUTION_MODE_ID  */
+    SPIRV_DECORATE = 578,          /* SPIRV_DECORATE  */
+    SPIRV_DECORATE_ID = 579,       /* SPIRV_DECORATE_ID  */
+    SPIRV_DECORATE_STRING = 580,   /* SPIRV_DECORATE_STRING  */
+    SPIRV_TYPE = 581,              /* SPIRV_TYPE  */
+    SPIRV_STORAGE_CLASS = 582,     /* SPIRV_STORAGE_CLASS  */
+    SPIRV_BY_REFERENCE = 583,      /* SPIRV_BY_REFERENCE  */
+    SPIRV_LITERAL = 584,           /* SPIRV_LITERAL  */
+    ATTACHMENTEXT = 585,           /* ATTACHMENTEXT  */
+    IATTACHMENTEXT = 586,          /* IATTACHMENTEXT  */
+    UATTACHMENTEXT = 587,          /* UATTACHMENTEXT  */
+    LEFT_OP = 588,                 /* LEFT_OP  */
+    RIGHT_OP = 589,                /* RIGHT_OP  */
+    INC_OP = 590,                  /* INC_OP  */
+    DEC_OP = 591,                  /* DEC_OP  */
+    LE_OP = 592,                   /* LE_OP  */
+    GE_OP = 593,                   /* GE_OP  */
+    EQ_OP = 594,                   /* EQ_OP  */
+    NE_OP = 595,                   /* NE_OP  */
+    AND_OP = 596,                  /* AND_OP  */
+    OR_OP = 597,                   /* OR_OP  */
+    XOR_OP = 598,                  /* XOR_OP  */
+    MUL_ASSIGN = 599,              /* MUL_ASSIGN  */
+    DIV_ASSIGN = 600,              /* DIV_ASSIGN  */
+    ADD_ASSIGN = 601,              /* ADD_ASSIGN  */
+    MOD_ASSIGN = 602,              /* MOD_ASSIGN  */
+    LEFT_ASSIGN = 603,             /* LEFT_ASSIGN  */
+    RIGHT_ASSIGN = 604,            /* RIGHT_ASSIGN  */
+    AND_ASSIGN = 605,              /* AND_ASSIGN  */
+    XOR_ASSIGN = 606,              /* XOR_ASSIGN  */
+    OR_ASSIGN = 607,               /* OR_ASSIGN  */
+    SUB_ASSIGN = 608,              /* SUB_ASSIGN  */
+    STRING_LITERAL = 609,          /* STRING_LITERAL  */
+    LEFT_PAREN = 610,              /* LEFT_PAREN  */
+    RIGHT_PAREN = 611,             /* RIGHT_PAREN  */
+    LEFT_BRACKET = 612,            /* LEFT_BRACKET  */
+    RIGHT_BRACKET = 613,           /* RIGHT_BRACKET  */
+    LEFT_BRACE = 614,              /* LEFT_BRACE  */
+    RIGHT_BRACE = 615,             /* RIGHT_BRACE  */
+    DOT = 616,                     /* DOT  */
+    COMMA = 617,                   /* COMMA  */
+    COLON = 618,                   /* COLON  */
+    EQUAL = 619,                   /* EQUAL  */
+    SEMICOLON = 620,               /* SEMICOLON  */
+    BANG = 621,                    /* BANG  */
+    DASH = 622,                    /* DASH  */
+    TILDE = 623,                   /* TILDE  */
+    PLUS = 624,                    /* PLUS  */
+    STAR = 625,                    /* STAR  */
+    SLASH = 626,                   /* SLASH  */
+    PERCENT = 627,                 /* PERCENT  */
+    LEFT_ANGLE = 628,              /* LEFT_ANGLE  */
+    RIGHT_ANGLE = 629,             /* RIGHT_ANGLE  */
+    VERTICAL_BAR = 630,            /* VERTICAL_BAR  */
+    CARET = 631,                   /* CARET  */
+    AMPERSAND = 632,               /* AMPERSAND  */
+    QUESTION = 633,                /* QUESTION  */
+    INVARIANT = 634,               /* INVARIANT  */
+    HIGH_PRECISION = 635,          /* HIGH_PRECISION  */
+    MEDIUM_PRECISION = 636,        /* MEDIUM_PRECISION  */
+    LOW_PRECISION = 637,           /* LOW_PRECISION  */
+    PRECISION = 638,               /* PRECISION  */
+    PACKED = 639,                  /* PACKED  */
+    RESOURCE = 640,                /* RESOURCE  */
+    SUPERP = 641,                  /* SUPERP  */
+    FLOATCONSTANT = 642,           /* FLOATCONSTANT  */
+    INTCONSTANT = 643,             /* INTCONSTANT  */
+    UINTCONSTANT = 644,            /* UINTCONSTANT  */
+    BOOLCONSTANT = 645,            /* BOOLCONSTANT  */
+    IDENTIFIER = 646,              /* IDENTIFIER  */
+    TYPE_NAME = 647,               /* TYPE_NAME  */
+    CENTROID = 648,                /* CENTROID  */
+    IN = 649,                      /* IN  */
+    OUT = 650,                     /* OUT  */
+    INOUT = 651,                   /* INOUT  */
+    STRUCT = 652,                  /* STRUCT  */
+    VOID = 653,                    /* VOID  */
+    WHILE = 654,                   /* WHILE  */
+    BREAK = 655,                   /* BREAK  */
+    CONTINUE = 656,                /* CONTINUE  */
+    DO = 657,                      /* DO  */
+    ELSE = 658,                    /* ELSE  */
+    FOR = 659,                     /* FOR  */
+    IF = 660,                      /* IF  */
+    DISCARD = 661,                 /* DISCARD  */
+    RETURN = 662,                  /* RETURN  */
+    SWITCH = 663,                  /* SWITCH  */
+    CASE = 664,                    /* CASE  */
+    DEFAULT = 665,                 /* DEFAULT  */
+    TERMINATE_INVOCATION = 666,    /* TERMINATE_INVOCATION  */
+    TERMINATE_RAY = 667,           /* TERMINATE_RAY  */
+    IGNORE_INTERSECTION = 668,     /* IGNORE_INTERSECTION  */
+    UNIFORM = 669,                 /* UNIFORM  */
+    SHARED = 670,                  /* SHARED  */
+    BUFFER = 671,                  /* BUFFER  */
+    TILEIMAGEEXT = 672,            /* TILEIMAGEEXT  */
+    FLAT = 673,                    /* FLAT  */
+    SMOOTH = 674,                  /* SMOOTH  */
+    LAYOUT = 675,                  /* LAYOUT  */
+    DOUBLECONSTANT = 676,          /* DOUBLECONSTANT  */
+    INT16CONSTANT = 677,           /* INT16CONSTANT  */
+    UINT16CONSTANT = 678,          /* UINT16CONSTANT  */
+    FLOAT16CONSTANT = 679,         /* FLOAT16CONSTANT  */
+    INT32CONSTANT = 680,           /* INT32CONSTANT  */
+    UINT32CONSTANT = 681,          /* UINT32CONSTANT  */
+    INT64CONSTANT = 682,           /* INT64CONSTANT  */
+    UINT64CONSTANT = 683,          /* UINT64CONSTANT  */
+    SUBROUTINE = 684,              /* SUBROUTINE  */
+    DEMOTE = 685,                  /* DEMOTE  */
+    PAYLOADNV = 686,               /* PAYLOADNV  */
+    PAYLOADINNV = 687,             /* PAYLOADINNV  */
+    HITATTRNV = 688,               /* HITATTRNV  */
+    CALLDATANV = 689,              /* CALLDATANV  */
+    CALLDATAINNV = 690,            /* CALLDATAINNV  */
+    PAYLOADEXT = 691,              /* PAYLOADEXT  */
+    PAYLOADINEXT = 692,            /* PAYLOADINEXT  */
+    HITATTREXT = 693,              /* HITATTREXT  */
+    CALLDATAEXT = 694,             /* CALLDATAEXT  */
+    CALLDATAINEXT = 695,           /* CALLDATAINEXT  */
+    PATCH = 696,                   /* PATCH  */
+    SAMPLE = 697,                  /* SAMPLE  */
+    NONUNIFORM = 698,              /* NONUNIFORM  */
+    COHERENT = 699,                /* COHERENT  */
+    VOLATILE = 700,                /* VOLATILE  */
+    RESTRICT = 701,                /* RESTRICT  */
+    READONLY = 702,                /* READONLY  */
+    WRITEONLY = 703,               /* WRITEONLY  */
+    DEVICECOHERENT = 704,          /* DEVICECOHERENT  */
+    QUEUEFAMILYCOHERENT = 705,     /* QUEUEFAMILYCOHERENT  */
+    WORKGROUPCOHERENT = 706,       /* WORKGROUPCOHERENT  */
+    SUBGROUPCOHERENT = 707,        /* SUBGROUPCOHERENT  */
+    NONPRIVATE = 708,              /* NONPRIVATE  */
+    SHADERCALLCOHERENT = 709,      /* SHADERCALLCOHERENT  */
+    NOPERSPECTIVE = 710,           /* NOPERSPECTIVE  */
+    EXPLICITINTERPAMD = 711,       /* EXPLICITINTERPAMD  */
+    PERVERTEXEXT = 712,            /* PERVERTEXEXT  */
+    PERVERTEXNV = 713,             /* PERVERTEXNV  */
+    PERPRIMITIVENV = 714,          /* PERPRIMITIVENV  */
+    PERVIEWNV = 715,               /* PERVIEWNV  */
+    PERTASKNV = 716,               /* PERTASKNV  */
+    PERPRIMITIVEEXT = 717,         /* PERPRIMITIVEEXT  */
+    TASKPAYLOADWORKGROUPEXT = 718, /* TASKPAYLOADWORKGROUPEXT  */
+    PRECISE = 719                  /* PRECISE  */
   };
   typedef enum yytokentype yytoken_kind_t;
 #endif
@@ -523,7 +524,7 @@
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 union YYSTYPE
 {
-#line 97 "MachineIndependent/glslang.y"
+#line 72 "MachineIndependent/glslang.y"
 
     struct {
         glslang::TSourceLoc loc;
@@ -559,10 +560,10 @@
             glslang::TArraySizes* arraySizes;
             glslang::TIdentifierList* identifierList;
         };
-        glslang::TArraySizes* typeParameters;
+        glslang::TTypeParameters* typeParameters;
     } interm;
 
-#line 566 "MachineIndependent/glslang_tab.cpp.h"
+#line 567 "MachineIndependent/glslang_tab.cpp.h"
 
 };
 typedef union YYSTYPE YYSTYPE;
@@ -572,6 +573,8 @@
 
 
 
+
 int yyparse (glslang::TParseContext* pParseContext);
 
+
 #endif /* !YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED  */
diff --git a/glslang/MachineIndependent/intermOut.cpp b/glslang/MachineIndependent/intermOut.cpp
index b79bd46..8ef8745 100644
--- a/glslang/MachineIndependent/intermOut.cpp
+++ b/glslang/MachineIndependent/intermOut.cpp
@@ -1,7 +1,7 @@
 //
 // Copyright (C) 2002-2005  3Dlabs Inc. Ltd.
 // Copyright (C) 2012-2016 LunarG, Inc.
-// Copyright (C) 2017 ARM Limited.
+// Copyright (C) 2017, 2022-2024 Arm Limited.
 // Modifications Copyright (C) 2020 Advanced Micro Devices, Inc. All rights reserved.
 //
 // All rights reserved.
@@ -36,8 +36,6 @@
 // POSSIBILITY OF SUCH DAMAGE.
 //
 
-#if !defined(GLSLANG_WEB)
-
 #include "localintermediate.h"
 #include "../Include/InfoSink.h"
 
@@ -567,6 +565,8 @@
     case EOpSubgroupShuffleXor:              out.debug << "subgroupShuffleXor";              break;
     case EOpSubgroupShuffleUp:               out.debug << "subgroupShuffleUp";               break;
     case EOpSubgroupShuffleDown:             out.debug << "subgroupShuffleDown";             break;
+    case EOpSubgroupRotate:                  out.debug << "subgroupRotate";                  break;
+    case EOpSubgroupClusteredRotate:         out.debug << "subgroupClusteredRotate";         break;
     case EOpSubgroupAdd:                     out.debug << "subgroupAdd";                     break;
     case EOpSubgroupMul:                     out.debug << "subgroupMul";                     break;
     case EOpSubgroupMin:                     out.debug << "subgroupMin";                     break;
@@ -599,6 +599,8 @@
     case EOpSubgroupQuadSwapHorizontal:      out.debug << "subgroupQuadSwapHorizontal";      break;
     case EOpSubgroupQuadSwapVertical:        out.debug << "subgroupQuadSwapVertical";        break;
     case EOpSubgroupQuadSwapDiagonal:        out.debug << "subgroupQuadSwapDiagonal";        break;
+    case EOpSubgroupQuadAll:                 out.debug << "subgroupQuadAll";                 break;
+    case EOpSubgroupQuadAny:                 out.debug << "subgroupQuadAny";                 break;
 
     case EOpSubgroupPartition:                          out.debug << "subgroupPartitionNV";                          break;
     case EOpSubgroupPartitionedAdd:                     out.debug << "subgroupPartitionedAddNV";                     break;
@@ -669,9 +671,7 @@
 
     case EOpDeclare: out.debug << "Declare"; break;
 
-#ifndef GLSLANG_WEB
     case EOpSpirvInst: out.debug << "spirv_instruction"; break;
-#endif
 
     default: out.debug.message(EPrefixError, "Bad unary op");
     }
@@ -809,7 +809,8 @@
     case EOpConstructStruct:  out.debug << "Construct structure";  break;
     case EOpConstructTextureSampler: out.debug << "Construct combined texture-sampler"; break;
     case EOpConstructReference:  out.debug << "Construct reference";  break;
-    case EOpConstructCooperativeMatrix:  out.debug << "Construct cooperative matrix";  break;
+    case EOpConstructCooperativeMatrixNV:  out.debug << "Construct cooperative matrix NV";  break;
+    case EOpConstructCooperativeMatrixKHR:  out.debug << "Construct cooperative matrix KHR";  break;
     case EOpConstructAccStruct: out.debug << "Construct acceleration structure"; break;
 
     case EOpLessThan:         out.debug << "Compare Less Than";             break;
@@ -1003,6 +1004,8 @@
     case EOpSubgroupShuffleXor:              out.debug << "subgroupShuffleXor"; break;
     case EOpSubgroupShuffleUp:               out.debug << "subgroupShuffleUp"; break;
     case EOpSubgroupShuffleDown:             out.debug << "subgroupShuffleDown"; break;
+    case EOpSubgroupRotate:                  out.debug << "subgroupRotate"; break;
+    case EOpSubgroupClusteredRotate:         out.debug << "subgroupClusteredRotate"; break;
     case EOpSubgroupAdd:                     out.debug << "subgroupAdd"; break;
     case EOpSubgroupMul:                     out.debug << "subgroupMul"; break;
     case EOpSubgroupMin:                     out.debug << "subgroupMin"; break;
@@ -1035,6 +1038,8 @@
     case EOpSubgroupQuadSwapHorizontal:      out.debug << "subgroupQuadSwapHorizontal"; break;
     case EOpSubgroupQuadSwapVertical:        out.debug << "subgroupQuadSwapVertical"; break;
     case EOpSubgroupQuadSwapDiagonal:        out.debug << "subgroupQuadSwapDiagonal"; break;
+    case EOpSubgroupQuadAll:                 out.debug << "subgroupQuadAll"; break;
+    case EOpSubgroupQuadAny:                 out.debug << "subgroupQuadAny"; break;
 
     case EOpSubgroupPartition:                          out.debug << "subgroupPartitionNV";                          break;
     case EOpSubgroupPartitionedAdd:                     out.debug << "subgroupPartitionedAddNV";                     break;
@@ -1103,9 +1108,12 @@
     case EOpRayQueryGetIntersectionWorldToObject:                          out.debug << "rayQueryGetIntersectionWorldToObjectEXT"; break;
     case EOpRayQueryGetIntersectionTriangleVertexPositionsEXT:             out.debug << "rayQueryGetIntersectionTriangleVertexPositionsEXT"; break;
 
-    case EOpCooperativeMatrixLoad:  out.debug << "Load cooperative matrix";  break;
-    case EOpCooperativeMatrixStore:  out.debug << "Store cooperative matrix";  break;
-    case EOpCooperativeMatrixMulAdd: out.debug << "MulAdd cooperative matrices"; break;
+    case EOpCooperativeMatrixLoad:  out.debug << "Load cooperative matrix KHR"; break;
+    case EOpCooperativeMatrixStore:  out.debug << "Store cooperative matrix KHR"; break;
+    case EOpCooperativeMatrixMulAdd: out.debug << "MulAdd cooperative matrices KHR"; break;
+    case EOpCooperativeMatrixLoadNV:  out.debug << "Load cooperative matrix NV"; break;
+    case EOpCooperativeMatrixStoreNV:  out.debug << "Store cooperative matrix NV"; break;
+    case EOpCooperativeMatrixMulAddNV: out.debug << "MulAdd cooperative matrices NV"; break;
 
     case EOpIsHelperInvocation: out.debug << "IsHelperInvocation"; break;
     case EOpDebugPrintf:  out.debug << "Debug printf";  break;
@@ -1141,10 +1149,10 @@
     case EOpHitObjectGetShaderBindingTableRecordIndexNV: out.debug << "HitObjectGetShaderBindingTableRecordIndexNV"; break;
     case EOpHitObjectGetShaderRecordBufferHandleNV: out.debug << "HitObjectReadShaderRecordBufferHandleNV"; break;
     case EOpReorderThreadNV: out.debug << "ReorderThreadNV"; break;
+    case EOpFetchMicroTriangleVertexPositionNV: out.debug << "MicroTriangleVertexPositionNV"; break;
+    case EOpFetchMicroTriangleVertexBarycentricNV: out.debug << "MicroTriangleVertexBarycentricNV"; break;
 
-#ifndef GLSLANG_WEB
     case EOpSpirvInst: out.debug << "spirv_instruction"; break;
-#endif
     case EOpStencilAttachmentReadEXT: out.debug << "stencilAttachmentReadEXT"; break;
     case EOpDepthAttachmentReadEXT: out.debug << "depthAttachmentReadEXT"; break;
 
@@ -1208,12 +1216,12 @@
 //   - shows all digits, no premature rounding
 static void OutputDouble(TInfoSink& out, double value, TOutputTraverser::EExtraOutput extra)
 {
-    if (IsInfinity(value)) {
+    if (std::isinf(value)) {
         if (value < 0)
             out.debug << "-1.#INF";
         else
             out.debug << "+1.#INF";
-    } else if (IsNan(value))
+    } else if (std::isnan(value))
         out.debug << "1.#IND";
     else {
         const int maxSize = 340;
@@ -1512,6 +1520,9 @@
     if (getSubgroupUniformControlFlow())
         infoSink.debug << "subgroup_uniform_control_flow\n";
 
+    if (getMaximallyReconverges())
+        infoSink.debug << "maximally_reconverges\n";
+
     switch (language) {
     case EShLangVertex:
         break;
@@ -1607,5 +1618,3 @@
 }
 
 } // end namespace glslang
-
-#endif // !GLSLANG_WEB
diff --git a/glslang/MachineIndependent/iomapper.cpp b/glslang/MachineIndependent/iomapper.cpp
index efb26b8..ed85325 100644
--- a/glslang/MachineIndependent/iomapper.cpp
+++ b/glslang/MachineIndependent/iomapper.cpp
@@ -33,8 +33,6 @@
 // POSSIBILITY OF SUCH DAMAGE.
 //
 
-#if !defined(GLSLANG_WEB)
-
 #include "../Include/Common.h"
 #include "../Include/InfoSink.h"
 #include "../Include/Types.h"
@@ -868,7 +866,7 @@
     }
 
     // no locations added if already present, a built-in variable, or a variable with SPIR-V decorate
-    if (type.getQualifier().hasLocation() || type.isBuiltIn() || type.getQualifier().hasSprivDecorate()) {
+    if (type.getQualifier().hasLocation() || type.isBuiltIn() || type.getQualifier().hasSpirvDecorate()) {
         return ent.newLocation = -1;
     }
 
@@ -955,7 +953,7 @@
         return ent.newLocation = type.getQualifier().layoutLocation;
     }
     // no locations added if already present, a built-in variable, or a variable with SPIR-V decorate
-    if (type.isBuiltIn() || type.getQualifier().hasSprivDecorate()) {
+    if (type.isBuiltIn() || type.getQualifier().hasSpirvDecorate()) {
         return ent.newLocation = -1;
     }
     // no locations on blocks of built-in variables
@@ -1714,5 +1712,3 @@
 }
 
 } // end namespace glslang
-
-#endif // !GLSLANG_WEB
diff --git a/glslang/MachineIndependent/iomapper.h b/glslang/MachineIndependent/iomapper.h
index 464d73e..35babbc 100644
--- a/glslang/MachineIndependent/iomapper.h
+++ b/glslang/MachineIndependent/iomapper.h
@@ -33,8 +33,6 @@
 // POSSIBILITY OF SUCH DAMAGE.
 //
 
-#if !defined(GLSLANG_WEB)
-
 #ifndef _IOMAPPER_INCLUDED
 #define _IOMAPPER_INCLUDED
 
@@ -359,5 +357,3 @@
 } // end namespace glslang
 
 #endif // _IOMAPPER_INCLUDED
-
-#endif // !GLSLANG_WEB
diff --git a/glslang/MachineIndependent/limits.cpp b/glslang/MachineIndependent/limits.cpp
index 3915705..4404bec 100644
--- a/glslang/MachineIndependent/limits.cpp
+++ b/glslang/MachineIndependent/limits.cpp
@@ -187,14 +187,12 @@
 //
 void TParseContext::constantIndexExpressionCheck(TIntermNode* index)
 {
-#ifndef GLSLANG_WEB
     TIndexTraverser it(inductiveLoopIds);
 
     index->traverse(&it);
 
     if (it.bad)
         error(it.badLoc, "Non-constant-index-expression", "limitations", "");
-#endif
 }
 
 } // end namespace glslang
diff --git a/glslang/MachineIndependent/linkValidate.cpp b/glslang/MachineIndependent/linkValidate.cpp
index bbfa022..d69300b 100644
--- a/glslang/MachineIndependent/linkValidate.cpp
+++ b/glslang/MachineIndependent/linkValidate.cpp
@@ -57,13 +57,11 @@
 //
 void TIntermediate::error(TInfoSink& infoSink, const char* message, EShLanguage unitStage)
 {
-#ifndef GLSLANG_WEB
     infoSink.info.prefix(EPrefixError);
     if (unitStage < EShLangCount)
         infoSink.info << "Linking " << StageName(getStage()) << " and " << StageName(unitStage) << " stages: " << message << "\n";
     else
         infoSink.info << "Linking " << StageName(language) << " stage: " << message << "\n";
-#endif
 
     ++numErrors;
 }
@@ -71,13 +69,11 @@
 // Link-time warning.
 void TIntermediate::warn(TInfoSink& infoSink, const char* message, EShLanguage unitStage)
 {
-#ifndef GLSLANG_WEB
     infoSink.info.prefix(EPrefixWarning);
     if (unitStage < EShLangCount)
         infoSink.info << "Linking " << StageName(language) << " and " << StageName(unitStage) << " stages: " << message << "\n";
     else
         infoSink.info << "Linking " << StageName(language) << " stage: " << message << "\n";
-#endif
 }
 
 // TODO: 4.4 offset/align:  "Two blocks linked together in the same program with the same block
@@ -89,11 +85,9 @@
 //
 void TIntermediate::merge(TInfoSink& infoSink, TIntermediate& unit)
 {
-#if !defined(GLSLANG_WEB)
     mergeCallGraphs(infoSink, unit);
     mergeModes(infoSink, unit);
     mergeTrees(infoSink, unit);
-#endif
 }
 
 //
@@ -161,8 +155,6 @@
     callGraph.insert(callGraph.end(), unit.callGraph.begin(), unit.callGraph.end());
 }
 
-#if !defined(GLSLANG_WEB)
-
 #define MERGE_MAX(member) member = std::max(member, unit.member)
 #define MERGE_TRUE(member) if (unit.member) member = unit.member;
 
@@ -381,8 +373,6 @@
     ioAccessed.insert(unit.ioAccessed.begin(), unit.ioAccessed.end());
 }
 
-#endif
-
 static const TString& getNameForIdMap(TIntermSymbol* symbol)
 {
     TShaderInterface si = symbol->getType().getShaderInterface();
@@ -859,7 +849,6 @@
 //
 void TIntermediate::mergeErrorCheck(TInfoSink& infoSink, const TIntermSymbol& symbol, const TIntermSymbol& unitSymbol, EShLanguage unitStage)
 {
-#if !defined(GLSLANG_WEB)
     bool crossStage = getStage() != unitStage;
     bool writeTypeComparison = false;
     bool errorReported = false;
@@ -1187,7 +1176,6 @@
           }
         }
     }
-#endif
 }
 
 void TIntermediate::sharedBlockCheck(TInfoSink& infoSink)
@@ -1234,7 +1222,6 @@
     // overlap/alias/missing I/O, etc.
     inOutLocationCheck(infoSink);
 
-#ifndef GLSLANG_WEB
     if (getNumPushConstants() > 1)
         error(infoSink, "Only one push_constant block is allowed per stage");
 
@@ -1392,7 +1379,6 @@
     } finalLinkTraverser;
 
     treeRoot->traverse(&finalLinkTraverser);
-#endif
 }
 
 //
@@ -1687,7 +1673,6 @@
     // For raytracing IO (payloads and callabledata) each declaration occupies a single
     // slot irrespective of type.
     int collision = -1; // no collision
-#ifndef GLSLANG_WEB
     if (qualifier.isAnyPayload() || qualifier.isAnyCallable() || qualifier.isHitObjectAttrNV()) {
         TRange range(qualifier.layoutLocation, qualifier.layoutLocation);
         collision = checkLocationRT(set, qualifier.layoutLocation);
@@ -1723,7 +1708,7 @@
         }
         return collision;
     }
-#endif
+
     // Not a dvec3 in/out split across two locations, generic path.
     // Need a single IO-range block.
 
@@ -1846,10 +1831,8 @@
         if (type.isSizedArray() && !type.getQualifier().isPerView())
             return type.getOuterArraySize() * computeTypeLocationSize(elementType, stage);
         else {
-#ifndef GLSLANG_WEB
             // unset perViewNV attributes for arrayed per-view outputs: "perviewNV vec4 v[MAX_VIEWS][3];"
             elementType.getQualifier().perViewNV = false;
-#endif
             return computeTypeLocationSize(elementType, stage);
         }
     }
@@ -1925,8 +1908,6 @@
     return 1;
 }
 
-#ifndef GLSLANG_WEB
-
 // Accumulate xfb buffer ranges and check for collisions as the accumulation is done.
 //
 // Returns < 0 if no collision, >= 0 if collision and the value returned is a colliding value.
@@ -2044,8 +2025,6 @@
     }
 }
 
-#endif
-
 const int baseAlignmentVec4Std140 = 16;
 
 // Return the size and alignment of a component of the given type.
@@ -2053,10 +2032,6 @@
 // Return value is the alignment..
 int TIntermediate::getBaseAlignmentScalar(const TType& type, int& size)
 {
-#ifdef GLSLANG_WEB
-    size = 4; return 4;
-#endif
-
     switch (type.getBasicType()) {
     case EbtInt64:
     case EbtUint64:
@@ -2396,7 +2371,6 @@
     return size;
 }
 
-#ifndef GLSLANG_WEB
 bool TIntermediate::isIoResizeArray(const TType& type, EShLanguage language) {
     return type.isArray() &&
             ((language == EShLangGeometry    && type.getQualifier().storage == EvqVaryingIn) ||
@@ -2408,6 +2382,5 @@
             (language == EShLangMesh && type.getQualifier().storage == EvqVaryingOut &&
                 !type.getQualifier().perTaskNV));
 }
-#endif // not GLSLANG_WEB
 
 } // end namespace glslang
diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h
index 2aa766a..db0367f 100644
--- a/glslang/MachineIndependent/localintermediate.h
+++ b/glslang/MachineIndependent/localintermediate.h
@@ -43,11 +43,12 @@
 #include "../Public/ShaderLang.h"
 #include "Versions.h"
 
+#include <algorithm>
+#include <array>
+#include <functional>
+#include <set>
 #include <string>
 #include <vector>
-#include <algorithm>
-#include <set>
-#include <array>
 
 class TInfoSink;
 
@@ -147,7 +148,6 @@
     TRange offset;
 };
 
-#ifndef GLSLANG_WEB
 // Things that need to be tracked per xfb buffer.
 struct TXfbBuffer {
     TXfbBuffer() : stride(TQualifier::layoutXfbStrideEnd), implicitStride(0), contains64BitType(false),
@@ -159,7 +159,6 @@
     bool contains32BitType;
     bool contains16BitType;
 };
-#endif
 
 // Track a set of strings describing how the module was processed.
 // This includes command line options, transforms, etc., ideally inclusive enough
@@ -311,9 +310,7 @@
         atomicCounterBlockName(""),
         globalUniformBlockSet(TQualifier::layoutSetEnd),
         globalUniformBlockBinding(TQualifier::layoutBindingEnd),
-        atomicCounterBlockSet(TQualifier::layoutSetEnd)
-#ifndef GLSLANG_WEB
-        ,
+        atomicCounterBlockSet(TQualifier::layoutSetEnd),
         implicitThisName("@this"), implicitCounterName("@count"),
         source(EShSourceNone),
         useVulkanMemoryModel(false),
@@ -348,11 +345,12 @@
         needToLegalize(false),
         binaryDoubleOutput(false),
         subgroupUniformControlFlow(false),
+        maximallyReconverges(false),
         usePhysicalStorageBuffer(false),
         spirvRequirement(nullptr),
         spirvExecutionMode(nullptr),
-        uniformLocationBase(0)
-#endif
+        uniformLocationBase(0),
+        quadDerivMode(false), reqFullQuadsMode(false)
     {
         localSize[0] = 1;
         localSize[1] = 1;
@@ -363,10 +361,8 @@
         localSizeSpecId[0] = TQualifier::layoutNotSet;
         localSizeSpecId[1] = TQualifier::layoutNotSet;
         localSizeSpecId[2] = TQualifier::layoutNotSet;
-#ifndef GLSLANG_WEB
         xfbBuffers.resize(TQualifier::layoutXfbBufferEnd);
         shiftBinding.fill(0);
-#endif
     }
 
     void setVersion(int v)
@@ -534,6 +530,8 @@
     TOperator mapTypeToConstructorOp(const TType&) const;
     TIntermAggregate* growAggregate(TIntermNode* left, TIntermNode* right);
     TIntermAggregate* growAggregate(TIntermNode* left, TIntermNode* right, const TSourceLoc&);
+    TIntermAggregate* mergeAggregate(TIntermNode* left, TIntermNode* right);
+    TIntermAggregate* mergeAggregate(TIntermNode* left, TIntermNode* right, const TSourceLoc&);
     TIntermAggregate* makeAggregate(TIntermNode* node);
     TIntermAggregate* makeAggregate(TIntermNode* node, const TSourceLoc&);
     TIntermAggregate* makeAggregate(const TSourceLoc&);
@@ -579,7 +577,8 @@
     TIntermTyped* foldSwizzle(TIntermTyped* node, TSwizzleSelectors<TVectorSelector>& fields, const TSourceLoc&);
 
     // Tree ops
-    static const TIntermTyped* findLValueBase(const TIntermTyped*, bool swizzleOkay , bool BufferReferenceOk = false);
+    static const TIntermTyped* traverseLValueBase(const TIntermTyped*, bool swizzleOkay, bool bufferReferenceOk = false,
+                                                  std::function<bool(const TIntermNode&)> proc = {});
 
     // Linkage related
     void addSymbolLinkageNodes(TIntermAggregate*& linkage, EShLanguage, TSymbolTable&);
@@ -636,38 +635,6 @@
                localSizeSpecId[1] != TQualifier::layoutNotSet ||
                localSizeSpecId[2] != TQualifier::layoutNotSet;
     }
-#ifdef GLSLANG_WEB
-    void output(TInfoSink&, bool tree) { }
-
-    bool isEsProfile() const { return false; }
-    bool getXfbMode() const { return false; }
-    bool isMultiStream() const { return false; }
-    TLayoutGeometry getOutputPrimitive() const { return ElgNone; }
-    bool getNonCoherentColorAttachmentReadEXT() const { return false; }
-    bool getNonCoherentDepthAttachmentReadEXT() const { return false; }
-    bool getNonCoherentStencilAttachmentReadEXT() const { return false; }
-    bool getPostDepthCoverage() const { return false; }
-    bool getEarlyFragmentTests() const { return false; }
-    TLayoutDepth getDepth() const { return EldNone; }
-    bool getPixelCenterInteger() const { return false; }
-    void setOriginUpperLeft() { }
-    bool getOriginUpperLeft() const { return true; }
-    TInterlockOrdering getInterlockOrdering() const { return EioNone; }
-
-    bool getAutoMapBindings() const { return false; }
-    bool getAutoMapLocations() const { return false; }
-    int getNumPushConstants() const { return 0; }
-    void addShaderRecordCount() { }
-    void addTaskNVCount() { }
-    void addTaskPayloadEXTCount() { }
-    void setUseVulkanMemoryModel() { }
-    bool usingVulkanMemoryModel() const { return false; }
-    bool usingPhysicalStorageBuffer() const { return false; }
-    bool usingVariablePointers() const { return false; }
-    unsigned getXfbStride(int buffer) const { return 0; }
-    bool hasLayoutDerivativeModeNone() const { return false; }
-    ComputeDerivativeMode getLayoutDerivativeModeNone() const { return LayoutDerivativeNone; }
-#else
     void output(TInfoSink&, bool tree);
 
     bool isEsProfile() const { return profile == EEsProfile; }
@@ -892,6 +859,10 @@
 
     void setXfbMode() { xfbMode = true; }
     bool getXfbMode() const { return xfbMode; }
+    void setQuadDerivMode(bool mode = true) { quadDerivMode = mode; }
+    bool getQuadDerivMode() const { return quadDerivMode; }
+    void setReqFullQuadsMode(bool mode = true) { reqFullQuadsMode = mode; }
+    bool getReqFullQuadsMode() const { return reqFullQuadsMode; }
     void setMultiStream() { multiStream = true; }
     bool isMultiStream() const { return multiStream; }
     bool setOutputPrimitive(TLayoutGeometry p)
@@ -998,6 +969,9 @@
     void setSubgroupUniformControlFlow() { subgroupUniformControlFlow = true; }
     bool getSubgroupUniformControlFlow() const { return subgroupUniformControlFlow; }
 
+    void setMaximallyReconverges() { maximallyReconverges = true; }
+    bool getMaximallyReconverges() const { return maximallyReconverges; }
+
     // GL_EXT_spirv_intrinsics
     void insertSpirvRequirement(const TSpirvRequirement* spirvReq);
     bool hasSpirvRequirement() const { return spirvRequirement != nullptr; }
@@ -1006,7 +980,6 @@
     void insertSpirvExecutionModeId(int executionMode, const TIntermAggregate* args);
     bool hasSpirvExecutionMode() const { return spirvExecutionMode != nullptr; }
     const TSpirvExecutionMode& getSpirvExecutionMode() const { return *spirvExecutionMode; }
-#endif // GLSLANG_WEB
 
     void addBlockStorageOverride(const char* nameStr, TBlockStorageClass backing)
     {
@@ -1113,12 +1086,6 @@
     void setUniqueId(unsigned long long id) { uniqueId = id; }
 
     // Certain explicit conversions are allowed conditionally
-#ifdef GLSLANG_WEB
-    bool getArithemeticInt8Enabled() const { return false; }
-    bool getArithemeticInt16Enabled() const { return false; }
-    bool getArithemeticFloat16Enabled() const { return false; }
-    void updateNumericFeature(TNumericFeatures::feature f, bool on) { }
-#else
     bool getArithemeticInt8Enabled() const {
         return numericFeatures.contains(TNumericFeatures::shader_explicit_arithmetic_types) ||
                numericFeatures.contains(TNumericFeatures::shader_explicit_arithmetic_types_int8);
@@ -1136,7 +1103,6 @@
     }
     void updateNumericFeature(TNumericFeatures::feature f, bool on)
         { on ? numericFeatures.insert(f) : numericFeatures.erase(f); }
-#endif
 
 protected:
     TIntermSymbol* addSymbol(long long Id, const TString&, const TType&, const TConstUnionArray&, TIntermTyped* subtree, const TSourceLoc&);
@@ -1208,7 +1174,6 @@
     unsigned int globalUniformBlockBinding;
     unsigned int atomicCounterBlockSet;
 
-#ifndef GLSLANG_WEB
 public:
     const char* const implicitThisName;
     const char* const implicitCounterName;
@@ -1270,6 +1235,7 @@
     bool needToLegalize;
     bool binaryDoubleOutput;
     bool subgroupUniformControlFlow;
+    bool maximallyReconverges;
     bool usePhysicalStorageBuffer;
 
     TSpirvRequirement* spirvRequirement;
@@ -1278,8 +1244,9 @@
     std::map<TString, AstRefType> bindlessImageModeCaller;
     std::unordered_map<std::string, int> uniformLocationOverrides;
     int uniformLocationBase;
+    bool quadDerivMode;
+    bool reqFullQuadsMode;
     TNumericFeatures numericFeatures;
-#endif
     std::unordered_map<std::string, TBlockStorageClass> blockBackingOverrides;
 
     std::unordered_set<int> usedConstantId; // specialization constant ids used
diff --git a/glslang/MachineIndependent/parseVersions.h b/glslang/MachineIndependent/parseVersions.h
index c9f82d0..63841c4 100644
--- a/glslang/MachineIndependent/parseVersions.h
+++ b/glslang/MachineIndependent/parseVersions.h
@@ -58,10 +58,8 @@
                    const SpvVersion& spvVersion, EShLanguage language, TInfoSink& infoSink,
                    bool forwardCompatible, EShMessages messages)
         :
-#if !defined(GLSLANG_WEB)
         forwardCompatible(forwardCompatible),
         profile(profile),
-#endif
         infoSink(infoSink), version(version), 
         language(language),
         spvVersion(spvVersion), 
@@ -69,54 +67,7 @@
     virtual ~TParseVersions() { }
     void requireStage(const TSourceLoc&, EShLanguageMask, const char* featureDesc);
     void requireStage(const TSourceLoc&, EShLanguage, const char* featureDesc);
-#ifdef GLSLANG_WEB
-    const EProfile profile = EEsProfile;
-    bool isEsProfile() const { return true; }
-    void requireProfile(const TSourceLoc& loc, int profileMask, const char* featureDesc)
-    {
-        if (! (EEsProfile & profileMask))
-            error(loc, "not supported with this profile:", featureDesc, ProfileName(profile));
-    }
-    void profileRequires(const TSourceLoc& loc, int profileMask, int minVersion, int numExtensions,
-        const char* const extensions[], const char* featureDesc)
-    {
-        if ((EEsProfile & profileMask) && (minVersion == 0 || version < minVersion))
-            error(loc, "not supported for this version or the enabled extensions", featureDesc, "");
-    }
-    void profileRequires(const TSourceLoc& loc, int profileMask, int minVersion, const char* extension,
-        const char* featureDesc)
-    {
-        profileRequires(loc, profileMask, minVersion, extension ? 1 : 0, &extension, featureDesc);
-    }
-    void initializeExtensionBehavior() { }
-    void checkDeprecated(const TSourceLoc&, int queryProfiles, int depVersion, const char* featureDesc) { }
-    void requireNotRemoved(const TSourceLoc&, int queryProfiles, int removedVersion, const char* featureDesc) { }
-    void requireExtensions(const TSourceLoc&, int numExtensions, const char* const extensions[],
-        const char* featureDesc) { }
-    void ppRequireExtensions(const TSourceLoc&, int numExtensions, const char* const extensions[],
-        const char* featureDesc) { }
-    TExtensionBehavior getExtensionBehavior(const char*) { return EBhMissing; }
-    bool extensionTurnedOn(const char* const extension) { return false; }
-    bool extensionsTurnedOn(int numExtensions, const char* const extensions[]) { return false; }
-    void updateExtensionBehavior(int line, const char* const extension, const char* behavior) { }
-    void updateExtensionBehavior(const char* const extension, TExtensionBehavior) { }
-    void checkExtensionStage(const TSourceLoc&, const char* const extension) { }
-    void extensionRequires(const TSourceLoc&, const char* const extension, const char* behavior) { }
-    void fullIntegerCheck(const TSourceLoc&, const char* op) { }
-    void doubleCheck(const TSourceLoc&, const char* op) { }
-    bool float16Arithmetic() { return false; }
-    void requireFloat16Arithmetic(const TSourceLoc& loc, const char* op, const char* featureDesc) { }
-    bool int16Arithmetic() { return false; }
-    void requireInt16Arithmetic(const TSourceLoc& loc, const char* op, const char* featureDesc) { }
-    bool int8Arithmetic() { return false; }
-    void requireInt8Arithmetic(const TSourceLoc& loc, const char* op, const char* featureDesc) { }
-    void int64Check(const TSourceLoc&, const char* op, bool builtIn = false) { }
-    void explicitFloat32Check(const TSourceLoc&, const char* op, bool builtIn = false) { }
-    void explicitFloat64Check(const TSourceLoc&, const char* op, bool builtIn = false) { }
-    bool relaxedErrors()    const { return false; }
-    bool suppressWarnings() const { return true; }
-    bool isForwardCompatible() const { return false; }
-#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)
     bool isEsProfile() const { return profile == EEsProfile; }
@@ -162,29 +113,19 @@
     virtual void explicitInt32Check(const TSourceLoc&, const char* op, bool builtIn = false);
     virtual void explicitFloat32Check(const TSourceLoc&, const char* op, bool builtIn = false);
     virtual void explicitFloat64Check(const TSourceLoc&, const char* op, bool builtIn = false);
-    virtual void fcoopmatCheck(const TSourceLoc&, const char* op, bool builtIn = false);
-    virtual void intcoopmatCheck(const TSourceLoc&, const char *op, bool builtIn = false);
+    virtual void fcoopmatCheckNV(const TSourceLoc&, const char* op, bool builtIn = false);
+    virtual void intcoopmatCheckNV(const TSourceLoc&, const char *op, bool builtIn = false);
+    virtual void coopmatCheck(const TSourceLoc&, const char* op, bool builtIn = false);
     bool relaxedErrors()    const { return (messages & EShMsgRelaxedErrors) != 0; }
     bool suppressWarnings() const { return (messages & EShMsgSuppressWarnings) != 0; }
     bool isForwardCompatible() const { return forwardCompatible; }
-#endif // GLSLANG_WEB
+
     virtual void spvRemoved(const TSourceLoc&, const char* op);
     virtual void vulkanRemoved(const TSourceLoc&, const char* op);
     virtual void requireVulkan(const TSourceLoc&, const char* op);
     virtual void requireSpv(const TSourceLoc&, const char* op);
     virtual void requireSpv(const TSourceLoc&, const char *op, unsigned int version);
 
-
-#if defined(GLSLANG_WEB) && !defined(GLSLANG_WEB_DEVEL)
-    void C_DECL   error(const TSourceLoc&, const char* szReason, const char* szToken,
-                        const char* szExtraInfoFormat, ...) { addError(); }
-    void C_DECL    warn(const TSourceLoc&, const char* szReason, const char* szToken,
-                        const char* szExtraInfoFormat, ...) { }
-    void C_DECL ppError(const TSourceLoc&, const char* szReason, const char* szToken,
-                        const char* szExtraInfoFormat, ...) { addError(); }
-    void C_DECL  ppWarn(const TSourceLoc&, const char* szReason, const char* szToken,
-                        const char* szExtraInfoFormat, ...) { }
-#else
     virtual void C_DECL error(const TSourceLoc&, const char* szReason, const char* szToken,
         const char* szExtraInfoFormat, ...) = 0;
     virtual void C_DECL  warn(const TSourceLoc&, const char* szReason, const char* szToken,
@@ -193,7 +134,6 @@
         const char* szExtraInfoFormat, ...) = 0;
     virtual void C_DECL ppWarn(const TSourceLoc&, const char* szReason, const char* szToken,
         const char* szExtraInfoFormat, ...) = 0;
-#endif
 
     void addError() { ++numErrors; }
     int getNumErrors() const { return numErrors; }
diff --git a/glslang/MachineIndependent/preprocessor/Pp.cpp b/glslang/MachineIndependent/preprocessor/Pp.cpp
index d5a7109..16b9d24 100644
--- a/glslang/MachineIndependent/preprocessor/Pp.cpp
+++ b/glslang/MachineIndependent/preprocessor/Pp.cpp
@@ -378,8 +378,6 @@
     int op_cmpl(int a) { return ~a; }
     int op_not(int a) { return !a; }
 
-};
-
 struct TBinop {
     int token, precedence, (*op)(int, int);
 } binop[] = {
@@ -412,6 +410,8 @@
     { '!', op_not },
 };
 
+} // anonymous namespace
+
 #define NUM_ELEMENTS(A) (sizeof(A) / sizeof(A[0]))
 
 int TPpContext::eval(int token, int precedence, bool shortCircuit, int& res, bool& err, TPpToken* ppToken)
@@ -736,7 +736,6 @@
         parseContext.setCurrentLine(lineRes);
 
         if (token != '\n') {
-#ifndef GLSLANG_WEB
             if (token == PpAtomConstString) {
                 parseContext.ppRequireExtensions(directiveLoc, 1, &E_GL_GOOGLE_cpp_style_line_directive, "filename-based #line");
                 // We need to save a copy of the string instead of pointing
@@ -746,9 +745,7 @@
                 parseContext.setCurrentSourceName(sourceName);
                 hasFile = true;
                 token = scanToken(ppToken);
-            } else
-#endif
-            {
+            } else {
                 token = eval(token, MIN_PRECEDENCE, false, fileRes, fileErr, ppToken);
                 if (! fileErr) {
                     parseContext.setCurrentString(fileRes);
@@ -974,7 +971,6 @@
         case PpAtomLine:
             token = CPPline(ppToken);
             break;
-#ifndef GLSLANG_WEB
         case PpAtomInclude:
             if(!parseContext.isReadingHLSL()) {
                 parseContext.ppRequireExtensions(ppToken->loc, 1, &E_GL_GOOGLE_include_directive, "#include");
@@ -984,7 +980,6 @@
         case PpAtomPragma:
             token = CPPpragma(ppToken);
             break;
-#endif
         case PpAtomUndef:
             token = CPPundef(ppToken);
             break;
diff --git a/glslang/MachineIndependent/preprocessor/PpContext.h b/glslang/MachineIndependent/preprocessor/PpContext.h
index 590eab6..1ec3049 100644
--- a/glslang/MachineIndependent/preprocessor/PpContext.h
+++ b/glslang/MachineIndependent/preprocessor/PpContext.h
@@ -86,11 +86,6 @@
 #include "../ParseHelper.h"
 #include "PpTokens.h"
 
-/* windows only pragma */
-#ifdef _MSC_VER
-    #pragma warning(disable : 4127)
-#endif
-
 namespace glslang {
 
 class TPpToken {
@@ -220,6 +215,7 @@
         virtual bool peekContinuedPasting(int) { return false; } // true when non-spaced tokens can paste
         virtual bool endOfReplacementList() { return false; } // true when at the end of a macro replacement list (RHS of #define)
         virtual bool isMacroInput() { return false; }
+        virtual bool isStringInput() { return false; }
 
         // Will be called when we start reading tokens from this instance
         virtual void notifyActivated() {}
@@ -360,7 +356,8 @@
     // Scanner data:
     int previous_token;
     TParseContextBase& parseContext;
-
+    std::vector<int> lastLineTokens;
+    std::vector<TSourceLoc> lastLineTokenLocs;
     // Get the next token from *stack* of input sources, popping input sources
     // that are out of tokens, down until an input source is found that has a token.
     // Return EndOfInput when there are no more tokens to be found by doing this.
@@ -374,7 +371,31 @@
                 break;
             popInput();
         }
-
+        if (!inputStack.empty() && inputStack.back()->isStringInput()) {
+            if (token == '\n') {
+                bool seenNumSign = false;
+                for (int i = 0; i < (int)lastLineTokens.size() - 1;) {
+                    int curPos = i;
+                    int curToken = lastLineTokens[i++];
+                    if (curToken == '#' && lastLineTokens[i] == '#') {
+                        curToken = PpAtomPaste;
+                        i++;
+                    }
+                    if (curToken == '#') {
+                        if (seenNumSign) {
+                            parseContext.ppError(lastLineTokenLocs[curPos], "(#) can be preceded in its line only by spaces or horizontal tabs", "#", "");
+                        } else {
+                            seenNumSign = true;
+                        }
+                    }
+                }
+                lastLineTokens.clear();
+                lastLineTokenLocs.clear();
+            } else {
+                lastLineTokens.push_back(token);
+                lastLineTokenLocs.push_back(ppToken->loc);
+            }
+        }
         return token;
     }
     int  getChar() { return inputStack.back()->getch(); }
@@ -527,7 +548,7 @@
     public:
         tStringInput(TPpContext* pp, TInputScanner& i) : tInput(pp), input(&i) { }
         virtual int scan(TPpToken*) override;
-
+        bool isStringInput() override { return true; }
         // Scanner used to get source stream characters.
         //  - Escaped newlines are handled here, invisibly to the caller.
         //  - All forms of newline are handled, and turned into just a '\n'.
diff --git a/glslang/MachineIndependent/preprocessor/PpScanner.cpp b/glslang/MachineIndependent/preprocessor/PpScanner.cpp
index 25b9bbd..34dec20 100644
--- a/glslang/MachineIndependent/preprocessor/PpScanner.cpp
+++ b/glslang/MachineIndependent/preprocessor/PpScanner.cpp
@@ -260,7 +260,6 @@
     // Suffix:
     bool isDouble = false;
     bool isFloat16 = false;
-#ifndef GLSLANG_WEB
     if (ch == 'l' || ch == 'L') {
         if (ifdepth == 0 && parseContext.intermediate.getSource() == EShSourceGlsl)
             parseContext.doubleCheck(ppToken->loc, "double floating-point suffix");
@@ -300,14 +299,11 @@
             isFloat16 = true;
         }
     } else
-#endif
     if (ch == 'f' || ch == 'F') {
-#ifndef GLSLANG_WEB
         if (ifdepth == 0)
             parseContext.profileRequires(ppToken->loc,  EEsProfile, 300, nullptr, "floating-point suffix");
         if (ifdepth == 0 && !parseContext.relaxedErrors())
             parseContext.profileRequires(ppToken->loc, ~EEsProfile, 120, nullptr, "floating-point suffix");
-#endif
         if (ifdepth == 0 && !hasDecimalOrExponent)
             parseContext.ppError(ppToken->loc, "float literal needs a decimal point or exponent", "", "");
         saveName(ch);
@@ -583,7 +579,6 @@
                         ppToken->name[len++] = (char)ch;
                     isUnsigned = true;
 
-#ifndef GLSLANG_WEB
                     int nextCh = getch();
                     if (nextCh == 'l' || nextCh == 'L') {
                         if (len < MaxTokenLength)
@@ -609,7 +604,6 @@
                     if (len < MaxTokenLength)
                         ppToken->name[len++] = (char)ch;
                     isInt16 = true;
-#endif
                 } else
                     ungetch();
                 ppToken->name[len] = '\0';
@@ -687,7 +681,6 @@
                         ppToken->name[len++] = (char)ch;
                     isUnsigned = true;
 
-#ifndef GLSLANG_WEB
                     int nextCh = getch();
                     if (nextCh == 'l' || nextCh == 'L') {
                         if (len < MaxTokenLength)
@@ -713,7 +706,6 @@
                     if (len < MaxTokenLength)
                         ppToken->name[len++] = (char)ch;
                     isInt16 = true;
-#endif
                 } else {
                     ungetch();
                 }
@@ -795,7 +787,6 @@
                         ppToken->name[len++] = (char)ch;
                     isUnsigned = true;
 
-#ifndef GLSLANG_WEB
                     int nextCh = getch();
                     if (nextCh == 'l' || nextCh == 'L') {
                         if (len < MaxTokenLength)
@@ -821,7 +812,6 @@
                     if (len < MaxTokenLength)
                         ppToken->name[len++] = (char)ch;
                     isInt16 = true;
-#endif
                 } else
                     ungetch();
                 ppToken->name[len] = '\0';
@@ -884,7 +874,6 @@
                         ppToken->name[len++] = (char)ch;
                     isUnsigned = true;
 
-#ifndef GLSLANG_WEB
                     int nextCh = getch();
                     if (nextCh == 'l' || nextCh == 'L') {
                         if (len < MaxTokenLength)
@@ -910,7 +899,6 @@
                     if (len < MaxTokenLength)
                         ppToken->name[len++] = (char)ch;
                     isInt16 = true;
-#endif
                 } else
                     ungetch();
 
diff --git a/glslang/MachineIndependent/preprocessor/PpTokens.cpp b/glslang/MachineIndependent/preprocessor/PpTokens.cpp
index 121bfca..e6ee64c 100644
--- a/glslang/MachineIndependent/preprocessor/PpTokens.cpp
+++ b/glslang/MachineIndependent/preprocessor/PpTokens.cpp
@@ -113,7 +113,6 @@
     int atom = stream[currentPos++].get(*ppToken);
     ppToken->loc = parseContext.getCurrentLoc();
 
-#ifndef GLSLANG_WEB
     // Check for ##, unless the current # is the last character
     if (atom == '#') {
         if (peekToken('#')) {
@@ -123,7 +122,6 @@
             atom = PpAtomPaste;
         }
     }
-#endif
 
     return atom;
 }
diff --git a/glslang/MachineIndependent/propagateNoContraction.cpp b/glslang/MachineIndependent/propagateNoContraction.cpp
index a1aa5ea..7b5cd03 100644
--- a/glslang/MachineIndependent/propagateNoContraction.cpp
+++ b/glslang/MachineIndependent/propagateNoContraction.cpp
@@ -37,8 +37,6 @@
 // propagate the 'noContraction' qualifier.
 //
 
-#ifndef GLSLANG_WEB
-
 #include "propagateNoContraction.h"
 
 #include <cstdlib>
@@ -865,6 +863,4 @@
         precise_object_accesschains.erase(precise_object_accesschain);
     }
 }
-};
-
-#endif // GLSLANG_WEB
+}
diff --git a/glslang/MachineIndependent/reflection.cpp b/glslang/MachineIndependent/reflection.cpp
index 144f85b..6c7d3a2 100644
--- a/glslang/MachineIndependent/reflection.cpp
+++ b/glslang/MachineIndependent/reflection.cpp
@@ -33,8 +33,6 @@
 // POSSIBILITY OF SUCH DAMAGE.
 //
 
-#if !defined(GLSLANG_WEB)
-
 #include "../Include/Common.h"
 #include "reflection.h"
 #include "LiveTraverser.h"
@@ -1270,5 +1268,3 @@
 }
 
 } // end namespace glslang
-
-#endif // !GLSLANG_WEB
diff --git a/glslang/MachineIndependent/reflection.h b/glslang/MachineIndependent/reflection.h
index bfd5452..221d93f 100644
--- a/glslang/MachineIndependent/reflection.h
+++ b/glslang/MachineIndependent/reflection.h
@@ -33,8 +33,6 @@
 // POSSIBILITY OF SUCH DAMAGE.
 //
 
-#if !defined(GLSLANG_WEB)
-
 #ifndef _REFLECTION_INCLUDED
 #define _REFLECTION_INCLUDED
 
@@ -219,5 +217,3 @@
 } // end namespace glslang
 
 #endif // _REFLECTION_INCLUDED
-
-#endif // !GLSLANG_WEB
diff --git a/glslang/MachineIndependent/span.h b/glslang/MachineIndependent/span.h
new file mode 100644
index 0000000..bd705fe
--- /dev/null
+++ b/glslang/MachineIndependent/span.h
@@ -0,0 +1,92 @@
+#pragma once
+
+//
+// Copyright (C) 2023 LunarG, Inc.
+//
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+//
+//    Redistributions of source code must retain the above copyright
+//    notice, this list of conditions and the following disclaimer.
+//
+//    Redistributions in binary form must reproduce the above
+//    copyright notice, this list of conditions and the following
+//    disclaimer in the documentation and/or other materials provided
+//    with the distribution.
+//
+//    Neither the name of 3Dlabs Inc. Ltd. nor the names of its
+//    contributors may be used to endorse or promote products derived
+//    from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+//
+
+// Partial implementation of std::span for C++11
+// Replace with std::span if repo standard is bumped to C++20
+//
+// This code was copied from https://github.com/KhronosGroup/Vulkan-ValidationLayers/blob/main/layers/containers/custom_containers.h
+template <typename T>
+class span {
+  public:
+    using pointer = T *;
+    using const_pointer = T const *;
+    using iterator = pointer;
+    using const_iterator = const_pointer;
+
+    span() = default;
+    span(pointer start, size_t n) : data_(start), count_(n) {}
+    template <typename Iterator>
+    span(Iterator start, Iterator end) : data_(&(*start)), count_(end - start) {}
+    template <typename Container>
+    span(Container &c) : data_(c.data()), count_(c.size()) {}
+
+    iterator begin() { return data_; }
+    const_iterator begin() const { return data_; }
+
+    iterator end() { return data_ + count_; }
+    const_iterator end() const { return data_ + count_; }
+
+    T &operator[](int i) { return data_[i]; }
+    const T &operator[](int i) const { return data_[i]; }
+
+    T &front() { return *data_; }
+    const T &front() const { return *data_; }
+
+    T &back() { return *(data_ + (count_ - 1)); }
+    const T &back() const { return *(data_ + (count_ - 1)); }
+
+    size_t size() const { return count_; }
+    bool empty() const { return count_ == 0; }
+
+    pointer data() { return data_; }
+    const_pointer data() const { return data_; }
+
+  private:
+    pointer data_ = {};
+    size_t count_ = 0;
+};
+
+//
+// Allow type inference that using the constructor doesn't allow in C++11
+template <typename T>
+span<T> make_span(T *begin, size_t count) {
+    return span<T>(begin, count);
+}
+template <typename T>
+span<T> make_span(T *begin, T *end) {
+    return make_span<T>(begin, end);
+}
diff --git a/glslang/OSDependent/Unix/CMakeLists.txt b/glslang/OSDependent/Unix/CMakeLists.txt
index f6b1c6a..2df9929 100644
--- a/glslang/OSDependent/Unix/CMakeLists.txt
+++ b/glslang/OSDependent/Unix/CMakeLists.txt
@@ -40,18 +40,6 @@
 find_package(Threads REQUIRED)
 target_link_libraries(OSDependent Threads::Threads)
 
-if(ENABLE_GLSLANG_INSTALL AND NOT BUILD_SHARED_LIBS)
+if(PROJECT_IS_TOP_LEVEL AND NOT BUILD_SHARED_LIBS)
     install(TARGETS OSDependent EXPORT glslang-targets)
-
-    # Backward compatibility
-    file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/OSDependentTargets.cmake" "
-        message(WARNING \"Using `OSDependentTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\")
-
-        if (NOT TARGET glslang::OSDependent)
-            include(\"${CMAKE_INSTALL_FULL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\")
-        endif()
-
-        add_library(OSDependent ALIAS glslang::OSDependent)
-    ")
-    install(FILES "${CMAKE_CURRENT_BINARY_DIR}/OSDependentTargets.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake)
 endif()
diff --git a/glslang/OSDependent/Unix/ossource.cpp b/glslang/OSDependent/Unix/ossource.cpp
index 9a31a9a..fbb51f7 100644
--- a/glslang/OSDependent/Unix/ossource.cpp
+++ b/glslang/OSDependent/Unix/ossource.cpp
@@ -36,15 +36,8 @@
 // This file contains the Linux-specific functions
 //
 #include "../osinclude.h"
-#include "../../../OGLCompilersDLL/InitializeDll.h"
 
-#include <pthread.h>
-#include <semaphore.h>
-#include <assert.h>
-#include <errno.h>
-#include <stdint.h>
 #include <cstdio>
-#include <sys/time.h>
 
 #if !defined(__Fuchsia__)
 #include <sys/resource.h>
@@ -52,104 +45,6 @@
 
 namespace glslang {
 
-//
-// Thread cleanup
-//
-
-//
-// Thread Local Storage Operations
-//
-inline OS_TLSIndex PthreadKeyToTLSIndex(pthread_key_t key)
-{
-    return (OS_TLSIndex)((uintptr_t)key + 1);
-}
-
-inline pthread_key_t TLSIndexToPthreadKey(OS_TLSIndex nIndex)
-{
-    return (pthread_key_t)((uintptr_t)nIndex - 1);
-}
-
-OS_TLSIndex OS_AllocTLSIndex()
-{
-    pthread_key_t pPoolIndex;
-
-    //
-    // Create global pool key.
-    //
-    if ((pthread_key_create(&pPoolIndex, nullptr)) != 0) {
-        assert(0 && "OS_AllocTLSIndex(): Unable to allocate Thread Local Storage");
-        return OS_INVALID_TLS_INDEX;
-    }
-    else
-        return PthreadKeyToTLSIndex(pPoolIndex);
-}
-
-bool OS_SetTLSValue(OS_TLSIndex nIndex, void *lpvValue)
-{
-    if (nIndex == OS_INVALID_TLS_INDEX) {
-        assert(0 && "OS_SetTLSValue(): Invalid TLS Index");
-        return false;
-    }
-
-    if (pthread_setspecific(TLSIndexToPthreadKey(nIndex), lpvValue) == 0)
-        return true;
-    else
-        return false;
-}
-
-void* OS_GetTLSValue(OS_TLSIndex nIndex)
-{
-    //
-    // This function should return 0 if nIndex is invalid.
-    //
-    assert(nIndex != OS_INVALID_TLS_INDEX);
-    return pthread_getspecific(TLSIndexToPthreadKey(nIndex));
-}
-
-bool OS_FreeTLSIndex(OS_TLSIndex nIndex)
-{
-    if (nIndex == OS_INVALID_TLS_INDEX) {
-        assert(0 && "OS_SetTLSValue(): Invalid TLS Index");
-        return false;
-    }
-
-    //
-    // Delete the global pool key.
-    //
-    if (pthread_key_delete(TLSIndexToPthreadKey(nIndex)) == 0)
-        return true;
-    else
-        return false;
-}
-
-namespace {
-    pthread_mutex_t gMutex;
-}
-
-static void InitMutex(void)
-{
-  pthread_mutexattr_t mutexattr;
-  pthread_mutexattr_init(&mutexattr);
-  pthread_mutexattr_settype(&mutexattr, PTHREAD_MUTEX_RECURSIVE);
-  pthread_mutex_init(&gMutex, &mutexattr);
-}
-
-void InitGlobalLock()
-{
-  static pthread_once_t once = PTHREAD_ONCE_INIT;
-  pthread_once(&once, InitMutex);
-}
-
-void GetGlobalLock()
-{
-  pthread_mutex_lock(&gMutex);
-}
-
-void ReleaseGlobalLock()
-{
-  pthread_mutex_unlock(&gMutex);
-}
-
 // #define DUMP_COUNTERS
 
 void OS_DumpMemoryCounters()
diff --git a/glslang/OSDependent/Web/CMakeLists.txt b/glslang/OSDependent/Web/CMakeLists.txt
index 5bfbed4..5d17496 100644
--- a/glslang/OSDependent/Web/CMakeLists.txt
+++ b/glslang/OSDependent/Web/CMakeLists.txt
@@ -53,6 +53,9 @@
         target_link_libraries(glslang.js "-s ALLOW_MEMORY_GROWTH=1")
         target_link_libraries(glslang.js "-s FILESYSTEM=0")
 
+        # We use ccall in glslang.pre.js, so make sure it's exposed
+        target_link_libraries(glslang.js "-s EXPORTED_RUNTIME_METHODS=ccall")
+
         if(ENABLE_EMSCRIPTEN_SINGLE_FILE)
             target_link_libraries(glslang.js "-s SINGLE_FILE=1")
         endif()
@@ -64,8 +67,28 @@
         endif()
 
         if(NOT ENABLE_EMSCRIPTEN_ENVIRONMENT_NODE)
-            add_custom_command(TARGET glslang.js POST_BUILD
-                COMMAND cat ${CMAKE_CURRENT_SOURCE_DIR}/glslang.after.js >> ${CMAKE_CURRENT_BINARY_DIR}/glslang.js)
+            if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.18")
+                add_custom_command(TARGET glslang.js POST_BUILD
+                    COMMAND ${CMAKE_COMMAND} -E cat ${CMAKE_CURRENT_SOURCE_DIR}/glslang.after.js >> ${CMAKE_CURRENT_BINARY_DIR}/glslang.js
+                )
+            else()
+                if (MINGW)
+                    message(FATAL_ERROR "Must use at least CMake 3.18")
+                endif()
+
+                if (CMAKE_HOST_SYSTEM MATCHES "Windows.*")
+                    # There are several ways we could append one file to another on Windows, but unfortunately 'cat' is not one of them
+                    # (there is no 'cat' command in cmd). Also, since this will ultimately run in cmd and not pwsh, we need to ensure
+                    # Windows path separators are used.
+                    file(TO_NATIVE_PATH "${CMAKE_CURRENT_BINARY_DIR}/glslang.js" glslang_js_path)
+                    file(TO_NATIVE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/glslang.after.js" glslang_after_js_path)
+                    add_custom_command(TARGET glslang.js POST_BUILD
+                        COMMAND type "${glslang_after_js_path}" >> "${glslang_js_path}")
+                else()
+                    add_custom_command(TARGET glslang.js POST_BUILD
+                        COMMAND cat ${CMAKE_CURRENT_SOURCE_DIR}/glslang.after.js >> ${CMAKE_CURRENT_BINARY_DIR}/glslang.js)
+                endif()
+            endif()
         endif()
     endif()
-endif()
+endif()
\ No newline at end of file
diff --git a/glslang/OSDependent/Web/glslang.pre.js b/glslang/OSDependent/Web/glslang.pre.js
index 46a5695..390390e 100644
--- a/glslang/OSDependent/Web/glslang.pre.js
+++ b/glslang/OSDependent/Web/glslang.pre.js
@@ -25,7 +25,7 @@
 
     var p_output = Module['_malloc'](4);
     var p_output_len = Module['_malloc'](4);
-    var id = ccall('convert_glsl_to_spirv',
+    var id = Module['ccall']('convert_glsl_to_spirv',
         'number',
         ['string', 'number', 'boolean', 'number', 'number', 'number'],
         [glsl, shader_stage_int, gen_debug, spirv_version_int, p_output, p_output_len]);
diff --git a/glslang/OSDependent/Windows/CMakeLists.txt b/glslang/OSDependent/Windows/CMakeLists.txt
index 882133a..fd1d349 100644
--- a/glslang/OSDependent/Windows/CMakeLists.txt
+++ b/glslang/OSDependent/Windows/CMakeLists.txt
@@ -31,15 +31,19 @@
 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 # POSSIBILITY OF SUCH DAMAGE.
 
-set(SOURCES ossource.cpp ../osinclude.h)
+add_library(OSDependent STATIC)
 
-add_library(OSDependent STATIC ${SOURCES})
+target_sources(OSDependent PRIVATE
+    ../osinclude.h
+    ossource.cpp
+)
+
 set_property(TARGET OSDependent PROPERTY FOLDER glslang)
 set_property(TARGET OSDependent PROPERTY POSITION_INDEPENDENT_CODE ON)
 
 # MinGW GCC complains about function pointer casts to void*.
 # Turn that off with -fpermissive.
-if(${CMAKE_CXX_COMPILER_ID} MATCHES "GNU")
+if(MINGW AND ${CMAKE_CXX_COMPILER_ID} MATCHES "GNU")
     target_compile_options(OSDependent PRIVATE -fpermissive)
 endif()
 
@@ -47,18 +51,6 @@
     source_group("Source" FILES ${SOURCES})
 endif()
 
-if(ENABLE_GLSLANG_INSTALL)
+if(PROJECT_IS_TOP_LEVEL)
     install(TARGETS OSDependent EXPORT glslang-targets)
-
-    # Backward compatibility
-    file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/OSDependentTargets.cmake" "
-        message(WARNING \"Using `OSDependentTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\")
-
-        if (NOT TARGET glslang::OSDependent)
-            include(\"${CMAKE_INSTALL_FULL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\")
-        endif()
-
-        add_library(OSDependent ALIAS glslang::OSDependent)
-    ")
-    install(FILES "${CMAKE_CURRENT_BINARY_DIR}/OSDependentTargets.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake)
 endif()
diff --git a/glslang/OSDependent/Windows/main.cpp b/glslang/OSDependent/Windows/main.cpp
deleted file mode 100644
index 0bcde7b..0000000
--- a/glslang/OSDependent/Windows/main.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (C) 2002-2005  3Dlabs Inc. Ltd.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions
-// are met:
-//
-//    Redistributions of source code must retain the above copyright
-//    notice, this list of conditions and the following disclaimer.
-//
-//    Redistributions in binary form must reproduce the above
-//    copyright notice, this list of conditions and the following
-//    disclaimer in the documentation and/or other materials provided
-//    with the distribution.
-//
-//    Neither the name of 3Dlabs Inc. Ltd. nor the names of its
-//    contributors may be used to endorse or promote products derived
-//    from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-#include "InitializeDll.h"
-
-#define STRICT
-#define VC_EXTRALEAN 1
-#include <windows.h>
-#include <assert.h>
-
-BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
-{
-	switch (fdwReason)
-	{
-		case DLL_PROCESS_ATTACH:
-
-            if (! glslang::InitProcess())
-                return FALSE;
-            break;
-		case DLL_THREAD_ATTACH:
-
-            if (! glslang::InitThread())
-                return FALSE;
-            break;
-
-		case DLL_THREAD_DETACH:
-
-			if (! glslang::DetachThread())
-				return FALSE;
-			break;
-
-		case DLL_PROCESS_DETACH:
-
-			glslang::DetachProcess();
-			break;
-
-		default:
-			assert(0 && "DllMain(): Reason for calling DLL Main is unknown");
-			return FALSE;
-	}
-
-	return TRUE;
-}
diff --git a/glslang/OSDependent/Windows/ossource.cpp b/glslang/OSDependent/Windows/ossource.cpp
index fa372a2..d7f89f7 100644
--- a/glslang/OSDependent/Windows/ossource.cpp
+++ b/glslang/OSDependent/Windows/ossource.cpp
@@ -37,11 +37,9 @@
 #define STRICT
 #define VC_EXTRALEAN 1
 #include <windows.h>
-#include <cassert>
 #include <process.h>
 #include <psapi.h>
 #include <cstdio>
-#include <cstdint>
 
 //
 // This file contains the Window-OS-specific functions
@@ -53,84 +51,6 @@
 
 namespace glslang {
 
-inline OS_TLSIndex ToGenericTLSIndex (DWORD handle)
-{
-    return (OS_TLSIndex)((uintptr_t)handle + 1);
-}
-
-inline DWORD ToNativeTLSIndex (OS_TLSIndex nIndex)
-{
-    return (DWORD)((uintptr_t)nIndex - 1);
-}
-
-//
-// Thread Local Storage Operations
-//
-OS_TLSIndex OS_AllocTLSIndex()
-{
-    DWORD dwIndex = TlsAlloc();
-    if (dwIndex == TLS_OUT_OF_INDEXES) {
-        assert(0 && "OS_AllocTLSIndex(): Unable to allocate Thread Local Storage");
-        return OS_INVALID_TLS_INDEX;
-    }
-
-    return ToGenericTLSIndex(dwIndex);
-}
-
-bool OS_SetTLSValue(OS_TLSIndex nIndex, void *lpvValue)
-{
-    if (nIndex == OS_INVALID_TLS_INDEX) {
-        assert(0 && "OS_SetTLSValue(): Invalid TLS Index");
-        return false;
-    }
-
-    if (TlsSetValue(ToNativeTLSIndex(nIndex), lpvValue))
-        return true;
-    else
-        return false;
-}
-
-void* OS_GetTLSValue(OS_TLSIndex nIndex)
-{
-    assert(nIndex != OS_INVALID_TLS_INDEX);
-    return TlsGetValue(ToNativeTLSIndex(nIndex));
-}
-
-bool OS_FreeTLSIndex(OS_TLSIndex nIndex)
-{
-    if (nIndex == OS_INVALID_TLS_INDEX) {
-        assert(0 && "OS_SetTLSValue(): Invalid TLS Index");
-        return false;
-    }
-
-    if (TlsFree(ToNativeTLSIndex(nIndex)))
-        return true;
-    else
-        return false;
-}
-
-HANDLE GlobalLock;
-
-void InitGlobalLock()
-{
-    GlobalLock = CreateMutex(nullptr, false, nullptr);
-}
-
-void GetGlobalLock()
-{
-    WaitForSingleObject(GlobalLock, INFINITE);
-}
-
-void ReleaseGlobalLock()
-{
-    ReleaseMutex(GlobalLock);
-}
-
-unsigned int __stdcall EnterGenericThread (void* entry)
-{
-    return ((TThreadEntrypoint)entry)(nullptr);
-}
-
 //#define DUMP_COUNTERS
 
 void OS_DumpMemoryCounters()
diff --git a/glslang/OSDependent/osinclude.h b/glslang/OSDependent/osinclude.h
index 7eaa113..0d677e4 100644
--- a/glslang/OSDependent/osinclude.h
+++ b/glslang/OSDependent/osinclude.h
@@ -37,23 +37,6 @@
 
 namespace glslang {
 
-//
-// Thread Local Storage Operations
-//
-typedef void* OS_TLSIndex;
-#define OS_INVALID_TLS_INDEX nullptr
-
-OS_TLSIndex OS_AllocTLSIndex();
-bool        OS_SetTLSValue(OS_TLSIndex nIndex, void *lpvValue);
-bool        OS_FreeTLSIndex(OS_TLSIndex nIndex);
-void*       OS_GetTLSValue(OS_TLSIndex nIndex);
-
-void InitGlobalLock();
-void GetGlobalLock();
-void ReleaseGlobalLock();
-
-typedef unsigned int (*TThreadEntrypoint)(void*);
-
 void OS_DumpMemoryCounters();
 
 } // end namespace glslang
diff --git a/glslang/Public/ShaderLang.h b/glslang/Public/ShaderLang.h
index 90a5302..e0ec47f 100644
--- a/glslang/Public/ShaderLang.h
+++ b/glslang/Public/ShaderLang.h
@@ -318,8 +318,8 @@
 // Driver calls these to create and destroy compiler/linker
 // objects.
 //
-GLSLANG_EXPORT ShHandle ShConstructCompiler(const EShLanguage, int debugOptions);  // one per shader
-GLSLANG_EXPORT ShHandle ShConstructLinker(const EShExecutable, int debugOptions);  // one per shader pair
+GLSLANG_EXPORT ShHandle ShConstructCompiler(const EShLanguage, int /*debugOptions unused*/); // one per shader
+GLSLANG_EXPORT ShHandle ShConstructLinker(const EShExecutable, int /*debugOptions unused*/); // one per shader pair
 GLSLANG_EXPORT ShHandle ShConstructUniformMap();                 // one per uniform namespace (currently entire program object)
 GLSLANG_EXPORT void ShDestruct(ShHandle);
 
@@ -330,18 +330,13 @@
 // The info-log should be written by ShCompile into
 // ShHandle, so it can answer future queries.
 //
-GLSLANG_EXPORT int ShCompile(
-    const ShHandle,
-    const char* const shaderStrings[],
-    const int numStrings,
-    const int* lengths,
-    const EShOptimizationLevel,
-    const TBuiltInResource *resources,
-    int debugOptions,
-    int defaultVersion = 110,            // use 100 for ES environment, overridden by #version in shader
-    bool forwardCompatible = false,      // give errors for use of deprecated features
-    EShMessages messages = EShMsgDefault // warnings and errors
-    );
+GLSLANG_EXPORT int ShCompile(const ShHandle, const char* const shaderStrings[], const int numStrings,
+                             const int* lengths, const EShOptimizationLevel, const TBuiltInResource* resources,
+                             int,                      // debugOptions unused
+                             int defaultVersion = 110, // use 100 for ES environment, overridden by #version in shader
+                             bool forwardCompatible = false,      // give errors for use of deprecated features
+                             EShMessages messages = EShMsgDefault // warnings and errors
+);
 
 GLSLANG_EXPORT int ShLinkExt(
     const ShHandle,               // linker object
@@ -573,6 +568,9 @@
     void setEnvInputVulkanRulesRelaxed() { environment.input.vulkanRulesRelaxed = true; }
     bool getEnvInputVulkanRulesRelaxed() const { return environment.input.vulkanRulesRelaxed; }
 
+    void setCompileOnly() { compileOnly = true; }
+    bool getCompileOnly() const { return compileOnly; }
+
     // Interface to #include handlers.
     //
     // To support #include, a client of Glslang does the following:
@@ -722,14 +720,15 @@
 
     TEnvironment environment;
 
+    // Indicates this shader is meant to be used without linking
+    bool compileOnly = false;
+
     friend class TProgram;
 
 private:
     TShader& operator=(TShader&);
 };
 
-#if !defined(GLSLANG_WEB)
-
 //
 // A reflection database and its interface, consistent with the OpenGL API reflection queries.
 //
@@ -846,8 +845,6 @@
     virtual void addStage(EShLanguage stage, TIntermediate& stageIntermediate) = 0;
 };
 
-#endif // !GLSLANG_WEB
-
 // 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()
 // for all shaders, call link().
@@ -867,8 +864,6 @@
 
     TIntermediate* getIntermediate(EShLanguage stage) const { return intermediate[stage]; }
 
-#if !defined(GLSLANG_WEB)
-
     // Reflection Interface
 
     // call first, to do liveness analysis, index mapping, etc.; returns false on failure
@@ -961,7 +956,6 @@
     // 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
 
 protected:
     GLSLANG_EXPORT bool linkStage(EShLanguage, EShMessages);
@@ -972,9 +966,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)
     TReflection* reflection;
-#endif
     bool linked;
 
 private:
diff --git a/glslang/ResourceLimits/resource_limits_c.cpp b/glslang/ResourceLimits/resource_limits_c.cpp
index 0eeac23..8909d9e 100644
--- a/glslang/ResourceLimits/resource_limits_c.cpp
+++ b/glslang/ResourceLimits/resource_limits_c.cpp
@@ -42,28 +42,14 @@
     return reinterpret_cast<const glslang_resource_t*>(GetDefaultResources());
 }
 
-#if defined(__clang__) || defined(__GNUC__)
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-#elif defined(_MSC_VER)
-#pragma warning(push)
-#pragma warning(disable : 4996)
-#endif
-
 const char* glslang_default_resource_string()
 {
     std::string cpp_str = GetDefaultTBuiltInResourceString();
     char* c_str = (char*)malloc(cpp_str.length() + 1);
-    strcpy(c_str, cpp_str.c_str());
+    strncpy(c_str, cpp_str.c_str(), cpp_str.length() + 1);
     return c_str;
 }
 
-#if defined(__clang__) || defined(__GNUC__)
-#pragma GCC diagnostic pop
-#elif defined(_MSC_VER)
-#pragma warning(pop)
-#endif
-
 void glslang_decode_resource_limits(glslang_resource_t* resources, char* config)
 {
     DecodeResourceLimits(reinterpret_cast<TBuiltInResource*>(resources), config);
diff --git a/glslang/updateGrammar b/glslang/updateGrammar
index 9209493..a15dc24 100755
--- a/glslang/updateGrammar
+++ b/glslang/updateGrammar
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
 
 # Copyright (C) 2020 The Khronos Group Inc.
 #
@@ -33,17 +33,4 @@
 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 # POSSIBILITY OF SUCH DAMAGE.
 
-if [ "$1" = 'web' ]
-then
-    m4 -P -DGLSLANG_WEB MachineIndependent/glslang.m4 > MachineIndependent/glslang.y
-elif [ "$#" -eq 0 ]
-then
-    m4 -P MachineIndependent/glslang.m4 > MachineIndependent/glslang.y
-else
-    echo usage:
-    echo $0 web
-    echo $0
-    exit
-fi
-
 bison --defines=MachineIndependent/glslang_tab.cpp.h -t MachineIndependent/glslang.y -o MachineIndependent/glslang_tab.cpp
diff --git a/gtests/AST.FromFile.cpp b/gtests/AST.FromFile.cpp
index 12e0137..d85a55c 100644
--- a/gtests/AST.FromFile.cpp
+++ b/gtests/AST.FromFile.cpp
@@ -1,5 +1,6 @@
 //
 // Copyright (C) 2016 Google, Inc.
+// Copyright (C) 2022-2024 Arm Limited.
 //
 // All rights reserved.
 //
@@ -252,6 +253,7 @@
         "glsl.450.subgroupClustered.comp",
         "glsl.450.subgroupClusteredNeg.comp",
         "glsl.450.subgroupPartitioned.comp",
+        "glsl.450.subgroupRotate.comp",
         "glsl.450.subgroupShuffle.comp",
         "glsl.450.subgroupShuffleRelative.comp",
         "glsl.450.subgroupQuad.comp",
@@ -277,10 +279,14 @@
         "glsl.es320.subgroupClustered.comp",
         "glsl.es320.subgroupClusteredNeg.comp",
         "glsl.es320.subgroupPartitioned.comp",
+        "glsl.es320.subgroupRotate.comp",
         "glsl.es320.subgroupShuffle.comp",
         "glsl.es320.subgroupShuffleRelative.comp",
         "glsl.es320.subgroupQuad.comp",
         "glsl.es320.subgroupVote.comp",
+        "glsl.es320.extTextureShadowLod.frag",
+        "gl_samplemask_array_size.frag",
+        "glsl.ext.textureShadowLod.frag",
         "terminate.frag",
         "terminate.vert",
         "negativeWorkGroupSize.comp",
@@ -293,11 +299,16 @@
         "GL_ARB_draw_instanced.vert",
         "GL_ARB_fragment_coord_conventions.vert",
         "GL_ARB_bindless_texture.frag",
+        "GL_ARB_texture_multisample.vert",
         "BestMatchFunction.vert",
         "EndStreamPrimitive.geom",
         "floatBitsToInt.vert",
         "coord_conventions.frag",
-        "gl_FragCoord.frag"
+        "gl_FragCoord.frag",
+        "glsl.interpOp.error.frag",
+        "GL_EXT_draw_instanced.vert",
+        "overflow_underflow_toinf_0.frag",
+        "GL_EXT_texture_array.frag",
     })),
     FileNameAsCustomTestSuffix
 );
diff --git a/gtests/CMakeLists.txt b/gtests/CMakeLists.txt
index 408a92d..8e0edd4 100644
--- a/gtests/CMakeLists.txt
+++ b/gtests/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2020 The Khronos Group Inc.
+# Copyright (C) 2020-2023 The Khronos Group Inc.
 #
 # All rights reserved.
 #
@@ -31,7 +31,7 @@
 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 # POSSIBILITY OF SUCH DAMAGE.
 
-if(BUILD_TESTING)
+if(GLSLANG_TESTS)
     if(TARGET gmock)
         message(STATUS "Google Mock found - building tests")
 
@@ -68,21 +68,6 @@
         glslang_pch(glslangtests ${CMAKE_CURRENT_SOURCE_DIR}/pch.h)
         set_property(TARGET glslangtests PROPERTY FOLDER tests)
         glslang_set_link_args(glslangtests)
-        if(ENABLE_GLSLANG_INSTALL)
-            install(TARGETS glslangtests EXPORT glslang-targets)
-
-            # Backward compatibility
-            file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/glslangtestsTargets.cmake" "
-                message(WARNING \"Using `glslangtestsTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\")
-
-                if (NOT TARGET glslang::glslangtests)
-                    include(\"${CMAKE_INSTALL_FULL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\")
-                endif()
-
-                add_library(glslangtests ALIAS glslang::glslangtests)
-            ")
-            install(FILES "${CMAKE_CURRENT_BINARY_DIR}/glslangtestsTargets.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake)
-        endif()
 
         set(GLSLANG_TEST_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../Test")
         # Supply a default test root directory, so that manual testing
@@ -97,22 +82,19 @@
                                    ${gtest_SOURCE_DIR}/include)
 
         if(ENABLE_OPT)
-            target_include_directories(glslangtests
-                PRIVATE ${spirv-tools_SOURCE_DIR}/include
+            target_link_libraries(glslangtests
+                PRIVATE SPIRV-Tools-opt
             )
         endif()
 
         set(LIBRARIES
-            glslang OSDependent OGLCompiler glslang
+            glslang OSDependent glslang
             SPIRV glslang-default-resource-limits)
 
         if(ENABLE_SPVREMAPPER)
             set(LIBRARIES ${LIBRARIES} SPVRemapper)
         endif()
 
-        if(ENABLE_HLSL)
-            set(LIBRARIES ${LIBRARIES} HLSL)
-        endif()
         target_link_libraries(glslangtests PRIVATE ${LIBRARIES} gmock)
 
         add_test(NAME glslang-gtests
diff --git a/gtests/GlslMapIO.FromFile.cpp b/gtests/GlslMapIO.FromFile.cpp
index aabb4ae..1dba5c0 100644
--- a/gtests/GlslMapIO.FromFile.cpp
+++ b/gtests/GlslMapIO.FromFile.cpp
@@ -42,7 +42,6 @@
 #include "glslang/MachineIndependent/iomapper.h"
 #include "glslang/MachineIndependent/reflection.h"
 
-#ifndef GLSLANG_WEB
 namespace glslangtest {
 namespace {
 
@@ -352,4 +351,3 @@
 
 }  // anonymous namespace
 }  // namespace glslangtest
-#endif 
diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp
index db882fe..5d0d2d6 100644
--- a/gtests/Hlsl.FromFile.cpp
+++ b/gtests/Hlsl.FromFile.cpp
@@ -59,6 +59,7 @@
 
 using HlslCompileTest = GlslangTest<::testing::TestWithParam<FileNameEntryPointPair>>;
 using HlslVulkan1_1CompileTest = GlslangTest<::testing::TestWithParam<FileNameEntryPointPair>>;
+using HlslVulkan1_2CompileTest = GlslangTest<::testing::TestWithParam<FileNameEntryPointPair>>;
 using HlslSpv1_6CompileTest = GlslangTest<::testing::TestWithParam<FileNameEntryPointPair>>;
 using HlslCompileAndFlattenTest = GlslangTest<::testing::TestWithParam<FileNameEntryPointPair>>;
 using HlslLegalizeTest = GlslangTest<::testing::TestWithParam<FileNameEntryPointPair>>;
@@ -83,6 +84,13 @@
                             Target::BothASTAndSpv, true, GetParam().entryPoint);
 }
 
+TEST_P(HlslVulkan1_2CompileTest, FromFile)
+{
+    loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam().fileName, Source::HLSL, Semantics::Vulkan,
+                            glslang::EShTargetVulkan_1_2, glslang::EShTargetSpv_1_4, Target::BothASTAndSpv, true,
+                            GetParam().entryPoint);
+}
+
 TEST_P(HlslSpv1_6CompileTest, FromFile)
 {
     loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam().fileName,
@@ -310,6 +318,7 @@
         {"hlsl.mul-truncate.frag", "main"},
         {"hlsl.multiEntry.vert", "RealEntrypoint"},
         {"hlsl.multiReturn.frag", "main"},
+        {"hlsl.multiView.frag", "main"},
         {"hlsl.matrixindex.frag", "main"},
         {"hlsl.nonstaticMemberFunction.frag", "main"},
         {"hlsl.numericsuffixes.frag", "main"},
@@ -469,6 +478,14 @@
     }),
     FileNameAsCustomTestSuffix
 );
+
+INSTANTIATE_TEST_SUITE_P(
+    ToSpirv, HlslVulkan1_2CompileTest,
+    ::testing::ValuesIn(std::vector<FileNameEntryPointPair>{
+        {"hlsl.buffer_ref_parameter.comp", "main"},
+    }),
+    FileNameAsCustomTestSuffix
+);
 // clang-format on
 
 // clang-format off
diff --git a/gtests/Link.FromFile.Vk.cpp b/gtests/Link.FromFile.Vk.cpp
index 6015c33..fed5d26 100644
--- a/gtests/Link.FromFile.Vk.cpp
+++ b/gtests/Link.FromFile.Vk.cpp
@@ -75,10 +75,8 @@
     result.linkingOutput = program.getInfoLog();
     result.linkingError = program.getInfoDebugLog();
 
-#if !defined(GLSLANG_WEB)
-        if (success)
-            program.mapIO();
-#endif
+    if (success)
+        program.mapIO();
 
     if (success && (controls & EShMsgSpvRules)) {
         spv::SpvBuildLogger logger;
diff --git a/gtests/Spv.FromFile.cpp b/gtests/Spv.FromFile.cpp
index 2aee2d1..cbdc46a 100644
--- a/gtests/Spv.FromFile.cpp
+++ b/gtests/Spv.FromFile.cpp
@@ -1,6 +1,6 @@
  //
 // Copyright (C) 2016 Google, Inc.
-// Copyright (C) 2019 ARM Limited.
+// Copyright (C) 2019, 2022-2024 Arm Limited.
 // Modifications Copyright (C) 2020 Advanced Micro Devices, Inc. All rights reserved.
 //
 // All rights reserved.
@@ -65,6 +65,7 @@
 }
 
 using CompileVulkanToSpirvTest = GlslangTest<::testing::TestWithParam<std::string>>;
+using CompileVulkanToSpirvTestNoLink = GlslangTest<::testing::TestWithParam<std::string>>;
 using CompileVulkanToSpirvDeadCodeElimTest = GlslangTest<::testing::TestWithParam<std::string>>;
 using CompileVulkanToDebugSpirvTest = GlslangTest<::testing::TestWithParam<std::string>>;
 using CompileVulkan1_1ToSpirvTest = GlslangTest<::testing::TestWithParam<std::string>>;
@@ -76,6 +77,7 @@
 using VulkanAstSemantics = GlslangTest<::testing::TestWithParam<std::string>>;
 using HlslIoMap = GlslangTest<::testing::TestWithParam<IoMapData>>;
 using GlslIoMap = GlslangTest<::testing::TestWithParam<IoMapData>>;
+using CompileVulkanToSpirvTestQCOM = GlslangTest<::testing::TestWithParam<std::string>>;
 using CompileVulkanToSpirvTestAMD = GlslangTest<::testing::TestWithParam<std::string>>;
 using CompileVulkanToSpirvTestNV = GlslangTest<::testing::TestWithParam<std::string>>;
 using CompileVulkanToSpirv14TestNV = GlslangTest<::testing::TestWithParam<std::string>>;
@@ -91,6 +93,16 @@
                             Target::Spv);
 }
 
+// Compiling GLSL to SPIR-V under Vulkan semantics without linking. Expected to successfully generate SPIR-V.
+TEST_P(CompileVulkanToSpirvTestNoLink, FromFile)
+{
+    options().compileOnly = true;
+    // NOTE: Vulkan 1.3 is currently required to use the linkage capability
+    // TODO(ncesario) make sure this is actually necessary
+    loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), Source::GLSL, Semantics::Vulkan,
+                            glslang::EShTargetVulkan_1_3, glslang::EShTargetSpv_1_0, Target::Spv);
+}
+
 TEST_P(CompileVulkanToSpirvDeadCodeElimTest, FromFile)
 {
     loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(),
@@ -196,6 +208,15 @@
                                  GetParam().flattenUniforms);
 }
 
+// Compiling GLSL to SPIR-V under Vulkan semantics (QCOM extensions enabled).
+// Expected to successfully generate SPIR-V.
+TEST_P(CompileVulkanToSpirvTestQCOM, FromFile)
+{
+    loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(),
+                            Source::GLSL, Semantics::Vulkan, glslang::EShTargetVulkan_1_0, glslang::EShTargetSpv_1_0,
+                            Target::Spv);
+}
+
 // Compiling GLSL to SPIR-V under Vulkan semantics (AMD extensions enabled).
 // Expected to successfully generate SPIR-V.
 TEST_P(CompileVulkanToSpirvTestAMD, FromFile)
@@ -345,6 +366,12 @@
         "spv.conversion.frag",
         "spv.coopmat.comp",
         "spv.coopmat_Error.comp",
+        "spv.coopmatKHR.comp",
+        "spv.coopmatKHR_arithmetic.comp",
+        "spv.coopmatKHR_arithmeticError.comp",
+        "spv.coopmatKHR_Error.comp",
+        "spv.coopmatKHR_constructor.comp",
+        "spv.coopmatKHR_constructorError.comp",
         "spv.dataOut.frag",
         "spv.dataOutIndirect.frag",
         "spv.dataOutIndirect.vert",
@@ -409,6 +436,7 @@
         "spv.matFun.vert",
         "spv.matrix.frag",
         "spv.matrix2.frag",
+        "spv.maximalReconvergence.vert",
         "spv.memoryQualifier.frag",
         "spv.merge-unreachable.frag",
         "spv.multiStruct.comp",
@@ -487,6 +515,9 @@
         "spv.specConstant.float16.comp",
         "spv.specConstant.int16.comp",
         "spv.specConstant.int8.comp",
+        "spv.specConstantOp.int16.comp",
+        "spv.specConstantOp.int8.comp",
+        "spv.specConstantOp.float16.comp",
         "spv.storageBuffer.vert",
         "spv.terminate.frag",
         "spv.subgroupUniformControlFlow.vert",
@@ -510,6 +541,18 @@
         "spv.atomicAdd.bufferReference.comp",
         "spv.fragmentShaderBarycentric3.frag",
         "spv.fragmentShaderBarycentric4.frag",
+        "spv.ext.textureShadowLod.frag",
+        "spv.ext.textureShadowLod.error.frag",
+        "spv.floatFetch.frag",
+        "spv.atomicRvalue.error.vert",
+    })),
+    FileNameAsCustomTestSuffix
+);
+
+INSTANTIATE_TEST_SUITE_P(
+    Glsl, CompileVulkanToSpirvTestNoLink,
+    ::testing::ValuesIn(std::vector<std::string>({
+        "spv.exportFunctions.comp",
     })),
     FileNameAsCustomTestSuffix
 );
@@ -573,6 +616,7 @@
         "spv.subgroupClustered.comp",
         "spv.subgroupClusteredNeg.comp",
         "spv.subgroupPartitioned.comp",
+        "spv.subgroupRotate.comp",
         "spv.subgroupShuffle.comp",
         "spv.subgroupShuffleRelative.comp",
         "spv.subgroupQuad.comp",
@@ -585,6 +629,8 @@
         "spv.subgroupExtendedTypesClusteredNeg.comp",
         "spv.subgroupExtendedTypesPartitioned.comp",
         "spv.subgroupExtendedTypesPartitionedNeg.comp",
+        "spv.subgroupExtendedTypesRotate.comp",
+        "spv.subgroupExtendedTypesRotateNeg.comp",
         "spv.subgroupExtendedTypesShuffle.comp",
         "spv.subgroupExtendedTypesShuffleNeg.comp",
         "spv.subgroupExtendedTypesShuffleRelative.comp",
@@ -654,6 +700,7 @@
 
         // SPV_EXT_mesh_shader
         "spv.ext.meshShaderBuiltins.mesh",
+        "spv.ext.meshShaderBuiltinsShadingRate.mesh",
         "spv.ext.meshShaderRedeclBuiltins.mesh",
         "spv.ext.meshShaderTaskMem.mesh",
         "spv.ext.meshShaderUserDefined.mesh",
@@ -668,6 +715,15 @@
         "spv.nv.hitobject-allops.rgen",
         "spv.nv.hitobject-allops.rchit",
         "spv.nv.hitobject-allops.rmiss",
+
+
+        // SPV_NV_displacment_micromap
+
+        "spv.nv.dmm-allops.rgen",
+        "spv.nv.dmm-allops.rchit",
+        "spv.nv.dmm-allops.rahit",
+        "spv.nv.dmm-allops.mesh",
+        "spv.nv.dmm-allops.comp",
     })),
     FileNameAsCustomTestSuffix
 );
@@ -682,6 +738,7 @@
         "spv.1.6.specConstant.comp",
         "spv.1.6.samplerBuffer.frag",
         "spv.1.6.separate.frag",
+        "spv.1.6.quad.frag",
     })),
     FileNameAsCustomTestSuffix
 );
@@ -750,6 +807,7 @@
         "vulkan.vert",
         "vulkan.comp",
         "samplerlessTextureFunctions.frag",
+        "spv.intrinsicsFakeEnable.vert",
         "spv.specConstArrayCheck.vert",
     })),
     FileNameAsCustomTestSuffix
@@ -776,6 +834,18 @@
 );
 
 INSTANTIATE_TEST_SUITE_P(
+    Glsl, CompileVulkanToSpirvTestQCOM,
+    ::testing::ValuesIn(std::vector<std::string>({
+        "spv.tpipSampleWeighted.frag",
+        "spv.tpipBoxFilter.frag",
+        "spv.tpipBlockMatchSSD.frag",
+        "spv.tpipBlockMatchSAD.frag",
+        "spv.tpipTextureArrays.frag",
+    })),
+    FileNameAsCustomTestSuffix
+);
+
+INSTANTIATE_TEST_SUITE_P(
     Glsl, CompileVulkanToSpirvTestAMD,
     ::testing::ValuesIn(std::vector<std::string>({
         "spv.16bitxfb.vert",
@@ -869,7 +939,9 @@
         "spv.debuginfo.glsl.geom",
         "spv.debuginfo.glsl.tesc",
         "spv.debuginfo.glsl.tese",
-        "spv.debuginfo.const_params.glsl.comp"
+        "spv.debuginfo.bufferref.glsl.frag",
+        "spv.debuginfo.const_params.glsl.comp",
+        "spv.debuginfo.scalar_types.glsl.frag",
     })),
     FileNameAsCustomTestSuffix
 );
diff --git a/gtests/TestFixture.h b/gtests/TestFixture.h
index 962855c..b23ba30 100644
--- a/gtests/TestFixture.h
+++ b/gtests/TestFixture.h
@@ -48,6 +48,7 @@
 #include "SPIRV/disassemble.h"
 #include "SPIRV/doc.h"
 #include "SPIRV/SPVRemapper.h"
+#include "glslang/Include/Types.h"
 #include "glslang/Public/ResourceLimits.h"
 #include "glslang/Public/ShaderLang.h"
 
@@ -248,38 +249,58 @@
             }
         }
 
+        if (options().compileOnly)
+            shader.setCompileOnly();
+
         bool success = compile(
                 &shader, code, entryPointName, controls, nullptr, &shaderName);
 
         glslang::TProgram program;
-        program.addShader(&shader);
-        success &= program.link(controls);
-#if !defined(GLSLANG_WEB)
-        if (success)
-            program.mapIO();
-#endif
+        spv::SpvBuildLogger logger;
+        std::vector<uint32_t> spirv_binary;
 
-        if (success && (controls & EShMsgSpvRules)) {
-            spv::SpvBuildLogger logger;
-            std::vector<uint32_t> spirv_binary;
+        if (!options().compileOnly) {
+            program.addShader(&shader);
+            success &= program.link(controls);
+            if (success)
+                program.mapIO();
+
+            if (success && (controls & EShMsgSpvRules)) {
+                options().disableOptimizer = !enableOptimizer;
+                options().generateDebugInfo = enableDebug;
+                options().emitNonSemanticShaderDebugInfo = enableNonSemanticShaderDebugInfo;
+                options().emitNonSemanticShaderDebugSource = enableNonSemanticShaderDebugInfo;
+                glslang::GlslangToSpv(*program.getIntermediate(stage), spirv_binary, &logger, &options());
+            } else {
+                return {{
+                            {shaderName, shader.getInfoLog(), shader.getInfoDebugLog()},
+                        },
+                        program.getInfoLog(),
+                        program.getInfoDebugLog(),
+                        true,
+                        "",
+                        ""};
+            }
+        } else {
             options().disableOptimizer = !enableOptimizer;
             options().generateDebugInfo = enableDebug;
             options().emitNonSemanticShaderDebugInfo = enableNonSemanticShaderDebugInfo;
             options().emitNonSemanticShaderDebugSource = enableNonSemanticShaderDebugInfo;
-            glslang::GlslangToSpv(*program.getIntermediate(stage),
-                                  spirv_binary, &logger, &options());
-
-            std::ostringstream disassembly_stream;
-            spv::Parameterize();
-            spv::Disassemble(disassembly_stream, spirv_binary);
-            bool validation_result = !options().validate || logger.getAllMessages().empty();
-            return {{{shaderName, shader.getInfoLog(), shader.getInfoDebugLog()},},
-                    program.getInfoLog(), program.getInfoDebugLog(),
-                    validation_result, logger.getAllMessages(), disassembly_stream.str()};
-        } else {
-            return {{{shaderName, shader.getInfoLog(), shader.getInfoDebugLog()},},
-                    program.getInfoLog(), program.getInfoDebugLog(), true, "", ""};
+            glslang::GlslangToSpv(*shader.getIntermediate(), spirv_binary, &logger, &options());
         }
+
+        std::ostringstream disassembly_stream;
+        spv::Parameterize();
+        spv::Disassemble(disassembly_stream, spirv_binary);
+        bool validation_result = !options().validate || logger.getAllMessages().empty();
+        return {{
+                    {shaderName, shader.getInfoLog(), shader.getInfoDebugLog()},
+                },
+                program.getInfoLog(),
+                program.getInfoDebugLog(),
+                validation_result,
+                logger.getAllMessages(),
+                disassembly_stream.str()};
     }
 
     // Compiles and links the given source |code| of the given shader
@@ -318,10 +339,8 @@
         program.addShader(&shader);
         
         success &= program.link(controls);
-#if !defined(GLSLANG_WEB)
         if (success)
             program.mapIO();
-#endif
 
         spv::SpvBuildLogger logger;
 
@@ -363,10 +382,8 @@
         glslang::TProgram program;
         program.addShader(&shader);
         success &= program.link(controls);
-#if !defined(GLSLANG_WEB)
         if (success)
             program.mapIO();
-#endif
 
         if (success && (controls & EShMsgSpvRules)) {
         spv::SpvBuildLogger logger;
diff --git a/gtests/VkRelaxed.FromFile.cpp b/gtests/VkRelaxed.FromFile.cpp
index 96cd3cf..67e5501 100644
--- a/gtests/VkRelaxed.FromFile.cpp
+++ b/gtests/VkRelaxed.FromFile.cpp
@@ -42,7 +42,6 @@
 #include "glslang/MachineIndependent/iomapper.h"
 #include "glslang/MachineIndependent/reflection.h"
 
-#ifndef GLSLANG_WEB
 namespace glslangtest {
 namespace {
 
@@ -303,4 +302,3 @@
 
 }  // anonymous namespace
 }  // namespace glslangtest
-#endif 
diff --git a/hlsl/CMakeLists.txt b/hlsl/CMakeLists.txt
deleted file mode 100644
index 058a67b..0000000
--- a/hlsl/CMakeLists.txt
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright (C) 2020 The Khronos Group Inc.
-#
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-#    Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-#
-#    Redistributions in binary form must reproduce the above
-#    copyright notice, this list of conditions and the following
-#    disclaimer in the documentation and/or other materials provided
-#    with the distribution.
-#
-#    Neither the name of The Khronos Group Inc. nor the names of its
-#    contributors may be used to endorse or promote products derived
-#    from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-# COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-# The HLSL source is directly embedded into the glslang target when ENABLE_HLSL
-# is set.
-# This source now lives at: glslang/HLSL/
-# The HLSL target is now just a stub that exists for backwards compatibility for
-# projects that referenced this target.
-
-add_library(HLSL ${LIB_TYPE} "stub.cpp")
-set_target_properties(HLSL PROPERTIES
-    FOLDER hlsl
-    POSITION_INDEPENDENT_CODE ON
-    VERSION   "${GLSLANG_VERSION}"
-    SOVERSION "${GLSLANG_VERSION_MAJOR}")
-
-if(WIN32 AND BUILD_SHARED_LIBS)
-    set_target_properties(HLSL PROPERTIES PREFIX "")
-endif()
-
-if(ENABLE_GLSLANG_INSTALL)
-    install(TARGETS HLSL EXPORT glslang-targets)
-
-    file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/HLSLTargets.cmake" "
-        message(WARNING \"Using `HLSLTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\")
-
-        if (NOT TARGET glslang::HLSL)
-            include(\"${CMAKE_INSTALL_FULL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\")
-        endif()
-
-        add_library(HLSL ALIAS glslang::HLSL)
-    ")
-    install(FILES "${CMAKE_CURRENT_BINARY_DIR}/HLSLTargets.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake)
-endif()
diff --git a/hlsl/stub.cpp b/hlsl/stub.cpp
deleted file mode 100644
index f1d39c1..0000000
--- a/hlsl/stub.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-//
-// Copyright (C) 2020 Google, Inc.
-//
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions
-// are met:
-//
-//    Redistributions of source code must retain the above copyright
-//    notice, this list of conditions and the following disclaimer.
-//
-//    Redistributions in binary form must reproduce the above
-//    copyright notice, this list of conditions and the following
-//    disclaimer in the documentation and/or other materials provided
-//    with the distribution.
-//
-//    Neither the name of Google, Inc., nor the names of its
-//    contributors may be used to endorse or promote products derived
-//    from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-
-// The HLSL source is directly embedded into the glslang target when ENABLE_HLSL
-// is set.
-// This source now lives at: glslang/HLSL/
-// The HLSL target is now just a stub that exists for backwards compatibility
-// for projects that referenced this target. As a target requires at least one
-// source file to build, this file acts as that stub.
diff --git a/known_good.json b/known_good.json
index 61645cb..0c172a4 100644
--- a/known_good.json
+++ b/known_good.json
@@ -5,14 +5,21 @@
       "site" : "github",
       "subrepo" : "KhronosGroup/SPIRV-Tools",
       "subdir" : "External/spirv-tools",
-      "commit" : "4b6bd5a665ba0529747af3a0bc808732b7e78f48"
+      "commit": "b951948eaa75b51466eaa22e8a89223966f300e4"
     },
     {
       "name" : "spirv-tools/external/spirv-headers",
       "site" : "github",
       "subrepo" : "KhronosGroup/SPIRV-Headers",
       "subdir" : "External/spirv-tools/external/spirv-headers",
-      "commit" : "f1ba373ef03752ee9f6f2b898bea1213f93e1ef2"
+      "commit" : "5aa1dd8a11182ea9a6a0eabd6a9edc639d5dbecd"
+    },
+    {
+      "name": "googletest",
+      "site": "github",
+      "subrepo": "google/googletest",
+      "subdir": "External/googletest",
+      "commit": "v1.14.0"
     }
   ]
 }
diff --git a/known_good_khr.json b/known_good_khr.json
index a64198a..7911c71 100644
--- a/known_good_khr.json
+++ b/known_good_khr.json
@@ -13,6 +13,13 @@
       "subrepo" : "spirv/SPIRV-Headers",
       "subdir" : "External/spirv-tools/external/spirv-headers",
       "commit" : "gitlab-prelim-rc4"
+    },
+    {
+      "name": "googletest",
+      "site": "github",
+      "subrepo": "google/googletest",
+      "subdir": "External/googletest",
+      "commit": "v1.14.0"
     }
   ]
 }
diff --git a/kokoro/linux-clang-cmake/build-docker.sh b/kokoro/linux-clang-cmake/build-docker.sh
index c5fdcd2..6b1d3e1 100755
--- a/kokoro/linux-clang-cmake/build-docker.sh
+++ b/kokoro/linux-clang-cmake/build-docker.sh
@@ -46,5 +46,5 @@
 echo "Building..."
 mkdir /build && cd /build
 
-cmake "$ROOT_DIR" -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$(pwd)/install" -DBUILD_SHARED_LIBS=$BUILD_SHARED_LIBS
+cmake "$ROOT_DIR" -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$(pwd)/install" -DBUILD_SHARED_LIBS=$BUILD_SHARED_LIBS -DENABLE_OPT=0
 ninja install
diff --git a/kokoro/linux-gcc-cmake/build-docker.sh b/kokoro/linux-gcc-cmake/build-docker.sh
index 0edc05e..558695c 100755
--- a/kokoro/linux-gcc-cmake/build-docker.sh
+++ b/kokoro/linux-gcc-cmake/build-docker.sh
@@ -46,5 +46,5 @@
 echo "Building..."
 mkdir /build && cd /build
 
-cmake "$ROOT_DIR" -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$(pwd)/install" -DBUILD_SHARED_LIBS=$BUILD_SHARED_LIBS
+cmake "$ROOT_DIR" -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$(pwd)/install" -DBUILD_SHARED_LIBS=$BUILD_SHARED_LIBS -DENABLE_OPT=0
 ninja install
diff --git a/update_glslang_sources.py b/update_glslang_sources.py
index 20f303b..2e02c96 100755
--- a/update_glslang_sources.py
+++ b/update_glslang_sources.py
@@ -17,12 +17,9 @@
 """Get source files for Glslang and its dependencies from public repositories.
 """
 
-from __future__ import print_function
-
 import argparse
 import json
-import distutils.dir_util
-import os.path
+import os
 import subprocess
 import sys
 
@@ -106,7 +103,7 @@
                                     cwd=self.subdir)
 
     def Clone(self):
-        distutils.dir_util.mkpath(self.subdir)
+        os.makedirs(self.subdir, exist_ok=True)
         command_output(['git', 'clone', self.GetUrl(), '.'], self.subdir)
 
     def Fetch(self):
@@ -139,7 +136,7 @@
 
     commits = GetGoodCommits(args.site)
 
-    distutils.dir_util.mkpath(args.dir)
+    os.makedirs(args.dir, exist_ok=True)
     print('Change directory to {d}'.format(d=args.dir))
     os.chdir(args.dir)
 
